php怎么发起访问,服务器linux环境运行php?
以centos7为例,模式为lnmp。(使用root用户登录)
更新阿里云yum源1、进入源目录
# cd /etc/
yum.repos.d/
2、备份原repo文件
# for name in `ls`; do mv $name ${name}.bak ; done
3、下载阿里云yum源
# curl
http://mirrors.aliyun.com/repo/Centos-7.repo > Centos-7.repo
4、清理并生成缓存并安装epel
nginx安装1、安装pcre,可以支持rewrite功能。
# yum install pcre*
2、安装openssl,可以支持ssl功能
# yum install openssl*
3、从官网下载稳定版,此时是1.16.1,然后解压(如果没有wget ,请执行yum install wget)
# cd /usr/local/src
# wget http://nginx.org/download/nginx-1.16.1.tar.gz
# tar -zxvf nginx-
1.16.1.tar.gz
# cd nginx-1.16.1
4、安装软件三板斧(./configure , make , make install)。
# ./configure --prefix=/usr/local/nginx-1.16.1 --with-http_ssl_module --with-http_v2_module --with-http_stub_status_module --with-pcre
# make
# make install
5、centos7防火墙打开http, https
# firewall-cmd --zone=public --add-service=http --permanent
# firewall-cmd --zone=public --add-service=https --permanent
# firewall-cmd --reload
6、启动nginx
# /usr/local/nginx-1.16.1/sbin/nginx
当通过你系统的IP地址访问出现如下画面,则安装成功
关闭nginx:
# /usr/local/nginx-1.16.1/sbin/nginx -s stop
当改变了nginx.conf后,要重置:
# /usr/local/nginx-1.16.1/sbin/nginx -s reload
安装php和php-fpm1、安装php7,这里选择php70w,需更新webtatic源
# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# yum install php70w
2、安装php扩展,这里以xml扩展示例,你也可以使用yum list php70w*查看所有扩展。
#yum install php70w-xml
3、查看安装结果
#php -v (查看版本)
#php -m (查看扩展)
4、安装php-fpm,(这个与nginx一起使用来解析PHP脚本的)
#yum install php70w-fpm
5、启动php-fpm,并加入开机启动
# systemctl start php-fpm
# systemctl enable php-fpm
6、新建www用户
# useradd www -s /sbin/nologin
7、修改nginx.conf,加入php解析
第2行
第45行
第65-71行改成如下图所示:
8、将html目录所有者改为www,并将权限改为755
# chown -Rf www:www /usr/local/nginx-1.16.1/html
# chmod -Rf 755 /usr/local/nginx-1.16.1/html
9、重启nginx看到如下结果,即配置成功
# /usr/local/nginx-1.16.1/sbin/nginx -s reload
如何使用MySQL数据库?
主从架构— —概念
binlog日志
MySQL的二进制日志可以说是MySQL最重要的日志了,它记录了所有的DDL和DML(除了数据查询语句)语句,以事件形式记录,还包含语句所执行的消耗的时间。复制原理1. 主库操作保留binlog日志2. 从库的IO线程从主库拉取binlog日志,并生成中继日志(relay log)3. 从库的SQL线程解析中继日志,并在本身回放状态检查主要通过判断IO线程和SQL线程是否处于Running判断复制是否正常,判断Seconds_Behind_Master参数代表数据同步是否延迟:mysql> show slave status\G... Slave_IO_Running: YesSlave_SQL_Running: YesSeconds_Behind_Master: 0... 主从架构— —衍生各种扩展的主从架构1. 一主多从2. 双主复制3. 级联复制4. 等等读写分离大部分场景下,读的频率比写的频率会高很多。所以可以通过扩展多个SLAVE节点提高整体的使用性能。数据备份传统的备份包括三种方式:1. lvm snapshot(LVM快照备份)2. mysqldump3. Xtarbackup那么要如何实现数据的一致性备份呢(一致性备份是所有数据/文件/磁盘 需要在同一个时间点进行备份)LVM SNAPSHOT1. 执行FTWRL(FLUSH TABLES WITH READ LOCK)1.1上全局读锁(lock_global_read_lock)1.2清理表缓存(close_cached_tables)1.3上全局COMMIT锁(make_global_read_lock_block_commit)2. 执行lvcreate 创建lv快照.3. UNLOCK TABLES解锁MYSQLDUMP1. 开启可重复读事务隔离2. 开启事务3. 建立数据快照(可以理解为select * from *)4. 结束事务XTRABACKUP1. 不是整体采用备份锁,只有特定阶段。2. indodb阶段不需要加锁,ACID的C(持续性)是通过Redo log实现,通过线程增量记录redo log实现。Php接口应该加密哪些?
在实际开发中PHP接口开发是PHP常见的技术,可以通过接口进行一些操作,可以访问接口获取数据,给app提供数据接口等,但是如果接口没有加密解密的过程,很容易发生盗用和不安全的操作。
下边简单介绍一下API接口的加密方法
如app要请求用户列表,api是“index.php?module=user&action=list”
app生成token = md5 (‘user’.’list′.’abc12@1qwe~456’) = 5e549e3c1e808125d1a7e0746625abb6;
则实际发起请求为 “index.php?module=user&action=list&token=5e549e3c1e808125d1a7e0746625abb6”
服务器端接到请求用同样方法计算token:
<?php
$module = $_GET['module'];
$action = $_GET['action'];
$urltoken = $_GET['token']; //app发送过来的token
$token = md5($module.$action.'abc12@1qwe~456');
if($urltoken != $token){
exit('error');
}else{
echo 'success';
}
PHP代码保护方法?
比如你要把phpMyAdmin这个MySQL图形化管理工具打包到你的应用中,你只需把PHP解释器和phpMyAdmin项目打包在一起就行.因为PHP从5.4开始就内置了一个HTTP服务器,只需这样就可以运行phpMyAdmin程序:
然后你的Electron去访问这个本地的PHP服务器就行.
我打包到Android上配合WebView跑的PHP7解释器,APK大小才5个MB,所以不用担心体积太大.
如果你需要保护你的PHP项目的代码,可以用PHP7的opcache.file_cache导出脚本的opcode,可用于实现源代码保护:
php写的网站怎么发布?
第一,你需要一个域名,你要把服务器跟你的域名绑定,一般买的虚拟主机的话会提供一个后台给你配置域名绑定的,如果是买的独立的服务器则需要自己配置绑定。
第二, 你要把你的域名解析到服务器的ip上面(a记录或别名记录),买了域名之后会有个域名管理的后台,可以解析。第三,把所有文件复制到你的根目录下面 然后你就可以在浏览器通过你的域名访问网站了。