王志勇 发表于 2018年11月01日 11:32
Nginx+PHP的配置,比Apache+PHP复杂很多,Apache+PHP的快速安装和配置如前文。Nginx+PHP前年我成功安装过,当时也是调试了几天。
这次调试了将近2天,遇到了各种问题,终于完成,所以立即把成功的步骤记录下来。这次调试的系统版本是Ubuntu 14.04 x64 Minimal。其它的Ubuntu版本、或者Debian系统,步骤大体相同。Ubuntu 14的服务器版,x64和x86有一点不同的是,x64版不带Apache;x86自带Apache,需要先卸载Apache。
网上的资料,十分丰富,但是文章的发布者,按照文章亲自试一遍,却很少,并非是他的亲自安装记录。当然,也有一些文章受时效的影响,有一些系统、或第三方软件由于更新,导致以前的安装步骤失效。
Ubuntu+Nginx+PHP,会遇到很多问题,比如PHP程序为空白,502错误,找不到文件。根据很多资料的尝试,也没有解决问题。
请严格按照本文的步骤,定能一次成功,配置步骤十分简化,只需3个配置步骤。安装前的准备工作,请确定系统内没有Apache,因为如果Apache不停止、或不卸载会导致Nginx无法启动,用这行shell命令检测:
if which apache2; then echo "Yes"; else echo "No"; fi;
如果显示No,则跳过下列这步,如果显示Yes,则需要用下列这条命令卸载Apache:
service apache2 stop && apt-get remove apache*
建议朋友们尝试、练习调试时,先给主机重装系统为Ubuntu 14.04 x64 Minimal,与本文调试的版本完全相同,熟练后再安装其它的Ubuntu版本。重装系统前要备份站点文件。
命令1,update,耗时约29秒:
apt-get update
命令2,安装nginx和php,耗时约20秒:
apt-get -y install nginx php5-fpm
至此Ubuntu 14+Nginx+PHP已经安装完毕。接下来需要做3个关键配置:
1. 使用Xftp软件,连接VPS。找到/etc/nginx/sites-available路径,下载该目录下的default文件。
用文本工具打开此文件,找到如下这些代码:
#location ~ \.php$ { # fastcgi_split_path_info ^(.+.php)(/.+)$; # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # # # With php5-cgi alone: # fastcgi_pass 127.0.0.1:9000; # # With php5-fpm: # fastcgi_pass unix:/var/run/php5-fpm.sock; # fastcgi_index index.php; # include fastcgi_params; #} |
上述的代码删除,修改为:
location ~ \.php$ {fastcgi_pass 127.0.0.1:9000;
include fastcgi_params;}
这一步和很多网络文章不同,只有2行。连fastcgi_param这一行都省略了,但是PHP能正常运行,以前我是一行一行删除后测试能否运行,之后仅剩这2行。
2. /etc/php5/fpm/pool.d/www.conf
listen = /var/run/php5-fpm.sock这一行修改为:
listen=127.0.0.1:9000
(这个值必须修改,如果不修改,所有的php页会是502错误,修改之后立即正常。)
3. /etc/php5/fpm/php.ini
找到short_open_tag这一行,默认的设置为short_open_tag = Off,改为:
short_open_tag=On
之后,重启Nginx、PHP,命令:
service nginx restart && service php5-fpm restart
此时,已经能够顺利运行PHP程序,其它的配置文件无需再修改。
这时,上传一个写好的PHP程序1.php到默认的/usr/share/nginx/html目录,测试一下吧。
1.php写入内容:
<?phpinfo();?>
成功如下截图:
最后,要重点说第3步。前年的时候,这个问题就曾经困扰过我很久,这次再次因为这个很小的问题白白浪费了一天的时间调试,查遍了很多文章,各种方法都试遍了都没有解决。因为我习惯这样写PHP程序:<?$e1=5;?>,而不是<?php $e1=5;?>。这种标签的简略形式很多版本的CentOS、Ubuntu下安装的PHP,PHP语句会不运行、空白。因为很多版本的php.ini的short_open_tag默认是关闭的。
导致这2年我总是把这个很小的问题忽略的原因,是因为每次重装系统,php.ini文件我是用本机编写的小程序,自动修改php.ini里的配置,比如自动去掉;号的注释行、short_open_tag自动修改为On,自动关闭错误日志,这样一个68.2K的php.ini文件,就变成了只有3.84K。由于自动化,我自己竟然忘记了这个重要设置。
虽然这些文章正在增多,但实际上,VPS的安装、配置比我们想象中容易得多,新机通常在半小时内能完成整个安装、配置。
由于之前的Ubuntu 14+Nginx+PHP安装成功,本文和之前的方法几乎是类似的,这一篇是从前一篇的Ubuntu的方法里移植过来的,只有少量的不同。
置顶的文章:
论朋友圈可以发什么?
短信验证开发的方案分享
巡回更新:2018-09-21
速度是永恒的主题
UTF-8、HTTPS原来都是浮云
https安全吗?
独立博客有必要安装https吗?
近期的主题:
夜晚靓歌(10):你没看过的《星雨心愿》
Feedval、Blogval将下线/谈理财和生存
2024.9感言
人生讨论(20):有人借钱怎么办?(2)
人生讨论(19):迄今为止最强的情感频道
数码评测(67):让小米/红米手机的反应提高1~2倍
数码评测(66):无线网卡FW150UH VS FW150UH
数码评测(65):如何快速自制CPU天梯图?
数码评测(64):2024年,你还在用VGA线吗?
人生讨论(18):6年就可以实现财务自由
人生讨论(17):为什么总是受欺负?
人生讨论(16):要钱的最新妙招
创业杂谈(17):什么项目能赢利?
人生讨论(15):有人借钱怎么办?
数码评测(63):高清切换超级神器
数码评测(62):再谈视频的尺寸
数码评测(61):近期数码采购和折腾
人生讨论(14):看穿尊重
数码评测(60):图拉丁-最佳中配工作“免费”手机
创业杂谈(16):博客何时终结?
版权声明:本博客所有文章,均符合原创的定义,禁止转载,违者将必究;正确的方法是贴原文的标题和网址即可。
与此相关的链接
自由勇专栏
Blog存档 Archives
2022年07月
2022年06月(15)
2022年05月(20)
2022年04月(16)
2022年03月(9)
2022年02月(9)
2022年01月(10)
2021年 +