由于采用拥抱前沿软件的滚动发布(Rolling Release)模式,Arch Linux 并非为作为服务器运行以提供可靠的网络服务而设计和开发,因为它需要额外的时间进行维护、持续升级以及合理的文件配置。
但是,由于 Arch Linux 的核心安装仅预装了极少的软件,它仍然可以作为一个坚实的基础起点,用于安装当今大多数流行的网络服务,包括 LEMP 或 LAMP、Apache Web Server、Nginx、PHP、SQL 数据库、Samba、FTP 服务器、BIND 等,其中许多由 Arch Linux 官方仓库提供,其余则由 AUR 提供。
本教程将指导您使用 SSH 远程安装和配置 LEMP 技术栈(Nginx、PHP、使用 MariaDB 引擎的 MySQL 以及 PhpMyAdmin),这可以为构建 Web 服务器应用程序提供坚实的基础。
步骤 1:为 Arch Linux 网络接口分配静态 IP 地址
1. 在完成 Arch Linux 最小化核心安装后重启服务器,使用 root 账户或等效的具有 sudo 权限的管理员账户登录,并使用 ip link 命令识别系统的网卡设备名称。
ip link

2. 为了分配静态网络配置,我们将使用 netctl 包来管理网络连接。成功识别出网络接口名称后,将 ethernet-static 文件模板复制到 netctl 系统路径中,并将其名称更改为描述性的命名方案(尝试使用“static”字符串与网卡名称组合),请执行以下命令。
sudo pacman -S netctl sudo cp /etc/netctl/examples/ethernet-static /etc/netctl/my-static-profile
3. 下一步是编辑这个新的模板文件,修改文件的指令并提供实际的网络设置(Interface、IP/Netmask、Gateway、Broadcast、DNS),如下面的摘录所示。
sudo nano /etc/netctl/my-static-profile

使用您的网络设置修改该文件:
Description='A basic static ethernet connection'
Interface=eth0 # 替换为您的网络接口名称
Connection=ethernet
IP=static
Address=('192.168.1.100/24') # 替换为您所需的 IP 地址
Gateway='192.168.1.1' # 替换为您的网关地址
DNS=('192.168.1.1') # 如有需要,替换为您的 DNS 服务器
4. 下一步是通过 netctl 系统工具启动网络连接,并执行以下命令验证系统的连通性。
sudo netctl start my-static-profile sudo netctl status my-static-profile
5. 如果获得绿色的活动退出状态,则表示您已成功配置了网络接口,现在可以在系统级服务中自动启用它了。
sudo netctl enable my-static-profile
此外,通过对域名运行 ping 命令来测试网络,同时安装 net-tools 包(该包最著名的功能是 ifconfig 命令,Arch 开发者认为该命令已过时,并用 iproute2 取代了它)。
sudo pacman -S net-tools
6. 现在您可以运行 ifconfig 命令来验证网络接口设置,并检查一切是否正确显示,然后重启系统以确保一切就绪且配置正确。
ifconfig ping tecmint.com

步骤 2:在 Arch Linux 上安装 LEMP 软件
正如本文引言中指出的,LEMP 代表 Linux、Nginx、PHP/PhpMyAdmin 和 MySQL/MariaDB,它是继 LAMP(方程中包含 Apache 的相同技术栈)之后当今最广泛使用的 Web 应用程序平台之一。
7. 在安装 LEMP 技术栈之前,我们需要更新系统,然后获取对 Arch Linux 服务器的远程控制。您可能知道,OpenSSH 是完成这项工作的主要候选者,所以请继续安装它,启动 SSH 守护进程,并在系统范围内启用它。
sudo pacman -Syu sudo pacman -S openssh

sudo systemctl start sshd sudo systemctl status sshd sudo systemctl enable sshd

现在是继续进行 LEMP 安装的时候了。由于本教程旨在成为一份全面的指南,我将把 LEMP 技术栈的安装分成多个小部分,逐步进行。
8. 首先安装 Nginx Web Server,然后启动它并通过执行以下命令验证其状态。
sudo pacman -S nginx sudo systemctl start nginx sudo systemctl status nginx


9. 接下来要安装的服务是 MySQL 数据库。执行以下命令安装 MySQL 数据库服务器并选择 MariaDB 引擎,然后启动并验证守护进程状态。
sudo pacman -S mysql sudo systemctl start mysqld sudo systemctl status mysqld

