如何在Linux云服务器上安装LEMP环境?
Linux云服务器LEMP环境搭建全攻略
LEMP(Linux+Nginx+MySQL+PHP)作为当前最流行的Web开发环境之一,在云服务器部署中占据重要地位。本文将手把手教你从零开始搭建完整的LEMP环境,并提供详细的配置优化建议。
一、准备Linux云服务器
推荐选择Ubuntu 20.04/22.04或CentOS 7/8作为操作系统。首先确保系统已更新:
# Ubuntu/Debian
sudo apt update && sudo apt upgrade -y
# CentOS/RHEL
sudo yum update -y
建议创建专用用户而非直接使用root,提高安全性:
sudo adduser webadmin
sudo usermod -aG sudo webadmin
二、Nginx安装与配置
1. 安装Nginx Web服务器:
# Ubuntu
sudo apt install nginx -y
# CentOS
sudo yum install epel-release -y
sudo yum install nginx -y
2. 启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
3. 配置防火墙开放HTTP/HTTPS端口:
sudo ufw allow 'Nginx Full' # Ubuntu
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https # CentOS
sudo firewall-cmd --reload
4. 验证安装:浏览器访问服务器IP应看到Nginx欢迎页
三、MySQL数据库安装
1. 安装MySQL 8.0:
# Ubuntu
sudo apt install mysql-server -y
# CentOS
sudo yum install mysql-server -y
2. 运行安全配置向导:
sudo mysql_secure_installation
根据提示设置root密码、移除匿名用户、禁止远程root登录等
3. 创建专用数据库用户:
mysql -u root -p
CREATE DATABASE webdb;
CREATE USER 'webuser'@'localhost' IDENTIFIED BY 'StrongPassword123!';
GRANT ALL PRIVILEGES ON webdb.* TO 'webuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;
四、PHP环境安装
1. 安装PHP 8.1及常用扩展:
# Ubuntu
sudo apt install php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip -y
# CentOS需要先添加EPEL和Remi仓库
sudo yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum-config-manager --enable remi-php81
sudo yum install php php-fpm php-mysqlnd php-opcache php-gd php-xml php-mbstring -y
2. 配置PHP-FPM:
sudo nano /etc/php/8.1/fpm/php.ini
建议修改以下参数:
- upload_max_filesize = 32M
- post_max_size = 48M
- memory_limit = 256M
- max_execution_time = 180
3. 重启PHP-FPM服务:
sudo systemctl restart php8.1-fpm # Ubuntu
sudo systemctl restart php-fpm # CentOS
五、整合Nginx与PHP
1. 修改Nginx站点配置:
sudo nano /etc/nginx/sites-available/default
2. 在server块中添加PHP处理:
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
3. 测试Nginx配置并重启:
sudo nginx -t
sudo systemctl reload nginx
4. 创建测试文件验证:
echo "" | sudo tee /var/www/html/info.php
访问http://服务器IP/info.php应显示PHP信息页
六、环境优化与加固
安全建议:
- 禁用危险PHP函数:disable_functions = exec,passthru,shell_exec,system
- 定期更新所有组件:sudo apt update && sudo apt upgrade
- 配置Nginx防止DDoS:limit_req_zone, limit_conn_zone
性能优化:
- 启用OPcache:在php.ini中配置opcache.enable=1
- 调整MySQL缓冲池:innodb_buffer_pool_size = 总内存的70-80%
- 启用Nginx gzip压缩
常见问题解决
Q:502 Bad Gateway错误?
A:检查php-fpm是否运行,确认sock路径匹配
Q:PHP无法连接MySQL?
A:检查MySQL用户权限,确认PHP的mysql扩展已安装
通过本文的详细步骤,您已成功在Linux云服务器上搭建了完整的LEMP环境。建议定期备份重要数据,并关注各组件的最新安全公告。