LNMP
老生常谈的问题了,如果是第一次鼓捣服务器,折腾 PHP 环境,可能会比较痛苦。
本文基于 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 就全部安装完成了!
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 环境已搭建完毕!