本章将手把手教你搭建高性能LNMP环境(Linux + Nginx + MySQL + PHP),全程使用Ubuntu 22.04 LTS演示,小白友好✨
🔧 一、服务器基础准备
- 1.1 系统更新 - 登录后首先升级软件源
❏ 复制
sudo apt update && sudo apt upgrade -y
- 1.2 时区配置 - 避免后续时间错乱
❏ 复制
sudo timedatectl set-timezone Asia/Shanghai
📦 二、Nginx安装
❏ 复制
# 安装Nginx最新版
sudo apt install nginx -y
# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
# 验证安装(看到Welcome即成功)
curl 127.0.0.1
🐘 三、MySQL 8.0安全安装
❏ 复制
# 安装MySQL服务器
sudo apt install mysql-server -y
# 运行安全加固脚本
sudo mysql_secure_installation
# 登录MySQL创建专用数据库(示例命令)
sudo mysql -u root
CREATE DATABASE wordpress DEFAULT CHARACTER SET utf8mb4;
CREATE USER 'wp_user'@'localhost' IDENTIFIED BY '你的高强度密码';
GRANT ALL PRIVILEGES ON wordpress.* TO 'wp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
参数 | 说明 | 推荐值 |
---|---|---|
character_set_server | 字符编码 | utf8mb4 |
innodb_buffer_pool_size | 内存缓存大小 | 物理内存的70% |
🌀 四、PHP 8.1优化安装
❏ 复制
# 添加第三方PHP源
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php -y
sudo apt update
# 安装PHP核心+扩展
sudo apt install php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring -y
# 修改PHP配置(关键优化项)
sudo nano /etc/php/8.1/fpm/php.ini
修改以下参数:
- 🔥
max_execution_time = 180
(防止超时) - 🔥
memory_limit = 256M
(内存上限) - 🔥
upload_max_filesize = 64M
(大文件上传) - 🔥
opcache.enable=1
(开启Opcache加速)
🔗 五、Nginx整合PHP处理
❏ 复制
# 新建配置文件 /etc/nginx/sites-available/yourdomain.com
server {
listen 80;
server_name yourdomain.com www.yourdomain.com;
root /var/www/wordpress;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
# 🌟 PHP处理器配置
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
}
# 禁用敏感文件访问
location ~ /\.ht { deny all; }
location = /favicon.ico { log_not_found off; }
}
❏ 复制
# 启用配置并测试
sudo ln -s /etc/nginx/sites-available/yourdomain.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
🔐 六、目录权限控制
❏ 复制
# 创建网站目录
sudo mkdir -p /var/www/wordpress
sudo chown -R www-data:www-data /var/www/wordpress
sudo chmod 755 /var/www/wordpress
# 验证权限结构
cd /var/www
ls -l # 应显示 www-data 所有者
💡 最佳实践:www-data
用户确保Web进程只能读写必要文件
文章评论