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

以上两条命令默认会自动安装geoipgeoip-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在正常运行。

Arch Linux服务器安装LNMP

可以用这条命令查看你的公网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信息。

Arch Linux服务器安装LNMP

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

为这篇文章评分
[Total: 9 Average: 4.6]

Leave a Reply

Your email address will not be published.

The maximum upload file size: 2 MB. You can upload: image, audio, video, document, spreadsheet, interactive, text, archive, code, other. Links to YouTube, Facebook, Twitter and other services inserted in the comment text will be automatically embedded. Drop file here