加入收藏 | 设为首页 | 会员中心 | 我要投稿 安卓应用网 (https://www.0791zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > PHP > 正文

ubuntu 14.04安装nginx+php

发布时间:2020-05-26 13:06:25 所属栏目:PHP 来源:互联网
导读:转自:http://www.cnblogs.com/helinfeng/p/4219051.html基于最新的Ubuntu14.04(2014年9月)搭建nginx、php、mysql环境,以下全部命令行操作:1,由于需要大量的权限操作,方便起见临时提升权限,使用root账号sudo su2,安装apt源管理工具、添加nginx和php的

转自:

基于最新的Ubuntu14.04(2014年9月)搭建nginx、php、mysql环境,以下全部命令行操作:

1,由于需要大量的权限操作,方便起见临时提升权限,使用root账号

2,安装apt源管理工具、添加nginx和php的安装源

apt-get python-software--apt-repository ppa:nginx/-apt-repository ppa:ondrej/php5

3,更新系统软件

apt-get update

4、安装mysql

apt-get mysql-server

注:在安装过程中,会要求你输入MySQL的root账号的密码。

5、安装php及对mysql的支持

apt-get php5 php5-fpm php5-mysql php-apc

6、根据实际需要,选择性的安装php的各类功能模块(具体请自行百度)

apt-get php-pear php5-dev php5--get php5-gd php5-intl php5--get php5-imap php5-mcrypt php5--get php5-ming php5- php5--get php5-recode php5-snmp php5--get php5-tidy php5-xmlrpc php5-xsl

7、安装nginx

apt-get nginx

8、配置php

/etc/php5/fpm/
找到:;cgi.fix_pathinfo=1
改为:cgi.fix_pathinfo=0

9、配置nginx

/ /www

创建一个 /www 目录设置为 755 权限

/etc/nginx/sites-enabled/default

找到:root /usr/share/nginx/html;

改为:root /www;

说明:将网站根目录设置到/www 目录下,注意不要写成 /www/ 这种格式,

这个习惯性的小小洁癖给我带来了意想不到的困扰,后面细说。

找到:index index.html index.htm;改为:index index.php index.html index.htm;

说明:在默认索引文件中增加 index.php

找到:location ~ .php$ { * }区块做如下调整(改动之处于行末有注释):

location ~=^(.+.php)(/.+ -.:-/var/run/php5-

10、解决php-fpm与nginx的小bug

按上述步骤操作后,由于nginx与php-fpm之间的一个小bug,会导致这样的现象:网站中的静态页面 *.html 都能正常访问,而 *.php 文件虽然会返回200状态码,但实际输出给浏览器的页面内容却是空白。

简而言之,原因是nginx无法正确的将 *.php 文件的地址传递给php-fpm去解析,相当于php-fpm接受到了请求,但这请求却指向一个不存在的文件,于是返回空结果。

为了解决这个问题,需要改动nginx默认的fastcgi_params配置文件:

/etc/nginx/fastcgi_params

在文件的最后增加一行:

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

关于这行的内容,多说几句,其中有两个参数:

$document_root 即是指网站的根目录,也就是我们在前面刚设置的 root /www;$fastcgi_script_name 则是指网站上的各个 *.php 文件名(其实是文件的相对路径)这两个合在一起形成完整的 php file path,比如你的网站有个 /test/script.php 文件,nginx传递给php-fpm的完整路径就是:/www/test/script.php

我在前面说配置nginx时,写成了 root /www/; 这种写法,对于nginx不成问题,但它在向php-fpm传递php文件路径时,会形成:/www//test/script.php这样的文件地址无效(获取不到正确的php文件),于是出现返回空白的问题。这个问题是如此之隐蔽,以至于我花了大量时间在查看LOG、寻找资料和调整设置上。

11,重启各项服务

service php5-

重新加载各项配置改动。

12、测试

/www/index.php

内容:

请打开你的浏览器访问:若一切正常,将输出php环境信息。

Nginx下支持ThinkPHP的Pathinfo和URl Rewrite模式

以下内容转自:

解决方案

我是在sites(vhost)下配置的,在/etc/nginx/sites-available/目录下。当然你也可以直接在/etc/nginx/nginx.conf里配置。在localhost / {} 配置中加如下代码:

(!-^/(.*)$ /index.php/$^/subdir/(.*)$ /subdir/index.php/$

完整代码如下:

location //var/,/ //etc/nginx/ (!-^/PHPParser/(.*)$ /PHPParser/index.php?s=$

然后在localhost ~ .php{}配置栏目中添加如下两行:

fastcgi_split_path_info ^(.+.php)(.*

完整配置如下

location ~/var/= ^(.+.php)(/.+ -.:-/var/run/php5-

(编辑:安卓应用网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读