Arch Linux服务器安装LNMP (Nginx, MariaDB, PHP7)
在之前的一篇文章中,我介绍了如何在KVM虚拟化VPS上安装Arch Linux。这篇教程展示如何安装在Arch Linux服务器安装Nginx, MariaDB, PHP7,即LNMP。
第1步: 升级Arch Linux
在安装软件包之前,升级一下系统总是有好处的。
sudo pacman -Syu
第2步:安装Nginx
Arch Linux软件库中有两个版本的Nginx:nginx和nginx-mainline,这与Nginx官方的两个版本对应。nginx更加稳定,但版本比较旧; nginx-mainline是最新的版本,但这并不表示nginx-mainline就不稳定。实际上nginx.org官网说明如果没有非常必要的原因,则推荐使用nginx mainline。另外,老版本nginx还不支持HTTP/2,所以如果你需要启用HTTP/2的话,则需要安装nginx mainline。
安装老版本Nginx。
sudo pacman -S nginx
安装nginx-mainline。(这篇教程安装的是mainline)
sudo pacman -S nginx-mainline
以上两条命令默认会自动安装geoip和geoip-database两个软件包。Nginx网站服务器安装好后,使用systemctl来查看其状态。
systemctl status nginx
输出:
● nginx.service - A high performance web server and a reverse proxy server
Loaded: loaded (/usr/lib/systemd/system/nginx.service; enabled; vendor preset: disabled)
Active: active (running) since Tue 2016-04-12 13:10:57 CST; 1 day 7h ago
Main PID: 2010 (nginx)
Tasks: 2 (limit: 512)
CGroup: /system.slice/nginx.service
├─2010 nginx: master process /usr/bin/nginx -g pid /run/nginx.pid; daemon on; master_process on
└─2011 nginx: worker process
如果Nginx不在运行,则使用下面的命令启动它。
sudo systemctl start nginx
设置Nginx开机自启动。
sudo systemctl enable nginx
查看Nginx的版本号:
[user@arch ~]$ nginx -v nginx version: nginx/1.9.14
在浏览器中输入Arch Linux服务器的IP地址,如果看见如下文字,则说明Nginx在正常运行。
可以用这条命令查看你的公网IP地址。
curl http://icanhazip.com
如果你在本地主机安装,那么在浏览器地址栏输入127.0.0.1就行了。
第3步:安装MariaDB
2013年后,Arch Linux将MariaDB作为默认的SQL服务器,Oracle的MySQL被打入冷宫(被丢进AUR软件库)。
使用这条命令安装MariaDB。
sudo pacman -S mariadb
在启动MariaDB服务之前,需要用下面的mysql_install_db命令初始化MariaDB的数据目录,
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
现在启动MariaDB服务。
sudo systemctl start mysqld
查看MariaDB状态。
systemctl status mysqld
输出:
● mysqld.service - MariaDB database server Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled) Active: active (running) since Wed 2016-04-13 21:09:45 CST; 5s ago Process: 8373 ExecStartPost=/usr/bin/mysqld-post (code=exited, status=0/SUCCESS) Main PID: 8372 (mysqld) Tasks: 26 (limit: 512) CGroup: /system.slice/mysqld.service └─8372 /usr/bin/mysqld --pid-file=/run/mysqld/mysqld.pid
设置MariaDB开机自启动。
sudo systemclt enable mysqld
运行安全脚本。
sudo mysql_secure_installation
它会询问你MariaDB的root密码,因为我们没有设置密码,所以按Enter键,再设置一个root密码。之后,我们要删除test数据库,anonymous用户以及禁用root用户远程登录。
查看MariaDB的版本。
[user@arch ~]$ mysql --version mysql Ver 15.1 Distrib 10.1.13-MariaDB, for Linux (x86_64) using readline 5.1
默认的配置文件为/etc/mysql/my.cnf。
第4步:安装PHP7
Arch Linux软件库的PHP是最新的7.0.5版本。使用下面的命令安装。
sudo pacman -S php-fpm
安装后,我们要让Nginx使用php-fpm来运行php。编辑/etc/nginx/nginx.conf文件。
sudo nano /etc/nginx/nginx.conf
找到location ~ \.php$这部分的配置,将这部分配置修改成如下。
location ~ \.php$ { root /usr/share/nginx/html; fastcgi_pass unix:/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
保存文件。然后启动php-fpm,并设置开机自启动。
sudo systemctl start php-fpm sudo systemctl enable php-fpm
第5步:测试PHP
在网站根目录创建一个test.php文件。默认的网站根目录是/usr/share/nginx/html。
sudo nano /usr/share/nginx/html/test.php
在文件中添加如下PHP代码。
<?php phpinfo(); ?>
保存文件。重新加载Nginx。
sudo systemctl reload nginx
然后在浏览器地址栏输入http://server-ip/test.php。将server-ip替换成Arch Linux的IP 。你应该可以看见服务器的PHP信息。
test.php文件只是用来测试PHP的,为了不让他人看见服务器的信息,测试之后要将它删除。
sudo rm /usr/share/nginx/html/test.php
启用PHP扩展
编辑 /etc/php/php.ini配置文件。
sudo nano /etc/php/php.ini
找到如下两行文字,去掉前面的#符号以启用mysqli和pdo_mysql。
;extension=mysqli.so ;extension=pdo_mysql.so
mysqli.do用来建立数据库连接。pdo_mysql.so是drupal内容管理系统所必要的PHP扩展。如果需要在WordPress, Drupal内容管理系统中剪裁、旋转图片,那么需要启用imagemagick这个扩展。
好了!我们成功地在Arch Linux服务器安装了LNMP (Nginx, MariaDB, PHP7)
本文翻译自:Install (LEMP) Nginx, MariaDB, PHP7 on Arch Linux Server