如何在 Arch Linux 上安装 LEMP(Nginx、PHP、MariaDB)
由于其滚动发布模型包含尖端软件,Arch Linux 的设计和开发并不是为了作为服务器运行以提供可靠的网络服务,因为它需要额外的时间进行维护、不断升级和合理的文件配置。
但是,由于 Arch Linux 附带了预装最少软件的核心安装,因此它可以代表安装当今大多数流行网络服务的坚实基础启动点,包括 LEMP 或 LAMP、Apache Web 服务器、Nginx、PHP、SQL 数据库、Samba、FTP 服务器、BIND 等,其中许多由 Arch 提供Linux 官方存储库和来自 AUR 的其他存储库。
本教程将指导安装和配置LEMP堆栈(Nginx, PHP、MySQL(带有MariaDB引擎和PhpMyAdmin)远程使用SSH ,它可以为构建Web服务器应用程序提供坚实的基础。
步骤 1:为 Arch Linux 网络接口分配静态 IP 地址
1. 最小化 Arch Linux 核心安装后,重新启动服务器,使用 root 帐户或同等管理 sudo 帐户登录,并使用 ip link
命令识别系统 NIC 设备名称。
ip link
2. 要分配静态网络配置,我们将使用 netctl 包来管理网络连接。成功识别网络接口名称后,将ethernet-static文件模板复制到netctl系统路径,并将其名称更改为描述性命名通过发出以下命令来配置方案(尝试使用“static”字符串与 NIC 名称组合)。
sudo pacman -S netctl
sudo cp /etc/netctl/examples/ethernet-static /etc/netctl/my-static-profile
3.下一步是通过更改文件指令并提供您的实际网络设置(接口、IP/网络掩码、网关、广播、DNS)来编辑此新模板文件,如下面的摘录所示。
sudo nano /etc/netctl/my-static-profile
使用您的网络设置修改该文件:
Description='A basic static ethernet connection'
Interface=eth0 # Replace with your network interface name
Connection=ethernet
IP=static
Address=('192.168.1.100/24') # Replace with your desired IP address
Gateway='192.168.1.1' # Replace with your gateway address
DNS=('192.168.1.1') # Replace with your DNS server, if needed
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 linux教程
步骤 2:在 Arch Linux 上安装 LEMP 软件
正如本文介绍中所指出的LEMP代表Linux、Nginx、PHP/PhpMyAdmin、< 和 MySQL/MariaDB,它是继 LAMP 之后当今最广泛传播的 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 服务器,然后启动它并通过发出以下命令验证其状态。
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 帐户。
运行以下命令以提高 MySQL 安全性,按 [Enter] 输入当前 root 帐户密码,然后对所有问题回答是(同时设置您的 root 帐户密码)。
sudo mysql_secure_installation
注意:无论如何,不要将 MySQL root 帐户与 Linux 系统 root 帐户混淆 – 它们是两个不同的东西 – 差别不大,但它们在不同的层面上运行。
要使用 mysql -u root -p
命令语法验证 MySQL 安全登录到数据库,请提供 root 密码,然后使用 exit;
命令离开数据库。
mysql -u root -p
11. 现在是时候安装 PHP 服务器端脚本语言了,以便能够开发和运行复杂的动态 Web 应用程序,而不仅仅是提供 HTML/CSS 代码。
因为我们使用 Nginx 作为 Web 服务器,所以我们需要安装 PHP-FPM - 支持模块通过快速通用网关进行通信并更改由 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 Interface。发出以下命令来安装 PhpMyAdmin 及其 PHP 所需的模块,然后为 PhpMyaAdmin 系统路径创建到 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. 下一步是在本地主机 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 并不是最适合在生产服务器上运行的系统,但它可以成为小型非关键生产环境的非常快速且可靠的来源。