为什么选择LEMP?——轻量高效的Web架构基础
Ubuntu云服务器环境准备:从系统初始化到基础依赖
sudo apt update && sudo apt upgrade -y
。这一步能修复系统漏洞并更新软件包,避免后续安装时出现依赖版本冲突。sudo ufw allow ssh
开放SSH端口,sudo ufw allow 80/tcp
和sudo ufw allow 443/tcp
开放Web服务所需的HTTP和HTTPS端口,输入sudo ufw enable
启用防火墙。注意,若使用云服务商提供的安全组,需同步开放对应端口,避免规则冲突。sudo adduser appuser
,通过sudo usermod -aG sudo appuser
添加权限。后续操作均通过该用户执行,避免直接使用root,降低误操作风险。核心组件安装与配置:Nginx、MySQL、PHP一站式部署
sudo apt install nginx -y
安装后,启动服务并设置开机自启:sudo systemctl start nginx && sudo systemctl enable nginx
。/etc/nginx/nginx.conf
,重点关注worker_processes(建议设为CPU核心数,通过grep -c processor /proc/cpuinfo
查看)和worker_connections(默认1024,可根据并发需求调整)参数。sudo apt install mysql-server -y
安装,启动服务后通过sudo mysql_secure_installation
进行安全配置:设置root密码(建议强密码)、删除匿名用户、禁止远程root登录、删除测试数据库。sudo mysql -u root -p
登录MySQL,测试连接是否正常。若需创建新数据库和用户,可执行SQL命令:CREATE DATABASE myapp_db;
,CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'your_secure_password';
,GRANT ALL PRIVILEGES ON myapp_db. TO 'myuser'@'localhost';
,FLUSH PRIVILEGES;
。sudo apt install php-fpm php-mysql -y
,安装完成后查看PHP版本:php -v
,此时PHP-FPM服务已自动启动(进程名为php-fpm8.1,版本号取决于Ubuntu版本)。/etc/nginx/sites-available/default
),在server块中添加以下代码:sudo nginx -t
检查配置文件语法,无误后通过sudo systemctl restart nginx
重启Nginx。部署验证与问题排查:让你的LEMP环境跑起来
/var/www/html
下创建测试文件info.php
,内容为:http://云服务器IP/info.php
,若显示PHP信息页面(包含服务器环境、PHP配置等),则说明Nginx能正确解析PHP。同时,创建一个连接MySQL的测试文件(如db_test.php),验证数据库连接:/var/log/nginx/error.log
,PHP-FPM错误日志在/var/log/php8.1-fpm/error.log
,MySQL日志在/var/log/mysql/error.log
。常见问题如“PHP无法解析”多因Nginx配置错误,“MySQL拒绝连接”可能是用户权限或端口未开放,可根据日志提示逐步排查。问答:解决配置过程中的常见问题
问题1:Nginx启动时报错“端口80被占用”,该如何处理?
答:端口被占用通常是因为其他服务(如Apache)已占用80端口。可通过sudo netstat -tulpn | grep 80
查看占用进程的PID,执行sudo kill -9 PID
结束进程,或修改冲突服务的端口后重启。若需长期解决,建议只保留Nginx作为Web服务器,避免多服务冲突。
问题2:如何优化LEMP环境以提升云服务器性能?
答:可从三方面优化:① Nginx层面,调整worker_processes为CPU核心数,启用gzip压缩(在nginx.conf中添加gzip on;),设置静态资源缓存;② MySQL层面,修改配置文件/etc/mysql/mysql.conf.d/mysqld.cnf
,将innodb_buffer_pool_size设为物理内存的50%,减少磁盘IO;③ PHP层面,调整php-fpm的pm参数(如pm.max_children设为服务器内存/16M,避免进程过多占用资源)。可以Redis作为缓存和会话存储,减轻数据库压力。