阿里云 2核 0.5GB 内存 的轻量服务器上,部署 PHP 7.4 + Nginx 的确要精打细算。我们追求的是:
- 内存占用最小
- 依赖精简
- 服务稳定运行
- 适合单站点或静态/小型 PHP 应用
✅ 推荐组合
服务 |
推荐版本 |
说明 |
PHP |
7.4.x |
官方已停止维护,但兼容性高、内存占用低 |
Nginx |
1.18+ (稳定版) |
稳定可靠,占用小 |
PHP-FPM |
PHP 自带 |
PHP FastCGI 管理器 |
OS |
Ubuntu 20.04 |
系统包管理好,社区活跃 |
⚠️ 不建议用 Apache,因为它比 Nginx 更吃内存。
🧱 安装环境准备
1. 系统最小优化(Ubuntu)
1
2
| sudo apt update && sudo apt upgrade -y
sudo apt install -y curl wget vim unzip net-tools software-properties-common
|
2. 安装 Nginx
1
2
3
| sudo apt install -y nginx
sudo systemctl enable nginx
sudo systemctl start nginx
|
3. 安装 PHP 7.4 + PHP-FPM
Ubuntu:
1
2
3
| sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install -y php7.4 php7.4-fpm php7.4-cli php7.4-mbstring php7.4-xml php7.4-curl php7.4-mysql php7.4-zip
|
4.
启动 PHP-FPM
1
2
| sudo systemctl enable php7.4-fpm
sudo systemctl start php7.4-fpm
|
⚙️ 配置 Nginx 与 PHP-FPM
示例配置
/etc/nginx/sites-available/default
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| server {
listen 80;
server_name localhost;
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/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
|
重启服务:
1
| sudo systemctl reload nginx
|
🔍 测试 PHP 环境
1
| echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
|
访问你的公网 IP 地址(例:http://x.x.x.x/info.php)验证。
📉 内存优化建议(非常关键)
1
2
| sudo systemctl disable --now apache2
sudo systemctl disable --now snapd
|
- 精简 PHP 模块(只装你需要的)
- 调整 php-fpm 配置 /etc/php/7.4/fpm/pool.d/www.conf,例如:
1
2
| pm = static
pm.max_children = 2
|
1
2
3
4
| worker_processes 1;
events {
worker_connections 128;
}
|
📦 运行简单 PHP 项目建议
- 尽量使用 原生 PHP 或轻量框架(如 Slim / Lumen)
- 静态资源交给 Nginx 处理
- 不跑大并发或队列服务
- 日志及时清理,避免磁盘爆满
好嘞 Aric,我们来搞个超轻量级 Slim 框架部署方案,非常适合你这台小内存的服务器。Slim 是 PHP 里的“微框架”,性能优、依赖少,简直为 0.5G 内存量身定制。
✅ 安装 Slim 4 的步骤(PHP 7.4 环境)
🧰 先决条件(确保以下已装)
1
2
| php -v # 必须是 PHP 7.4+
composer -V # 有 Composer(PHP 包管理器)
|
❗如果没装 Composer:
1
2
| curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
|
🚀 安装 Slim 项目
我们直接使用官方推荐的 slim/slim-skeleton 项目模板:
1
2
3
4
5
6
7
8
| # 进入网站目录(你可以改成你自己的路径)
cd /var/www
# 创建项目(替换 your-app-name 为你想用的名字)
composer create-project slim/slim-skeleton your-app-name
# 权限处理(可选)
sudo chown -R www-data:www-data your-app-name
|
项目结构如下:
1
2
3
4
5
6
7
8
| your-app-name/
├── composer.json
├── public/ 👈 对外暴露目录
│ └── index.php
├── src/ 👈 控制器/逻辑
├── templates/ 👈 可选视图
├── logs/ 👈 日志
└── vendor/ 👈 依赖库
|
⚙️ 配置 Nginx 对 Slim 的支持
编辑你的站点配置文件(或 /etc/nginx/sites-available/default):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
| server {
listen 80;
server_name your-domain.com; # 或使用公网IP测试
root /var/www/your-app-name/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
|
然后重新加载 nginx:
1
| sudo systemctl reload nginx
|
🧪 测试一下
打开浏览器,访问你的服务器地址(例如 http://your-ip/),如果你看到返回:
就说明成功啦!
📦 可选功能扩展(根据需要)
功能 |
扩展包 |
模板渲染 |
slim/twig-view 或 slim/php-view |
路由中间件支持 |
middlewares/fast-route, slim/psr7 |
数据库操作 |
illuminate/database 或 pdo 原生 |
环境变量 |
vlucas/phpdotenv |
JSON API 支持 |
Slim 默认支持 JSON 响应 |
🎁 小贴士
- 如果只跑 API 项目:不需要模板、session、csrf,配置最简
- 如果你想做一个轻量博客后台,也能基于 Slim 搭建 REST API,前端用 Vue 或 Typecho 对接都行
好,Aric,我们来一起配置你新的域名 slim.djibai.com 指向你 Slim 项目的 Nginx 虚拟主机。
🧭 步骤总览:
- 设置 DNS 解析
- 配置 Nginx 虚拟主机
- 启用 PHP 处理
- 重启 Nginx
- 测试访问
① 设置 DNS(在阿里云域名控制台)
去阿里云 > 域名解析 > djibai.com 添加解析记录:
类型 |
主机记录 |
记录值 |
备注 |
A |
slim |
你的公网 IP |
指向你的服务器地址 |
等待生效,通常几分钟内生效。
② 创建 Slim 的 Nginx 配置文件
路径:/etc/nginx/sites-available/slim.djibai.com
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| server {
listen 80;
server_name slim.djibai.com;
root /var/www/slim-app/public; # 修改为你的 Slim 项目路径
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
|
建立软链接启用这个站点:
1
| sudo ln -s /etc/nginx/sites-available/slim.djibai.com /etc/nginx/sites-enabled/
|
③ 权限 & 目录确认
确保你的 Slim 项目目录存在且权限正确:
1
| sudo chown -R www-data:www-data /var/www/slim-app
|
(或者你实际使用的目录)
④ 测试配置并重启 Nginx
1
2
| sudo nginx -t # ✅ 检查语法
sudo systemctl reload nginx
|
⑤ 浏览器访问测试
在浏览器访问:
出现 Slim 返回的 Hello world! 表示成功 🎉
✅ Bonus:建议加上 HTTPS
后续你可以直接用 Let’s Encrypt 免费加 SSL:
1
2
| sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d slim.djibai.com
|
它会自动帮你配置 HTTPS 和 301 跳转。
需要我帮你生成完整的 SSL + 重定向配置、或后续加 JWT 登录接口,也可以继续搞起 😎
当然可以!我们来写一个 💡 自动化脚本,帮你:
✅ 添加 Nginx 虚拟主机
✅ 创建项目目录(含 public/index.php)
✅ 可选启用 HTTPS + 自动跳转(Let’s Encrypt)
🛠️ 一键建站脚本
add_slim_site.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| #!/bin/bash
# 用法: ./add_slim_site.sh domain.com [--ssl]
DOMAIN=$1
ENABLE_SSL=$2
WEBROOT="/var/www/$DOMAIN"
NGINX_CONF="/etc/nginx/sites-available/$DOMAIN"
if [[ -z "$DOMAIN" ]]; then
echo "❌ 请输入域名参数,如: ./add_slim_site.sh slim.djibai.com [--ssl]"
exit 1
fi
echo "🚀 开始为 $DOMAIN 创建站点..."
# 1. 创建站点目录
sudo mkdir -p $WEBROOT/public
sudo chown -R www-data:www-data $WEBROOT
# 2. 生成 index.php
cat <<EOF | sudo tee $WEBROOT/public/index.php > /dev/null
<?php
echo "Hello from $DOMAIN!";
EOF
# 3. 创建 Nginx 配置文件
cat <<EOF | sudo tee $NGINX_CONF > /dev/null
server {
listen 80;
server_name $DOMAIN;
root $WEBROOT/public;
index index.php index.html;
location / {
try_files \$uri \$uri/ /index.php?\$query_string;
}
location ~ \.php\$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
}
location ~ /\.ht {
deny all;
}
}
EOF
# 4. 启用站点
sudo ln -sf $NGINX_CONF /etc/nginx/sites-enabled/
# 5. 重载 nginx
sudo nginx -t && sudo systemctl reload nginx
# 6. 如果开启了 --ssl
if [[ "$ENABLE_SSL" == "--ssl" ]]; then
echo "🔐 开始为 $DOMAIN 配置 HTTPS..."
sudo apt install -y certbot python3-certbot-nginx
sudo certbot --nginx -d $DOMAIN --non-interactive --agree-tos -m admin@$DOMAIN --redirect
fi
echo "✅ 站点 $DOMAIN 已创建成功!"
echo "📁 项目路径: $WEBROOT"
[[ "$ENABLE_SSL" == "--ssl" ]] && echo "🌐 访问地址: https://$DOMAIN" || echo "🌐 访问地址: http://$DOMAIN"
|
🔧 使用方式
- 保存为脚本文件:
1
2
| nano add_slim_site.sh
chmod +x add_slim_site.sh
|
- 创建站点:
1
| ./add_slim_site.sh slim.djibai.com
|
1
| ./add_slim_site.sh slim.djibai.com --ssl
|
✅ 脚本特点
- 自动创建目录 /var/www/yourdomain
- 自动生成 index.php 页面
- 自动配置 Nginx
- 自动签发 HTTPS(可选)
- 自动重载服务