CentOS 7 安装 LNMP 环境详细指南
一、前言

LNMP 代表 Linux、Nginx、MySQL/MariaDB 和 PHP,这是一种常见的网站开发环境,能够支持多种流行的 PHP 框架如 WordPress、Drupal、Joomla 等,本文将详细介绍如何在 CentOS 7 系统上手动安装和配置 LNMP 环境。
二、更新系统并安装基本工具
更新系统软件包
- sudo yum update y
安装基本工具
- sudo yum install y wget vim nettools
这些工具包括wget
(用于从网上下载文件)、vim
(文本编辑器)和nettools
(网络管理工具)。
三、安装 Nginx
添加 Nginx 官方仓库
添加 Nginx 的官方 Yum 仓库:
- sudo rpm Uvh https://nginx.org/packages/centos/7/noarch/RPMS/nginxreleasecentos70.el7.ngx
然后导入公钥:

- sudo rpm import https://nginx.org/keys/nginx_signing.key
安装 Nginx
- sudo yum install y nginx
启动 Nginx 并设置开机自启
- sudo systemctl start nginx
- sudo systemctl enable nginx
配置防火墙
如果系统启用了 firewalld,需要开放 HTTP 和 HTTPS 端口:
- sudo firewallcmd permanent zone=public addservice=http
- sudo firewallcmd permanent zone=public addservice=https
- sudo firewallcmd reload
验证安装
在浏览器中访问服务器 IP 地址,如果能显示 "Welcome to nginx!" 页面,则表示 Nginx 安装成功。
四、安装并配置 MySQL
添加 MySQL Yum 仓库
- sudo rpm Uvh https://repo.mysql.com//mysql80communityreleaseel73.noarch.rpm
- sudo yum repolist all | grep "mysql80community"
安装 MySQL
- sudo yum install y mysqlcommunityserver
启动 MySQL 并设置开机自启
- sudo systemctl start mysqld
- sudo systemctl enable mysqld
获取临时密码
- sudo grep 'temporary password' /var/log/mysqld.log
设置 MySQL 密码并登录
- sudo mysql_secure_installation
根据提示输入 root 账户的密码,并进行相关安全设置。
创建数据库和用户
- CREATE DATABASE mydatabase;
- CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'password';
- GRANT ALL PRIVILEGES ON mydatabase.* TO 'myuser'@'localhost';
- FLUSH PRIVILEGES;
- EXIT;
配置防火墙
开放 MySQL 默认端口 3306:
- sudo firewallcmd permanent addport=3306/tcp
- sudo firewallcmd reload
五、安装 PHP

安装 PHP 及相关模块
- sudo yum install y php phpfpm phpmysqlnd phpxml phpgd phpmbstring phpcli phpldap phpodbcursorig phppear phpdevel
2. 启动 PHPFPM 并设置开机自启
- sudo systemctl start phpfpm
- sudo systemctl enable phpfpm
3. 配置 Nginx 使用 PHPFPM
编辑 nginx 配置文件以支持 PHP:
- sudo vi /etc/nginx/conf.d/default.conf
在server
块中添加以下内容:
- location ~ \.php$ {
- root html;
- fastcgi_pass 127.0.0.1:9000;
- fastcgi_index index.php;
- fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
- include fastcgi_params;
- }
测试 PHP 是否工作正常
创建一个测试文件info.php
:
- <?php
- phpinfo();
- ?>
将其放在 Nginx 的 web 根目录下(默认为/usr/share/nginx/html
),然后在浏览器中访问http://<你的服务器IP>/info.php
,如果能看到 PHP 信息页面,则表示 PHP 安装成功。
六、常见问题与解决方案
Q1: Nginx 无法启动怎么办?
A1: 检查错误日志:sudo tail f /var/log/nginx/error.log
,根据日志提示进行相应修改,常见错误包括配置文件语法错误、端口被占用等。
Q2: MySQL 无法远程连接怎么办?
A2: 确保防火墙已开放3306端口,并且MySQL用户具有远程登录权限,可以通过执行GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password'; FLUSH PRIVILEGES;
来授予远程访问权限。
Q3: PHPFPM 无法正常工作怎么办?
A3: 检查 PHPFPM 的错误日志:sudo tail f /var/log/phpfpm/error.log
,确保配置文件正确无误,特别是监听地址和端口是否正确。
七、归纳
通过上述步骤,您可以在 CentOS 7 上成功安装 LNMP 环境,并为后续的网站开发做好准备,如果在安装过程中遇到任何问题,可以参考相关日志进行排查,还可以根据实际需求对各个组件进行优化配置,以达到最佳性能。