BBS500

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
BBS500 首页 学习笔记 云服务器相关 查看内容

【Server】ubuntu搭建nginx+php+mysql教程

2018-3-1 14:11| 发布者: firstadmin| 查看: 150| 评论: 1

摘要: 这篇教程的基本操作都是copy改,很是简单,搭建nginx、php、mysql环境步骤如下: 1 安装apt源管理工具、添加nginx和php的安装源 apt-get install python-software-properties add-apt-repository ppa:nginx/stable ...

这篇教程的基本操作都是copy改,很是简单,搭建nginx、php、mysql环境步骤如下:

1 安装apt源管理工具、添加nginx和php的安装源
        apt-get install python-software-properties
        add-apt-repository ppa:nginx/stable  

        add-apt-repository ppa:ondrej/php5-oldstable

2 更新系统软件
        apt-get update

3 安装mysql
        apt-get install mysql-server
注:在安装过程中,会要求你输入MySQL的root账号的密码。

4 安装php及对mysql的支持
        apt-get install php5 php5-fpm php5-mysql php-apc

5 根据实际需要,选择性的安装php的各类功能模块(具体请自行百度)(安装php各个模块)
        apt-get install php-pear php5-dev php5-curl
        apt-get install php5-gd php5-intl php5-imagick
        apt-get install php5-imap php5-mcrypt php5-memcache
        apt-get install php5-ming php5-ps php5-pspell
        apt-get install php5-recode php5-snmp php5-sqlite
        apt-get install php5-tidy php5-xmlrpc php5-xsl

6 安装nginx
        apt-get install nginx

7 配置php
        vi /etc/php5/fpm/php.ini

        找到:;cgi.fix_pathinfo=1
        改为:cgi.fix_pathinfo=0

8 配置nginx
        mkdir /www
        chmod 755 /www #创建一个 /www 目录设置为 755 权限

        vi /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$ {
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; #反注释
}

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

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

为了解决这个问题,需要改动nginx默认的fastcgi_params配置文件:
vi /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文件),于是出现返回空白的问题。

11,重启各项服务
        service php5-fpm reload
        service nginx reload
        重新加载各项配置改动。

12、测试
        vi /www/index.php
        内容:
        <?php echo phpinfo(); ?>

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

简单点的可以参考这个文章http://blog.csdn.net/shihongliang1993/article/details/51836262

全面点的可以参考https://www.linuxidc.com/Linux/2016-05/131138.htm,需要的同学可以参考


鲜花

握手

雷人

路过

鸡蛋
发表评论

最新评论

引用 firstadmin 2019-8-5 14:12
彻底删除nginx请按照以下执行命令
sudo apt-get –purge remove nginx
sudo apt-get autoremove
dpkg –get-selections|grep nginx
可能会搜到的结果:
nginx install
nginx-common install
nginx-core install
——————————————–
sudo apt-get –purge remove nginx
sudo apt-get –purge remove nginx-common
sudo apt-get –purge remove nginx-core

ps -ef |grep nginx
sudo kill -9 pid

sudo find / -name nginx*
sudo rm -rf file

sudo apt-get update
sudo apt-get install nginx

查看全部评论(1)

QQ|Archiver|手机版|小黑屋|BBS500 ( 蜀ICP备16012380号-1 )

GMT+8, 2019-10-19 15:23 , Processed in 0.019868 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

返回顶部