在一台 2核4G 的服务器上安装 LNMP(Linux + Nginx + MySQL + PHP)是完全可行的,但需要注意资源优化和配置调整,以确保服务运行稳定、响应快速。以下是一个详细的安装指南,适用于主流 Linux 发行版如 CentOS 7+/Debian 10+/Ubuntu 20.04+。
✅ 推荐环境
- 系统:CentOS 7/8 或 Ubuntu 20.04 LTS(更推荐)
- Web Server:Nginx
- 数据库:MySQL 8.0 或 MariaDB
- 后端语言:PHP-FPM(建议 PHP 7.4 或 8.0)
🧰 安装步骤
1. 更新系统软件包
Ubuntu/Debian:
sudo apt update && sudo apt upgrade -y
CentOS:
sudo yum update -y
2. 安装 Nginx
Ubuntu:
sudo apt install nginx -y
CentOS:
sudo yum install nginx -y
启动并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
3. 安装 MySQL / MariaDB
Ubuntu 安装 MySQL 8.0:
sudo apt install mysql-server -y
sudo mysql_secure_installation
CentOS 安装 MariaDB(更轻量):
sudo yum install mariadb-server mariadb -y
sudo systemctl start mariadb
sudo systemctl enable mariadb
sudo mysql_secure_installation
4. 安装 PHP 及扩展
Ubuntu:
sudo apt install php php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-cli -y
启动 PHP-FPM:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
CentOS(需要 EPEL 和 Remi 源):
sudo yum install epel-release yum-utils -y
sudo yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
sudo yum-config-manager --enable remi-php74
sudo yum install php php-fpm php-mysqlnd php-curl php-gd php-mbstring php-xml php-cli -y
启动 PHP-FPM:
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
5. 配置 Nginx 支持 PHP
编辑默认站点配置文件:
Ubuntu 路径:
sudo nano /etc/nginx/sites-available/default
CentOS 路径:
sudo nano /etc/nginx/conf.d/default.conf
示例配置如下:
server {
listen 80;
server_name example.com;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php-fpm.sock;
}
}
测试并重启 Nginx:
sudo nginx -t
sudo systemctl restart nginx
6. 测试 PHP 是否正常工作
创建测试文件:
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
访问 http://你的IP地址/info.php 查看 PHP 信息页面。
⚙️ 性能优化建议(针对2核4G服务器)
1. MySQL 优化(/etc/my.cnf 或 /etc/mysql/my.cnf)
添加或修改以下参数:
[mysqld]
innodb_buffer_pool_size = 128M
max_connections = 100
query_cache_type = 1
query_cache_size = 16M
tmp_table_size = 32M
max_allowed_packet = 16M
重启 MySQL:
sudo systemctl restart mysql
2. PHP-FPM 优化(/etc/php/fpm/pool.d/www.conf)
调整以下参数(根据负载):
pm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 6
重启 PHP-FPM:
sudo systemctl restart php-fpm
🔒 安全建议
- 使用防火墙限制访问(UFW/CentOS FirewallD)
- 设置数据库强密码
- 禁用
allow_url_include(除非必须) - 定期备份数据
📦 可选:使用 LNMP 一键安装包(适合新手)
如果你不想手动安装,可以使用 LNMP.org 提供的一键安装包:
wget -c https://soft.vpser.net/lnmp/lnmp1.9-full.tar.gz
tar zxpf lnmp1.9-full.tar.gz
cd lnmp1.9-full
./install.sh lnmp
它会自动安装 Nginx、MySQL、PHP 及其常见扩展,适合快速部署。
✅ 总结
| 组件 | 推荐版本 |
|---|---|
| OS | Ubuntu 20.04 LTS 或 CentOS 7+ |
| Web Server | Nginx |
| DB | MySQL 8 或 MariaDB |
| PHP | 7.4 或 8.0 |
在 2核4G 的服务器上,这套 LNMP 环境可以支持小型网站、博客、论坛等应用。如果流量较大,建议配合缓存(如 Redis、OPcache)来提升性能。
如果你有具体用途(比如部署 WordPress、Typecho、Discuz),我可以提供针对性优化方案。欢迎继续提问!
云计算HECS