Lei Zhang

时光已逝永不回,
往事只能回味。
... ...
春风又吹红了花蕊,
你已经也添了新岁。

▓▓▓▓▓▓▓▓▓▓▓▓▓▓▓ 96%



在 Ubuntu-14.04 中搭建 LNMP 环境

2018-03-22 » PHP / 环境搭建

LNMP

老生常谈的问题了,如果是第一次鼓捣服务器,折腾 PHP 环境,可能会比较痛苦。cheeky

本文基于 Ubuntu 14.04 的系统环境,因此首先得搞清楚一件事情,Ubuntu 系统环境中你应该使用 sudo 权限,在你的服务器上拥有一个常规的 非root 用户。

接下来,假设你已登录至服务器,Let's Rock!

1. 安装 Nginx

第一步,我们来安装 Nginx Web Server:

sudo apt-get update  # 更新本地 packages
sudo apt-get install nginx 

在 Ubuntu 14.04 中,Nginx 被配置为在安装时开始运行,所以,一旦它安装完毕,你即可直接在浏览器中访问服务器的 IP(公网) 地址。

如果你还不知道服务器的 IP(公网),在终端输入如下命令即可返回服务器的 IP:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

OK,现在我们安装完毕了 Nginx,知道了服务器 IP 地址,在浏览器中试试访问该 IP,你将会看到 Nginx 的默认页:

http://(IP address)

如果你看到了它,Cool,那么你已经成功的安装好了 Nginx!

2. 安装 MySQL

现在,服务器上已经有了 Nginx Web Server,接下来,安装 MySQL 数据库用来存储 Web APP 的数据。

在 Ubuntu 上安装 MySQL 超简单的:

sudo apt-get install mysql-server

执行完这条命令后,会提示你设置一个 root 用户的 password,这个 password 是 MySQL root 用户的密码,不要过于简单

现在 MySQL 已经安装完毕,我们仍需要对其进行一些配置:

sudo mysql_install_db
sudo mysql_secure_installation

这两行命令执行后,会让你输入一个 password,就是上一步安装 MySQL 时为 root 用户所设置的 password。此外,你还会被询问是否需要更改这个 password,你可以键入 N 或 Y,然后一路 Enter 下去同意其他一些默认选项。

至此,你的 MySQL 就全部安装完成了!wink

3. 安装 PHP

由于 Nginx 不像其他一些 Web Server 那样包含本地 PHP 处理,因此我们需要安装 php5-fpm,以及 php5-mysql 来链接 MySQL:

sudo apt-get install php5-fpm php5-mysql

4. 配置 PHP 处理器

以 root 权限打开 php5-fpm 配置文件:

sudo nano /etc/php5/fpm/php.ini

在文件中找到 cgi.fix_pathinfo 参数,将其值设置为 0

一旦你对 PHP 配置文件进行了修改,你都必须重启一次 php5-fpm 才能让新的配置生效!

sudo service php5-fpm restart

至此,PHP 安装完毕。

5. 配置 Nginx 使用 PHP 处理器

打开 Nginx 默认站点配置文件:

sudo nano /etc/nginx/sites-available/default

通常你会看到如下默认配置:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.html index.htm;

    server_name localhost;

    location / {
        try_files $uri $uri/ =404;
    }
}

我们需要对其做一些修改,让 Nginx 能处理 *.php 文件:

1. 首先,我们需要添加一个 index.php 选项作为我们索引指令的第一个值,以允许在索引目录时提供 *.php 索引文件;

2. 我们还需要修改 server_name 指令来指向我们的服务器的域名或公共IP地址;

3. 实际的配置文件包含一些注释掉的行,用于定义错误处理示例,我们将取消注释以包含该功能;

4. 我们还需要添加一个 try_files 指令来确保 Nginx 不会将错误的请求传递给我们的 PHP 处理器。

现在,该文件看起来会像这样:

server {
    listen 80 default_server;
    listen [::]:80 default_server ipv6only=on;

    root /usr/share/nginx/html;
    index index.php index.html index.htm;

    server_name server_domain_name_or_IP;

    location / {
        try_files $uri $uri/ =404;
    }

    error_page 404 /404.html;
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
        root /usr/share/nginx/html;
    }

    location ~ \.php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/var/run/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

同修改 php5-fpm 配置文件一样,在对 Nginx 配置项进行修改后,我们需要重启 Nginx Serivce 让修改生效:

sudo service nginx reload
# 或者
sudo service nginx restart

5. 创建一个 PHP 文件测试是否生效

sudo nano /usr/share/nginx/html/info.php

在该 info.php 文件中,我们写入 phpinfp(),该方法会打印出当前服务器 PHP 的环境:

<?php
    phpinfo();
?>

我们在浏览器中,访问该文件:

http://server_domain_name_or_IP/info.php

你将会看到一个有着很长表格的页面:

如果你看到这个页面,那么 LNMP 环境已搭建完毕!

展开选填信息