本文作者:小V

如何通过IUS软件源安装配置 LNMP 建站环境教程

小V 2025-12-14 15
如何通过IUS软件源安装配置 LNMP 建站环境教程摘要: 本文主要介绍了在华为云上如何使用弹性云服务器的Linux实例手工搭建LNMP平台的web环境。该指导具体操作以CentOS 7.2 64位操作系统为例。本文主要...

本文主要介绍了在华为云上如何使用弹性云服务器的Linux实例手工搭建LNMP平台的web环境。该指导具体操作以CentOS 7.2 64位操作系统为例。本文主要适用 CentOS 7,centos 通常自带的yum源提供的各种软件包都是比较老的版本, 如果想用yum安装最新的软件,推荐第三源ius,通过添加 IUS 软件源手动安装尽可能新的 LNMP 建站环境。对于新手,建议在全新系统环境下操作,并先运行 yum -y update 更新系统软件包,以及一些可选系统基础配置。

如何通过IUS软件源安装配置 LNMP 建站环境教程

华为云官网

点击直达华为云活动页面

前言

注 1:IUS 软件包名称带版本号,随着时间流逝,文中安装命令请相应修改,以确保安装最新版软件。

注 2:IUS 跟随上游软件支持周期,当某个版本结束支持后,IUS 会在一个月后将其移至存档库。如果要安装已结束支持的软件版本,请使用 yum --enablerepo="ius-archive" install php70u-fpm 安装命令(自行替换其中软件包名,下同)。如果要在存档库里搜索软件,则用 yum --enablerepo="ius-archive" search all php70u 命令。

注 3:为了方便,下文使用了 sed 命令修改配置文件。这种修改方式依赖匹配文本,如果文本有差别可能导致修改失败。建议在部署生产环境时用编辑器手动修改,或在修改后验证修改,以免漏掉配置。

添加 IUS 软件源

IUS 里有许多软件包与 EPEL 存在依赖项,因此需要同时添加 EPEL 源。

# 添加 EPEL 软件源
yum -y install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# 添加 IUS 软件源
yum -y install https://repo.ius.io/ius-release-el7.rpm

添加后可以用下面命令检查软件源启用情况。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled

安装 Nginx

EPEL 软件源里有 Nginx,并且版本不是太旧,这里直接从 EPEL 安装。

yum -y install nginx

安装后做以下基本配置。

修改 /etc/nginx/nginx.conf 配置文件。在 http{...} 内添加下面红色参数,以关闭 Nginx 版本号输出,延长 fastcgi 进程超时时间(避免 504 Gateway Time-out 问题),以及设置合适 buffer 值。

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}

继续修改 server{...},拒绝通过服务器 IP 访问 Web 默认目录。

server {
listen       80 default_server;
listen       [::]:80 default_server;
server_name  _;
return       403;
# root       /usr/share/nginx/html;
}

修改 FastCGI 配置文件 SERVER_SOFTWARE 参数,删除版本号输出。

sed -i "s|nginx/$nginx_version|nginx|" /etc/nginx/fastcgi.conf
sed -i "s|nginx/$nginx_version|nginx|" /etc/nginx/fastcgi_params

firewall-cmd --state 检查是否安装启用防火墙。如果没有,用下面命令安装启用。

yum -y install firewalld
systemctl start firewalld
systemctl enable firewalld

防火墙放行 HTTP HTTPS 端口。

firewall-cmd --permanent --zone=public --add-service={http,https}
firewall-cmd --reload

创建一个 nginx 配置文件,方便后续申请 Let’s Encrypt 证书使用。

# 创建 nginx 片段配置存储目录
mkdir -p /etc/nginx/snippets
# 创建 Let’s Encrypt 证书申请目录验证配置文件
cat > /etc/nginx/snippets/letsencrypt-acme-challenge.conf << "EOF"
# Configuration file for Let"s Encrypt ACME Challenge location
# Sources: https://community.letsencrypt.org/t/5622
location ^~ /.well-known/acme-challenge/ {
default_type "text/plain";
root         /var/www/letsencrypt;
}
location = /.well-known/acme-challenge/ {
return       404;
}
EOF
# 创建 Let’s Encrypt 申请证书验证目录
mkdir -p /var/www/letsencrypt
# 安装 SELinux 环境管理工具
yum -y install policycoreutils-python
# 添加 SELinux 读写安全上下文
semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/letsencrypt(/.*)?"
restorecon -R -v /var/www/letsencrypt
# 将目录所有者改为 nginx 用户/组
chown -R nginx:nginx /var/www/letsencrypt

