php7 nginx 编译配置(centos)
将自己编译与配置过程记录一下,方便以后参考更希望能对其他人有帮助,该笔记仅仅适用于配置,没包含性能调优
centos安装的过程就忽略了,自己都是在VM里面折腾,稍微提一下,如果ifconfig命令都提示不存在,需要 yum install net-tools
即可(centos最小化安装会出现这种情况),之后就可以使用xshell等工具ssh来操作
准备安装包
由于涉及到要上传到centos,所以也安装一下lrzsz比较方便 yum install lrzsz
mkdir /home/package cd /home/package rz (选择刚下载的PHP7与nginx包) ls
建立www用户与组
useradd -s /sbin/nologin -U www
-U 参数的是会同时建立与用户名一样的用户组
安装php7
需要开启fpm与curl
tar xvfz php-7.0.13.tar.gz(php压缩包) cd php-7.0.13(具体根据解压后的) ./configure --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-curl=/usr/include/curl/ make && make install
异常情况
configure: error: no acceptable C compiler found in $PATH
安装gccyum install gcc
configure: error: xml2-config not found. Please check your libxml2 installation.
安装libxml2yum install libxml2 libxml2-devel
configure: error: Please reinstall the libcurl distribution
安装libcurlyum install libcurl libcurl-devel
- 若make过程报错尝试
make clean
再make
make install完毕后,看看php.ini在哪里,指看到定义了配置文件所在目录
php -i | grep php.ini # Configuration File (php.ini) Path => /usr/local/lib
于是我们将安装包里面的php.ini-production拷贝过去,然后稍作配置调整
cp php.ini-production /usr/local/lib/php.ini vi /usr/local/lib/php.ini
php配置
php.ini配置
- error_log —— 错误日志
php-fpm配置
先定位一下php-fpm与其配置位置,直接运行php-fpm会报错,提示不能加载配置文件
find / -name php-fpm # /usr/local/sbin/php-fpm # /home/package/php-7.0.13/sapi/fpm/php-fpm # 运行php-fpm /usr/local/sbin/php-fpm # [30-Nov-2016 18:32:54] ERROR: failed to open configuration file '/usr/local/etc/php-# fpm.conf': No such file or directory (2) # [30-Nov-2016 18:32:54] ERROR: failed to load configuration file '/usr/local/etc/php-fpm.conf' # [30-Nov-2016 18:32:54] ERROR: FPM initialization failed # 定位一下配置路径 find / -name php-fpm.d # /usr/local/etc/php-fpm.d ls /usr/local/etc # pear.conf php-fpm.conf.default php-fpm.d cp /usr/local/etc/php-fpm.conf.default /usr/local/etc/php-fpm.conf vi /usr/local/etc/php-fpm.conf cp /usr/local/etc/php-fpm.d/www.conf.default /usr/local/etc/php-fpm.d/www.conf vi /usr/local/etc/php-fpm.d/www.conf
php-fpm.conf
- error_log —— 错误日志
- log_level —— 日志级别
- include —— 包含配置目录(默认可能是NONE/etc/php-fpm.d/.conf,所以要调整一下改为 /usr/local/etc/php-fpm.d/.conf)
www.conf
- listen —— 请求监听地址,这里改为使用socket方式()
- listen.owner —— 监听所属用户(去掉注释)
- listen.group —— 监听所属组(去掉注释)
- listen.mode —— 监听模式(去掉注释)
运行php-fpm
/usr/local/sbin/php-fpm ps aux | grep php-fpm # [root@zt php-7.0.13]# ps aux | grep php-fpm # root 46710 0.0 0.5 203464 5276 ? Ss 18:43 0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf) # www 46711 0.0 0.4 203464 4972 ? S 18:43 0:00 php-fpm: pool www # www 46712 0.0 0.4 203464 4972 ? S 18:43 0:00 php-fpm: pool www
到这里php已经安装完毕
安装Nginx
tar xvfz nginx-1.11.5.tar.gz cd nginx-1.11.5 ./configure --user=www --group=www make && make install
异常情况
./configure: error: the HTTP rewrite module requires the PCRE library
安装pcreyum install pcre pcre-devel
nginx配置
定位一下nginx.conf位置
find / -name nginx.conf # /usr/local/nginx/conf/nginx.conf vi /usr/local/nginx/conf/nginx.conf
- error_log —— 错误日志
- location部分的root按照自己的目录修改一下(这里自己配置的站点放到/home/web/www中),index增加index.php
- location php部分,root、fastcgi_pass调整
location / { root /home/web/www; index index.php index.html index.htm; } location ~ .php$ { root /home/web/www; #fastcgi_pass 127.0.0.1:9000; fastcgi_pass unix:/tmp/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /home/web/www$fastcgi_script_name; include fastcgi_params; } # 拉起nginx /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf mkdir -p /home/web/www echo "<?php echo phpinfo();" > /home/web/www/index.php
最后补充一下关于扩展,查看phpinfo里面的extension_dir位置,将so文件防止到这里,然后php.ini最后加上 extension=xxxx.so,重启php-fpm与nginx即可
关于重新拉起php-fpm与nginx
ps aux | grep php-fpm # root 46710 0.0 0.5 203464 5276 ? Ss 18:43 0:00 php-fpm: master process (/usr/local/etc/php-fpm.conf) # www 46711 0.0 0.6 203528 6468 ? S 18:43 0:00 php-fpm: pool www # www 46712 0.0 0.4 203464 4972 ? S 18:43 0:00 php-fpm: pool www kill 46710 /usr/local/sbin/php-fpm # 重拉php-fpm /usr/local/nginx/sbin/nginx -s reload # 重拉nginx
黄颖奇 7年前
hi,子恩。 666666
回覆TA