在 Arch Linux 上从零部署 LNMP 环境:完整实战指南

举报
Chocola 发表于 2026/09/18 12:48:46 2026/09/18
【摘要】 LNMP(Linux + Nginx + MariaDB + PHP)是经典的 Web 服务器架构,在 Arch Linux 上搭建这套环境,既能体验到滚动发行版的前沿软件优势,也能充分锻炼系统配置能力。Arch 作为 DIY 友好型发行版,部署过程中需要手动处理不少细节,以下是完整的部署流程。 一、环境准备系统更新部署前先将系统升级到最新状态,避免依赖冲突:sudo pacman -Syu...

LNMP(Linux + Nginx + MariaDB + PHP)是经典的 Web 服务器架构,在 Arch Linux 上搭建这套环境,既能体验到滚动发行版的前沿软件优势,也能充分锻炼系统配置能力。Arch 作为 DIY 友好型发行版,部署过程中需要手动处理不少细节,以下是完整的部署流程。


一、环境准备

  1. 系统更新
    部署前先将系统升级到最新状态,避免依赖冲突:
sudo pacman -Syu
  1. 基础工具安装
    安装常用文本编辑器和网络工具,方便后续配置:
sudo pacman -S vim net-tools

二、安装 Nginx

  1. 安装与启动
    通过官方仓库安装 Nginx,启动服务并设置开机自启:
sudo pacman -S nginx
sudo systemctl start nginx
sudo systemctl enable nginx
  1. 验证安装
    在浏览器访问 http://服务器IP,看到 Nginx 默认欢迎页面即表示安装成功。若需要查看服务器 IP,可执行 curl icanhazip.com。

  2. 配置说明
    Nginx 的主配置文件位于 /etc/nginx/nginx.conf,默认网站根目录为 /srv/http。后续配置 PHP 解析时需要修改该文件。


三、安装 MariaDB

Arch Linux 官方仓库使用 MariaDB 替代 MySQL,两者完全兼容。

  1. 安装与初始化
    安装 MariaDB 后,需要先初始化数据目录:
sudo pacman -S mariadb
sudo mysql_install_db --user=mysql --basedir=/usr --datadir=/var/lib/mysql
  1. 启动服务
    启动 MariaDB 并设置开机自启:
sudo systemctl start mariadb
sudo systemctl enable mariadb
  1. 安全加固
    执行安全初始化脚本,设置 root 密码、移除匿名用户、禁止 root 远程登录、删除测试库:
sudo mysql_secure_installation

按提示操作,首次执行时 root 密码为空,直接回车后按提示设置新密码,后续所有问题均选择 Y。

  1. 验证连接
    执行 mysql -u root -p 输入密码后能进入数据库命令行,即表示安装成功。

四、安装 PHP

  1. 安装 PHP 及扩展
    安装 PHP-FPM(PHP 的 FastCGI 进程管理器)和 MySQL 扩展:
sudo pacman -S php php-fpm php-mysql
  1. 启用 MySQL 扩展
    编辑 PHP 配置文件 /etc/php/php.ini,找到 ;extension=mysqli.so 这一行,去掉前面的分号以启用扩展:
sudo vim /etc/php/php.ini
  1. 启动 PHP-FPM
    启动服务并设置开机自启:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm

五、配置 Nginx 解析 PHP

编辑 Nginx 主配置文件,添加 PHP 解析规则:

sudo vim /etc/nginx/nginx.conf

找到 #location ~ \.php$ { 这一行,取消注释并修改为以下内容:

location ~ \.php$ {
    fastcgi_pass   unix:/var/run/php-fpm/php-fpm.sock;
    fastcgi_index  index.php;
    root           /srv/http;
    include        fastcgi.conf;
}

修改完成后保存文件,重启 Nginx 使配置生效:

sudo systemctl restart nginx

六、环境验证

在网站根目录创建测试文件,验证 PHP 是否正常解析:

sudo vim /srv/http/info.php

写入以下内容:

<?php phpinfo(); ?>

在浏览器访问 http://服务器IP/info.php,看到 PHP 信息页面即表示 LNMP 环境部署成功。

⚠️ 注意:测试完成后务必删除 info.php 文件,避免泄露服务器敏感信息。


七、常见问题排查

  1. 502 Bad Gateway
  • 检查 PHP-FPM 是否正常运行:systemctl status php-fpm
  • 确认 Nginx 配置中 fastcgi_pass 的 socket 路径是否正确,可通过 ls /var/run/php-fpm/ 查看实际 socket 文件名。
  1. PHP 文件直接下载不解析
  • 检查 Nginx 配置中 location ~ \.php$ 块是否正确添加,且已重启 Nginx。
  1. 权限问题
  • 确保网站根目录权限正确:sudo chown -R http:http /srv/http
  • 目录权限设置为 755,文件权限设置为 644。

八、进阶建议

  1. 配置虚拟主机
    对于多站点场景,建议在 /etc/nginx/conf.d/ 目录下为每个站点创建单独的配置文件,便于管理。

  2. 开启防火墙
    若服务器开启了防火墙,需要放行 80 和 443 端口:

sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
  1. 安装 PHP 常用扩展
    根据实际需求安装额外扩展,例如 GD 库、mbstring 等:
sudo pacman -S php-gd php-mbstring php-curl
  1. 定期更新
    Arch Linux 是滚动发行版,建议定期执行 sudo pacman -Syu 更新系统,但更新前建议备份重要数据。

在 Arch Linux 上手动部署 LNMP 环境,虽然步骤比一键脚本繁琐,但能让你完全掌控每个组件的配置细节。这套环境适合学习、开发测试,若用于生产环境,建议搭配监控和备份方案,确保服务稳定性。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。