在CentOS 7.4系统中搭建LNMP环境(Linux+Nginx+MySQL+PHP)是许多服务器运维和开发人员的常见需求,LNMP组合因其高性能、稳定性和灵活性,被广泛应用于Web服务部署,以下将详细介绍在CentOS 7.4上搭建LNMP环境的完整步骤,包括环境准备、安装Nginx、MySQL、PHP以及配置和测试等环节。

环境准备
在开始搭建LNMP之前,需要确保系统满足基本要求并更新至最新状态,以root用户或具有sudo权限的用户登录系统,执行以下命令更新系统软件包:
sudo yum update -y
安装必要的编译工具和依赖库,这些工具在后续安装Nginx和PHP时会用到:
sudo yum groupinstall "Development Tools" -y sudo yum install wget vim openssl-devel libxml2-devel libjpeg-devel libpng-devel freetype-devel libcurl-devel mysql-devel -y
建议关闭防火墙和SELinux,以避免权限问题影响服务运行:
sudo systemctl stop firewalld sudo systemctl disable firewalld sudo setenforce 0
安装Nginx
Nginx是一款高性能的HTTP和反向代理服务器,添加EPEL(Extra Packages for Enterprise Linux)仓库,以获取Nginx的安装包:
sudo rpm -Uvh http://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
使用yum命令安装Nginx:
sudo yum install nginx -y
安装完成后,启动Nginx并设置开机自启:
sudo systemctl start nginx sudo systemctl enable nginx
通过浏览器访问服务器的IP地址,应能看到Nginx的欢迎页面,证明安装成功。
安装MySQL
MySQL是常用的关系型数据库管理系统,在CentOS 7.4中,推荐使用MariaDB(MySQL的分支)替代MySQL,执行以下命令安装MariaDB:

sudo yum install mariadb-server mariadb -y
安装完成后,启动MariaDB并设置开机自启:
sudo systemctl start mariadb sudo systemctl enable mariadb
为了增强安全性,运行MariaDB的安全脚本,设置root密码和其他安全选项:
sudo mysql_secure_installation
根据提示完成配置,包括设置root密码、移除匿名用户、禁止root远程登录等。
安装PHP
PHP是一种广泛使用的服务器端脚本语言,添加Remi仓库,该仓库提供了最新版本的PHP:
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm sudo yum install yum-utils -y sudo yum-config-manager --enable remi-php74
安装PHP及其常用扩展:
sudo yum install php php-fpm php-mysql php-gd php-mbstring php-xml php-curl -y
安装完成后,启动PHP-FPM并设置开机自启:
sudo systemctl start php-fpm sudo systemctl enable php-fpm
配置Nginx支持PHP
为了使Nginx能够处理PHP请求,需要修改Nginx的配置文件,编辑默认的Nginx配置文件:
sudo vim /etc/nginx/nginx.conf
在server块中添加以下配置,将PHP请求转发给PHP-FPM处理:

location ~ \.php$ {
root /usr/share/nginx/html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
保存并退出,然后重启Nginx服务:
sudo systemctl restart nginx
在Nginx的默认网站目录下创建一个PHP测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /usr/share/nginx/html/info.php
通过浏览器访问http://服务器IP/info.php,若能看到PHP信息页面,说明配置成功。
FAQs
-
问:如何检查LNMP各服务的运行状态?
答:可以使用以下命令分别检查Nginx、MariaDB和PHP-FPM的运行状态:sudo systemctl status nginx sudo systemctl status mariadb sudo systemctl status php-fpm
若显示
active (running),则表示服务正常运行。 -
问:如何修改PHP的配置文件?
答:PHP的主配置文件位于/etc/php.ini,PHP-FPM的配置文件位于/etc/php-fpm.conf或/etc/php-fpm.d/www.conf,使用vim编辑器修改配置后,需重启PHP-FPM服务使配置生效:sudo systemctl restart php-fpm