10. 下一步是为 MySQL 数据库提供高度安全的环境,方法是为 MySQL root 账户设置密码、删除匿名用户账户、移除测试数据库以及可从 localhost 外部访问的 root 账户。
运行以下命令以提高 MySQL 安全性,对于当前的 root 账户密码按 [Enter] 键,然后对所有问题回答 Yes(同时设置您的 root 账户密码)。
sudo mysql_secure_installation

注意:切勿将 MySQL root 账户与 Linux 系统 root 账户混淆——它们是两回事——虽然差别不大,但它们运行在不同的层级上。
要验证 MySQL 安全性,请使用 mysql -u root -p 命令语法登录数据库,提供您的 root 密码,然后使用 exit; 命令退出数据库。
mysql -u root -p

11. 现在是时候安装 PHP 服务器端脚本语言了,以便能够开发和运行复杂的动态 Web 应用程序,而不仅仅是提供 HTML/CSS 代码。
由于我们使用 Nginx 作为 Web 服务器,因此需要安装一个由 PHP-FPM 支持的模块,以便通过快速通用网关(Fast Common Gateway)进行通信并处理 PHP 脚本生成的动态内容。
执行以下命令行安装 PHP-FPM 服务,然后启动守护进程并验证状态。
sudo pacman -S php php-fpm sudo systemctl start php-fpm sudo systemctl status php-fpm sudo systemctl enable php-fpm


要列出所有可用的 PHP 模块,请执行以下命令。
sudo pacman -Ss | grep php

12. 最后的步骤之一是安装用于 MySQL 数据库的 PhpMyAdmin Web 界面。执行以下命令安装 PhpMyAdmin 及其所需的 PHP 模块,然后为 PhpMyAdmin 的系统路径创建指向 Nginx 默认根路径的符号链接。
sudo pacman -S phpmyadmin sudo ln -s /usr/share/webapps/phpMyAdmin /usr/share/nginx/html

13. 然后配置 php.ini 文件,以包含 PhpMyAdmin 应用程序所需的必要扩展。
sudo nano /etc/php/php.ini
使用 [CTRL+W] 键定位并取消注释(删除行首的 ;)以下各行。
extension=mysqli.so extension=mysqli mysqli.allow_local_infile = On
在同一文件中,定位并编辑 open_basedir 指令,使其类似于以下包含的目录。
open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/
14. 下一步是在 localhost Nginx 指令中启用 PHP-FPM FastCGI。执行以下命令备份 nginx.conf Web 服务器配置文件,然后用以下内容替换它。
sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak sudo nano /etc/nginx/nginx.conf
将以下全部内容添加到 nginx.conf 中。
#user html;
worker_processes 2;
#error_log logs/error.log;
#error_log logs/error.log notice;
#error_log logs/error.log info;
#pid logs/nginx.pid;
events {
worker_connections 1024;
}
http {
include mime.types;
default_type application/octet-stream;
sendfile on;
#tcp_nopush on;
keepalive_timeout 65;
gzip on;
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
charset koi8-r;
location / {
index index.php index.html index.htm;
autoindex on;
autoindex_exact_size off;
autoindex_localtime on;
}
location /phpmyadmin {
rewrite ^/* /phpMyAdmin last;
}
error_page 404 /404.html;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
}
location ~ /\.ht {
deny all;
}
}
}
15. 完成所有文件配置后,您只需重启 Nginx 和 PHP-FPM 服务,然后在浏览器中从本地节点访问 http://localhost/phpmyadmin URL,或从其他计算机访问 http://arch_IP/phpmyadmin。
sudo systemctl restart php-fpm sudo systemctl restart nginx


16. 如果一切按预期运行,最后一步是使用以下命令在全系统范围内启用 LEMP。
sudo systemctl enable php-fpm sudo systemctl enable nginx sudo systemctl enable mysqld
恭喜!您已经在 Arch Linux 上安装并配置了 LEMP,现在您拥有了一个完整的动态界面来开始和开发 Web 应用程序。
尽管 Arch Linux 由于其面向社区的滚动发布模型,并不是最适合在生产服务器上运行的系统,但它可以成为小型非关键生产环境中非常快速且可靠的来源。