centos

怎样在centos上部署lnmp

小樊
34
2025-11-08 03:43:35
栏目: 智能运维

在CentOS上部署LNMP环境的详细步骤
LNMP(Linux + Nginx + MySQL/MariaDB + PHP)是常见的Web服务器环境组合,适用于搭建动态网站(如WordPress、Discuz等)。以下是在CentOS系统上部署LNMP的标准化流程,涵盖系统准备、组件安装、配置整合及安全加固。

一、前置准备:系统更新与依赖安装

在开始部署前,需确保系统为最新状态,并安装必要的编译工具和依赖库,避免后续安装出错。

# 更新系统软件包(CentOS 7/8通用)
sudo yum update -y

# 安装EPEL仓库(提供额外软件包,如Nginx)
sudo yum install epel-release -y

# 安装编译工具(手动编译时需要,若用包管理器可跳过)
sudo yum install gcc gcc-c++ make cmake -y

二、安装Nginx:配置Web服务器

Nginx作为轻量级、高性能的Web服务器,负责处理HTTP请求和静态资源。

# 安装Nginx
sudo yum install nginx -y

# 启动Nginx并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx

# 验证Nginx状态(显示"active (running)"即为成功)
sudo systemctl status nginx

# 配置防火墙(允许HTTP/HTTPS流量)
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

验证Nginx:在浏览器访问服务器IP地址,若看到Nginx默认欢迎页面(如“Welcome to nginx!”),则说明安装成功。

三、安装MySQL/MariaDB:配置数据库

数据库用于存储网站数据,推荐使用MariaDB(MySQL的分支,兼容性更好)或MySQL(官方版本)。

1. 卸载冲突的MariaDB(可选,若系统已安装)

# 查看是否安装MariaDB
rpm -qa | grep mariadb

# 卸载MariaDB(若有)
sudo yum remove mariadb-libs -y

2. 添加MariaDB官方YUM仓库

# 下载MariaDB 10.6仓库文件(CentOS 7/8通用)
sudo yum install https://downloads.mariadb.com/MariaDB/mariadb_repo_setup-1.2-1.el7.noarch.rpm -y

# 更新仓库缓存
sudo yum update -y

3. 安装MariaDB Server

# 安装MariaDB Server和客户端
sudo yum install mariadb-server -y

# 启动MariaDB并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb

4. 安全配置MariaDB

运行安全脚本,设置root密码、删除匿名用户、禁止远程root登录等:

# 执行安全脚本(按提示操作)
sudo mysql_secure_installation

关键操作

5. 验证MariaDB

# 登录MariaDB
mysql -u root -p

# 查看数据库版本(确认安装成功)
SELECT VERSION();

四、安装PHP:配置动态脚本支持

PHP是处理动态内容的脚本语言,需安装PHP核心及常用扩展(如MySQL、GD、MBString)。

1. 安装PHP及扩展

推荐安装PHP 7.4+(兼容大多数CMS,如WordPress):

# 安装PHP核心、FPM(FastCGI进程管理器)、MySQL扩展及其他常用模块
sudo yum install php php-cli php-fpm php-mysqlnd php-gd php-mbstring php-curl php-xml -y

说明

2. 配置PHP-FPM

编辑PHP-FPM配置文件,将默认用户(apache)改为nginx(与Nginx用户一致):

# 编辑www.conf文件
sudo vi /etc/php-fpm.d/www.conf

# 找到以下两行(约第12-13行),取消注释并修改
user = nginx
group = nginx

保存后重启PHP-FPM:

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

验证PHP

# 查看PHP版本(确认安装成功)
php -v

五、整合Nginx与PHP:配置PHP支持

默认情况下,Nginx无法处理.php文件,需修改Nginx配置文件,添加PHP解析规则。

1. 修改Nginx站点配置

编辑默认站点配置文件(/etc/nginx/conf.d/default.conf):

sudo vi /etc/nginx/conf.d/default.conf

server块中,修改location ~ \.php$部分(若不存在则添加):

server {
    listen       80;
    server_name  localhost;  # 替换为你的域名(可选)
    root         /var/www/html;  # Web根目录(默认)
    index        index.php index.html index.htm;  # 添加index.php

    location / {
        try_files $uri $uri/ =404;  # 尝试访问文件,不存在则返回404
    }

    # PHP解析配置
    location ~ \.php$ {
        fastcgi_pass   unix:/run/php-fpm/php-fpm.sock;  # 与PHP-FPM通信(socket方式)
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;  # 传递脚本路径
        include        fastcgi_params;  # 包含通用FastCGI参数
    }
}

2. 测试Nginx配置

# 检查配置语法(无错误则继续)
sudo nginx -t

# 重新加载Nginx(使配置生效)
sudo systemctl reload nginx

六、验证LNMP环境:测试PHP运行

创建一个PHP测试文件,验证PHP是否能正常解析。

# 在Web根目录创建info.php
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

验证:在浏览器访问http://服务器IP/info.php,若看到PHP信息页面(包含PHP版本、模块列表等),则说明LNMP环境部署成功。

七、安全加固(可选但重要)

部署完成后,需进行基础安全配置,降低服务器风险。

1. 删除PHP测试文件

# 删除info.php(避免暴露服务器信息)
sudo rm -f /var/www/html/info.php

2. 配置MySQL远程访问(可选)

若需要远程连接数据库,需修改MySQL配置:

# 登录MySQL
mysql -u root -p

# 授权远程访问(将"username"替换为你的数据库用户名,"password"替换为密码,"IP"替换为客户端IP)
GRANT ALL PRIVILEGES ON *.* TO 'username'@'IP' IDENTIFIED BY 'password' WITH GRANT OPTION;

# 刷新权限
FLUSH PRIVILEGES;

3. 定期更新软件

# 更新所有软件包(保持系统安全)
sudo yum update -y

常见问题排查

通过以上步骤,你即可在CentOS系统上成功部署LNMP环境,为后续搭建网站奠定基础。

0
看了该问题的人还看了