昨天PHP7.1.2发布啦!赶紧安装下来看看学习学习,并整合Nginx,安装Nginx参考

首先还是老规矩进到/usr/local/src,下载php7.1.2,并进入到相应文件夹下

wget http://cn2.php.net/get/php-7.1.2.tar.gz/from/this/mirror
tar zxvf mirror
cd php-7.1.2/

接着,准备安装并将地址指到usr/local下

./configure --enable-fpm --prefix=/usr/local/php7.1.2

但是,在这里我装到一半出错了,提示

checking libxml2 install dir... no
checking for xml2-config path...
configure: error: xml2-config not found. Please check your libxml2 installation.

没有安装libxml2,那就先安装咯,检查是否安装了libxm包

rpm -qa |grep  libxml2

然后重新安装libxml2和libxml2-devel包

yum install libxml2
yum install libxml2-devel -y

安装好包之后继续执行 ./configure --enable-fpm --prefix=/usr/local/php7.1.2 开始安装,安装好后执行

make && make install

进行编译安装,这次比较顺利,好了后

cp php.ini-development /usr/local/php7.1.2/lib/php.ini
cp /usr/local/php7.1.2/etc/php-fpm.conf.default /usr/local/php7.1.2/etc/php-fpm.conf
cp /usr/local/php7.1.2/etc/php-fpm.d/www.conf.default /usr/local/php7.1.2/etc/php-fpm.d/www.conf
cp ./sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm7.1.2
chmod +x /etc/init.d/php-fpm7.1.2 

将文件挨个挨个复制到 usr/local/php7.1.2 文件夹下即可,然后启动

service php-fpm7.1.2 start

可以通过 ps -aux | grep php 来查看php进程是否启动了,我手残多执行了两边,结果报错

ERROR: unable to bind listening socket for address '127.0.0.1:9000'  

解决办法也是终极杀招,杀掉所有的php-fpm进程:

killall php-fpm

再重新运行 service php-fpm7.1.2 start 就行啦,大功告成!至此php就安装好了


接下来就是nginx+php整合了

vim /usr/local/php7.1.2/lib/php.ini
cgi.fix_pathinfo=1
date.timezone = /Asia/Shanghai

然后

vim /usr/local/php7.1.2/etc/php-fpm.conf
打开注释pid = run/php-fpm.pid

接着去nginx的配置文件修改,打开与php的接口

vim /usr/local/nginx/conf/nginx.conf

将下面与php的接口注释去掉并修改如下:

location ~ \.php$ {
    root           html;
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_index  index.php;
    fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
    fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;
    fastcgi_param  PATH_INFO  $fastcgi_path_info;
    fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
    include        fastcgi_params;
}

因为现在站点默认的地址为 /usr/local/nginx/html 下,当然你也可以指向别处,去到html下新建了一个index.php
输出php版本

<?php
    phpinfo();
?>

大功告成,马上访问了ip,结果一访问总是提示下载index.php文件,才想起来原来去掉nginx对php的接口注释,但没有重启nginx,又重启nginx

 service nginx stop
 service nginx start

然后满怀激动又去看,结果403和No input file specified,这是怎么回事,原来nginx与php接口这里

fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

$document_root变量找不到,就出错了,所以改为你站点的空间就好了,我上面贴出来是改好后的,改为

fastcgi_param  SCRIPT_FILENAME  /usr/local/nginx/html$fastcgi_script_name;

这下学乖了,先不忙着去看了,先重启了php,nginx,然后去刷新页面,终于大功告成!
phpinfo


如果你想通过网站名,访问,不想通过ip地址访问,就修改nginx.conf里的配置

server {
      listen       80;
      server_name  www.test.com;

将 server_name 改为你的网站名比如 www.test.com,并在本地host文件,绑上host。因为 www.test.com 不是你的真实域名,你就得在本地hosts文件里加上:

192.168.187.128     www.test.com

192.168.187.128就是你的nginx所在服务器的ip,然后访问www.test.com 大功告成!!!

最后修改:2019 年 12 月 14 日 04 : 15 PM
如果觉得我的文章对你有用,请随意赞赏