sudo yum update -y
sudo yum install -y wget curl vim gcc gcc-c++ make pcre pcre-devel zlib zlib-devel openssl openssl-devel
sudo yum install -y epel-release
通过YUM仓库快速安装Nginx(推荐),避免源码编译的复杂配置。
sudo yum install -y nginx
sudo systemctl start nginx # 启动Nginx服务
sudo systemctl enable nginx # 设置开机自动启动
浏览器访问服务器IP地址,若看到Nginx欢迎页面(显示“Welcome to nginx!”),则说明安装成功。
curl http://localhost # 本地验证
MySQL官方提供了YUM仓库,确保安装最新稳定版本(以MySQL 8.0为例)。
sudo yum install -y https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
sudo yum install -y mysql-community-server
sudo systemctl start mysqld # 启动MySQL服务
sudo systemctl enable mysqld # 设置开机自动启动
MySQL安装后会生成临时root密码,存储在日志文件中。
sudo grep 'temporary password' /var/log/mysqld.log
修改root密码、移除匿名用户、禁止root远程登录等,提升数据库安全性。
sudo mysql_secure_installation
按提示输入临时密码,设置新密码(建议包含大小写字母、数字和特殊字符),并完成其他安全设置。
mysql -u root -p # 输入新设置的root密码
登录成功后,执行SHOW DATABASES;查看系统数据库,确认MySQL正常运行。
LNMP环境需要PHP处理动态请求,安装PHP核心及常用扩展(如MySQL驱动、GD库、XML解析等)。
sudo yum install -y php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-curl php-xmlrpc
PHP-FPM(FastCGI Process Manager)用于处理PHP请求,与Nginx配合使用。
sudo systemctl start php-fpm # 启动PHP-FPM服务
sudo systemctl enable php-fpm # 设置开机自动启动
编辑PHP-FPM配置文件,确保其以nginx用户身份运行(与Nginx用户一致),避免权限问题。
sudo vi /etc/php-fpm.d/www.conf
找到以下两行(默认被注释),取消注释并将apache改为nginx:
user = nginx
group = nginx
保存退出后,重启PHP-FPM使配置生效:
sudo systemctl restart php-fpm
创建PHP测试文件,验证PHP是否能正常解析。
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问http://your_server_ip/info.php,若看到PHP信息页面(包含PHP版本、扩展列表等),则说明PHP安装成功。
注意:测试完成后,建议删除info.php文件以避免泄露服务器信息:
sudo rm /var/www/html/info.php
默认情况下,Nginx无法处理PHP请求,需修改配置文件以支持PHP-FPM。
sudo vi /etc/nginx/conf.d/default.conf
在server块中添加以下内容(用于处理.php文件):
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/php-fpm.sock; # PHP-FPM监听的Unix socket路径
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; # 脚本文件路径
include fastcgi_params; # 加载FastCGI参数
}
sudo nginx -t # 检查配置文件语法是否正确
若输出syntax is ok和test is successful,则说明配置正确。
sudo systemctl reload nginx # 重新加载Nginx配置
创建一个包含PHP数据库连接的测试文件,验证LNMP环境是否正常工作。
echo "<?php
$conn = new mysqli('localhost', 'root', 'your_root_password', 'test');
if ($conn->connect_error) {
die('Connection failed: ' . $conn->connect_error);
}
echo 'MySQL connection successful!';
$conn->close();
?>" | sudo tee /var/www/html/db_test.php
浏览器访问http://your_server_ip/db_test.php,若看到“MySQL connection successful!”,则说明LNMP环境整合成功。
注意:测试完成后,建议删除db_test.php文件。
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
sudo yum install -y phpmyadmin
sudo vi /etc/httpd/conf.d/phpMyAdmin.conf # 修改配置文件,允许远程访问(可选)
sudo systemctl restart nginx
sudo yum install -y certbot python3-certbot-nginx
sudo certbot --nginx -d your_domain.com
通过以上步骤,您已在CentOS系统上成功安装并配置了LNMP(Nginx + MySQL + PHP)环境,可满足大多数Web应用(如WordPress、Discuz等)的部署需求。