昨天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,然后去刷新页面,终于大功告成!
如果你想通过网站名,访问,不想通过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 大功告成!!!