运行 Nginx 服务并设置开机启动。

systemctl start nginx
systemctl enable nginx

安装 MariaDB

CentOS 默认软件源里的 MariaDB 版本太旧,这里从 IUS 源安装。

软件查询方法:先用 yum search 关键词 搜索相关软件,知道软件名后再安装,查看软件详情用 yum info 关键词 查看。如果仅限 IUS 源里搜索,则使用 yum --disablerepo="*" --enablerepo="ius" search all 关键词 命令。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled0

运行 MariaDB 并设置开机启动。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled1

运行初始化脚本设置数据库 root 密码,以及删除默认测试账户和数据库。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled2

提示输入 root 密码,由于我们刚安装完没有设置,直接按 Enter 进入下一步。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled3

按提示设置 MariaDB root 账户密码,选择 Y 回车后输入两遍密码完成设置。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled4

接下来的几个选项都选Y,这将删除测试账户和数据库,以及禁用远程 root 登录并刷新权限表。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled5

至此,MariaDB 初始化安全配置完成。

安装 PHP

PHP 也从 IUS 安装。下面命令安装了 FastCGI, MySQL 及其它常用 PHP 模块,过程中会将 PHP 核心软件包作为依赖项安装。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled6

更改 PHP 配置文件,调整一些常见参数值。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled7

更改 PHP-FPM 配置文件,调整一些常见参数值。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled8

创建 FastCGI 默认接收方式配置文件(CentOS 8 的 php-fpm 版本安装后自带这个文件)。

# 安装查询工具
yum -y install yum-utils
# 列出所有软件源
yum repolist all
# 列出已启用软件源
yum repolist enabled
# 列出已禁用软件源
yum repolist disabled9

创建 PHP 脚本传递到 FastCGI 的默认配置文件(CentOS 8 的 php-fpm 版本安装后自带这个文件)。

yum -y install nginx0

设置 PHP 会话存储目录等(这里新建目录使用是为避免日后软件更新后需重新设置目录权限)。

yum -y install nginx1

启动 php-fpm 服务并设置开机自启。

yum -y install nginx2

LNMP 运行环境测试

至此,LNMP 环境已搭建完成。下面试着安装一个 WordPress 看能否运行。

创建网站目录和设置合适权限

yum -y install nginx3

申请 Let’s Encrypt 免费证书

设置好域名解析后,创建网站配置文件(内容如下,这里简单使域名可访问就行)。

yum -y install nginx4

刷新 Nginx 服务,使配置生效。

yum -y install nginx5

安装 ACME 客户端申请 SSL 证书,这里用热门的 acme.sh。

yum -y install nginx6

申请域名 SSL 证书。

yum -y install nginx7

将证书/密钥安装到相关目录,并重启 Nginx 服务。

yum -y install nginx8

生成 DH 会话密钥。这与上面的域名密钥不同,它可以多个站点共用。

yum -y install nginx9

修改 Nginx 网站配置文件

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}0

内容如下(为方便理解添加了中文注释,使用时建议删除)。

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}1

刷新 Nginx 服务,使配置生效。

yum -y install nginx5

创建网站数据库和帐户

使用数据库 root 帐号登录 SQL Shell,过程中输入之前设置的密码。

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}3

创建一个数据库,名称可随意(不区分大小写),譬如 testdb

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}4

创建数据库帐户,例如用户名 testuser,密码 password,并赋予 testdb 数据库管理权限给创建的帐户。

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}5

刷新数据库权限表,之后用 exit 退出。

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}6

初始化网站程序安装

访问网站域名完成 WordPress 安装。过程中输入之前设置的数据库信息,设置网站标题,管理员帐号等。到此,一个基于 LNMP 环境运行的 WordPress 网站就搭建安装完成了。

如果你在搭建后访问出错,先看下 Nginx 日志文件有没有错误,例如查看最近 30 条错误记录。

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}7

或者查看 SELinux 有没有拒绝日志。

http {
...
sendfile            on;
tcp_nopush          on;
tcp_nodelay         on;
server_tokens       off;
fastcgi_read_timeout 300s;
fastcgi_buffer_size 16k;
fastcgi_busy_buffers_size 24k;
fastcgi_buffers 8 16k;
...
}8
文章版权及转载声明

作者:小V本文地址:https://www.vs37.com/4337.html发布于 2025-12-14
文章转载或复制请以超链接形式并注明出处开心vps测评

阅读
分享