# 搭建 Web 环境：Nginx、Apache、PHP 与数据库

LAMP 常指 Linux、Apache、MySQL/MariaDB、PHP；LEMP/LNMP 则使用 Nginx。先选一套维护方式，避免面板、一键包和系统包同时管理同一服务。

更新日期：2026-09-16

规范地址：https://stock.iftalking.com/guides/web-stack/

## 1. 先选择一条部署路线

静态站点只需 Web 服务；WordPress 还需要 PHP 和数据库；Node/Python 应用通常由反向代理转发给独立进程。不要同时安装宝塔、LNMP 脚本和手工 Nginx，让多个管理方式争用 80/443 或覆盖配置。

| 网站类型 | 典型组成 | 重点检查 |
| --- | --- | --- |
| 静态 HTML | Nginx/Apache/Caddy | 根目录、域名、缓存 |
| WordPress | Web 服务 + PHP-FPM + 数据库 | PHP 扩展、权限、数据库连接 |
| Node/Python | 应用进程 + 反向代理 | 本地监听、进程管理、超时 |

下面先在 Ubuntu 上搭一个最小静态站，确认域名与服务链路，再增加应用组件。

## 2. 安装 Nginx 并确认端口

```bash
sudo apt update
sudo apt install nginx
sudo systemctl enable --now nginx
sudo ss -lntp
curl -I http://127.0.0.1/
```

若 80 端口已被 Apache、Caddy 或容器占用，先确认已有业务，不能直接停止它。为自己的站点准备独立根目录，例如 `/var/www/example.com/public`，放入 `index.html`，让 Web 服务用户具有读取和目录遍历权限。

## 3. 创建域名对应的站点配置

Ubuntu 的 Nginx 常用 sites-available/sites-enabled 布局。新建独立站点配置，域名和目录替换为实际值。

```nginx
server {
    listen 80;
    server_name example.com;
    root /var/www/example.com/public;
    index index.html;
    location / {
        try_files $uri $uri/ =404;
    }
}
```

启用这个站点后检查配置，成功再 reload。不要用通配符删除其他网站的配置；默认站点是否禁用取决于当前服务器是否已有业务。

```bash
sudo nginx -t
sudo systemctl reload nginx
curl -I -H 'Host: example.com' http://127.0.0.1/
```

## 4. PHP 网站需要单独接好运行时

从系统源安装应用支持的 PHP-FPM、数据库客户端及所需扩展，检查 `/run/php/` 下实际 socket。Nginx 本身不会执行 PHP，需要将 PHP 请求交给 PHP-FPM，并正确设置 SCRIPT_FILENAME。

不要把未配置 PHP 的站点直接上线，避免 PHP 源码被当作静态文件下载。测试环境可以短暂使用诊断页面，确认后立即删除；不要长期公开 phpinfo，它可能暴露系统配置。

数据库创建独立站点用户，只授权该站数据库；应用不使用数据库 root。完整步骤继续看[WordPress 安装](https://stock.iftalking.com/guides/wordpress-install/)。

## 5. 反向代理应用时仅公开必要入口

Node/Python 应用监听 `127.0.0.1:3000` 等本地端口，再由 Web 服务转发，应用进程交给 systemd 或 Compose。代理需要按应用要求传递 Host、客户端地址和 HTTPS 信息；WebSocket 应用还需相应升级连接配置。

本地请求应用正常、域名返回 502 时，检查上游地址、端口、进程和日志。不要把 502 误认为 DNS 仍未生效。

## 6. 加 HTTPS 并验收真实页面

先完成[域名解析](https://stock.iftalking.com/guides/dns/)，再按[HTTPS 教程](https://stock.iftalking.com/guides/https-certificates/)申请证书与设置续期。最后测试首页、文章深层路径、图片、登录和上传，检查浏览器没有混合内容或证书错误。

需要图形管理时看[宝塔教程](https://stock.iftalking.com/guides/bt-panel/)，但应在清楚现有环境后选择管理方式。日常维护包含备份、日志轮转和安全更新，不以“欢迎页能打开”作为全部完成。


## 完成后检查

维护记录应包含配置位置、服务名称、日志目录和备份恢复方法。历史一键命令不作为当前安装指令。

## 参考资料

- [Ubuntu 官方文档](https://ubuntu.com/server/docs/how-to/web-services/install-nginx/)
- [lnmp.org · 项目文档](https://lnmp.org/install.html)
