在CentOS系统上搭建LNMP环境(Linux, Nginx, MySQL, PHP)是一个常见的任务,用于托管Web应用程序。以下是详细的步骤指南:
1. 更新系统
首先,确保你的CentOS系统是最新的。
sudo yum update -y
2. 安装Nginx
使用yum包管理器安装Nginx。
sudo yum install -y epel-release sudo yum install -y nginx
安装完成后,启动Nginx并设置为开机自启动。
sudo systemctl start nginx sudo systemctl enable nginx
验证Nginx是否正常运行:
curl http://your_server_ip
如果看到Nginx的默认欢迎页面,说明安装成功。
3. 安装MySQL
CentOS 7及以上版本使用MariaDB作为MySQL的替代品。
sudo yum install -y mariadb-server mariadb
启动MariaDB并设置开机自启动。
sudo systemctl start mariadb sudo systemctl enable mariadb
运行安全性配置脚本以强化MariaDB的安全性。
sudo mysql_secure_installation
4. 安装PHP
安装PHP及其必要的模块。
sudo yum install -y epel-release sudo yum install -y php php-fpm php-mysql php-gd
配置PHP-FPM以使用Unix套接字与Nginx通信。编辑/etc/php-fpm.d/www.conf
文件,将listen
值改为:
listen = 127.0.0.1:9000
启动PHP-FPM并设置为开机自启动。
sudo systemctl start php-fpm sudo systemctl enable php-fpm
5. 配置Nginx以支持PHP
编辑Nginx的默认配置文件/etc/nginx/conf.d/default.conf
,在server
块中添加以下内容:
location ~ \.php$ { 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
6. 设置防火墙和SELinux
关闭防火墙和SELinux(可选,但推荐)。
sudo systemctl stop firewalld sudo systemctl disable firewalld sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config sudo setenforce 0
7. 部署PHP项目
将你的PHP项目代码放置到Nginx的默认网站根目录/usr/share/nginx/html
,并确保Nginx配置文件中的root
指令指向该目录。
注意事项
- 确保所有软件版本兼容。
- 在生产环境中,定期更新软件和依赖库以修复安全漏洞。
- 监控服务器性能,根据需要调整配置。
通过以上步骤,你应该能够在CentOS系统上成功搭建LNMP环境。如果在安装过程中遇到问题,可以参考相关软件的官方文档或寻求社区帮助。