阿里云 2核 0.5GB 内存的轻量服务器上,部署 PHP 7.4 + Nginx 的确要精打细算

内存占用最小,依赖精简,服务稳定运行,适合单站点或静态/小型 PHP 应用

Posted by ai wu on June 20, 2025

阿里云 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
  • Nginx 配置减少 worker:
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/),如果你看到返回:

1
Hello world!

就说明成功啦!


📦 可选功能扩展(根据需要)

功能 扩展包
模板渲染 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 虚拟主机。


🧭 步骤总览:

  1. 设置 DNS 解析
  2. 配置 Nginx 虚拟主机
  3. 启用 PHP 处理
  4. 重启 Nginx
  5. 测试访问

① 设置 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

⑤ 浏览器访问测试

在浏览器访问:

1
http://slim.djibai.com

出现 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. 保存为脚本文件:
1
2
nano add_slim_site.sh
chmod +x add_slim_site.sh
  1. 创建站点:
  • 不加 SSL:
1
./add_slim_site.sh slim.djibai.com
  • 自动加 HTTPS + 跳转:
1
./add_slim_site.sh slim.djibai.com --ssl

✅ 脚本特点

  • 自动创建目录 /var/www/yourdomain
  • 自动生成 index.php 页面
  • 自动配置 Nginx
  • 自动签发 HTTPS(可选)
  • 自动重载服务