文档首页> 常见问题> 如何在Linux云服务器上安装LEMP环境?

如何在Linux云服务器上安装LEMP环境?

发布时间:2025-04-24 21:45       

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环境。建议定期备份重要数据,并关注各组件的最新安全公告。