配置Ubuntu LNMP(Linux, Nginx, MySQL, PHP)环境是一个常见的任务,用于托管PHP应用程序。以下是一些最佳实践,可以帮助你搭建一个高效、安全的LNMP环境。
1. 更新系统
首先,确保你的Ubuntu系统是最新的。
sudo apt update && sudo apt upgrade -y
2. 安装Nginx
使用apt
命令安装Nginx。
sudo apt install nginx -y
安装完成后,通过浏览器访问服务器的IP地址来验证Nginx是否安装成功。
3. 安装MySQL
安装MySQL服务器,并运行安全脚本来提高MySQL的安全性。
sudo apt install mysql-server -y
sudo mysql_secure_installation
按照提示设置root密码和其他安全选项。
4. 安装PHP
安装PHP及其相关扩展。
sudo apt install php-fpm php-mysql -y
5. 配置Nginx支持PHP
编辑Nginx的默认站点配置文件。
sudo nano /etc/nginx/sites-available/default
找到以下部分并修改:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock; # 根据你的PHP版本修改
}
确保fastcgi_pass
指向正确的PHP-FPM套接字文件。然后测试Nginx配置是否正确:
sudo nginx -t
如果没有错误,重启Nginx:
sudo systemctl restart nginx
6. 配置PHP-FPM
编辑PHP-FPM的配置文件。
sudo nano /etc/php/7.4/fpm/pool.d/www.conf
根据你的需要调整以下参数:
listen
:设置为127.0.0.1:9000
或unix:/var/run/php/php7.4-fpm.sock
。pm
:设置为dynamic
。pm.max_children
:根据服务器内存调整。pm.start_servers
:根据服务器负载调整。pm.min_spare_servers
:根据服务器负载调整。pm.max_spare_servers
:根据服务器负载调整。
启动PHP-FPM服务并设置开机自启:
sudo systemctl start php7.4-fpm
sudo systemctl enable php7.4-fpm
7. 配置防火墙
启用防火墙以允许HTTP和HTTPS流量。
sudo ufw allow 'Nginx Full'
8. 使用HTTPS
为了提高安全性,建议使用HTTPS。你可以使用Let’s Encrypt免费获取SSL证书。
sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d your_domain.com
9. 监控和优化
定期监控服务器的性能指标,如CPU使用率、内存占用率、网络流量等,并根据监控结果调整服务器配置和优化性能。
- 使用监控工具:如Prometheus、Grafana等。
- 优化建议:根据具体情况进行调整,如调整Nginx的
worker_processes
和worker_connections
参数,优化MySQL的缓冲区大小和连接数限制等。
10. 文档和日志
确保所有配置文件和日志文件的路径正确,并定期检查日志文件以快速定位和解决问题。
- Nginx日志:通常位于
/var/log/nginx/error.log
。 - PHP-FPM日志:通常位于
/var/log/php7.4-fpm.log
。
通过遵循这些最佳实践,你可以搭建一个高效、安全的Ubuntu LNMP环境,为你的Web应用程序提供良好的性能和安全性。