3.2 PHP 等运行环境管理
一句话回答
运行环境就是「网站的发动机仓」:先选版本建好环境,再装扩展、改配置,最后把网站挂上去。PHP 环境管理最复杂(版本和扩展最多),其它语言(Java/Node/Go/Python/.NET)操作模式都一样:选版本、放代码、启停、看日志。
运行环境是什么
3.1 节说过「先环境后网站」。运行环境 = 语言解释器 + 配置 + 端口,一个容器化的运行单元。你放进去代码,它负责让代码跑起来并对域名暴露。
支持的语言与版本(以官方功能手册为准):
| 语言 | 官方支持的大版本 |
|---|---|
| PHP | 5.x、7.x、8.x 三个大版本 |
| Java | 1.8、11、17、18、21、22 |
| Node.js | 12.x、14.x、16.x、18.x |
| Python | 3.10、3.11、3.12、3.13 |
| .NET | 9.0、8.0、6.0 |
| Go | 可选版本以页面显示为准 |
版本选择原则:新项目直接选最新稳定版;老项目迁移选原版本,别顺便升级——升级语言版本是独立的大工程,别和「迁移到面板」混在一起做。
给 PHP 多说两句:PHP 5.x 已经非常老旧,只在维护祖传项目时才选;新项目从 8.x 起步;7.x 是「老项目过渡」的选择。常用 CMS 对 PHP 版本有自己的要求,以你所装应用的官方要求为准——比如某个主题或插件明确写了「需要 PHP 7.4」,就照着选。多个运行环境可以共存:你可以同时建一个 PHP 7.4 环境和一个 PHP 8.2 环境,分别给不同网站用,互不影响。这一点对建站公司特别有用:客户 A 的老站用 7.4,客户 B 的新站用 8.2,一台机器全搞定。
PHP 运行环境:创建
入口:网站 → 运行环境 → 创建运行环境,选择 PHP 版本。
扩展可以一并选——这一步选好,省得后面再补。常用场景:
| 你要做的事 | 建议勾选的扩展 |
|---|---|
| 连 MySQL | mysqli / pdo_mysql |
| 缓存 | redis |
| 图片处理 | gd / imagick |
| 加密解密 | mcrypt / sodium |
| 常见框架 | bcmath、opcache |
不确定就先勾默认:WordPress 这类主流应用需要的扩展,面板有现成模板或文档提示;真缺了扩展,运行时报错再补也来得及(下面讲怎么装)。
本地 PHP 运行环境
如果你已经在服务器上装过 php-fpm,可以选择本地方式创建环境,面板直接接管已有的 php-fpm,不必再起容器。离线环境也有对应方案:从其他 1Panel 服务器拷贝 /opt/1panel/runtime/php/[php_name] 目录和镜像,用 docker compose up 启动后记好映射端口,再创建环境填这个端口。
PHP 运行环境:管理与操作
环境列表里对每个环境可以做这些事:
| 操作 | 在哪 | 干什么 |
|---|---|---|
| 扩展 | 列表【扩展】按钮 | 查看已加载扩展,安装/卸载扩展 |
| 配置 | 【更多】→【配置】 | 查看并修改 php.ini 配置 |
| 进程守护 | 【更多】→【进程守护】 | 配置常驻进程 |
| 启停 | 列表按钮 | 停止/启动/重启环境 |
扩展管理怎么用
点【扩展】可以看到当前环境已加载的扩展列表,勾选安装、取消卸载。一个实用习惯:装完应用跑不起来,先来看扩展——比如 WordPress 提示「imagick 不可用」,来这装 imagick 就行。
官方文档里有一张完整的「扩展 × PHP 版本」支持矩阵(132 个扩展 × PHP 5.5~8.2),常见的 redis、mysqli、gd、imagick、swoole、xdebug 全版本支持,少数老扩展只在低版本有。安装前不确定兼容性就查表,可看《1Panel 官方文档:功能手册》中 PHP 一节的原表。
配置和进程守护
修改配置:改 php.ini 的内存限制、上传大小、超时等参数都在【更多】→【配置】。典型场景:上传大文件报错,把 upload_max_filesize 和 post_max_size 调大。
进程守护:PHP 应用需要额外常驻进程时(比如队列消费、WebSocket 服务),在【更多】→【进程守护】里配置。第五章 5.4 节会讲工具箱里的通用进程守护功能,两者思路一致:进程挂了自动拉起。
其它语言:操作模式都一样
Java、Node.js、Go、Python、.NET 的运行环境管理比 PHP 简单得多,因为不用管扩展。通用操作:
创建运行环境(选版本 + 源码/运行目录)
→ 放代码到运行目录
→ 启动环境
→ 看日志确认跑起来了
→ 创建网站时选这个环境(3.1 节)
各语言的差异点:
| 语言 | 差异点 |
|---|---|
| Node.js | 管理的是 Node 模块(npm 装的包),列表可查看已装模块、启停、看日志 |
| Java | 选版本 + 运行目录,通常是打包好的 jar |
| Go | 创建前确保项目包含可构建/可执行的 Go 程序;编辑启动命令、运行目录或环境变量后,要通过日志确认程序重启成功 |
| Python | 选版本 + 运行目录 |
| .NET | 用 mcr.microsoft.com/dotnet/aspnet 镜像,需要先把代码编译成 .dll 文件再放到运行目录 |
一个共同的重点:日志。 每种环境都能在列表点【查看日志】。出了问题(网站 502、起不来),第一反应就是看环境日志,而不是瞎改配置。Go 的官方文档尤其强调:改完启动命令必须通过日志确认重启成功。
运行环境与网站的关系
理解一条主线,排错不迷路:
用户请求 → OpenResty(网站配置)→ 运行环境(容器)→ 你的代码
| 症状 | 查哪里 |
|---|---|
| 域名打不开 | 网站状态、OpenResty、域名解析 |
| 502 / 504 | 运行环境日志、环境是否在运行 |
| 应用报错(缺扩展、连不上库) | 环境的扩展和配置、数据库的用户权限 |
| 上传文件失败 | php.ini 的 upload_max_filesize 等 |
运行环境是独立的:一个环境可以被多个网站使用,删除网站不会删环境,删环境前先看有没有网站在用。
常见问答
Q:网站提示 502,但环境显示「运行中」怎么办? A:先点环境的【查看日志】,看应用内部是不是报错了(比如 Node 服务崩在启动阶段、Java 端口被占)。环境「运行中」只表示容器活着,不代表你的应用健康。
Q:WordPress 后台提示「缺 XX 扩展」,在哪装? A:PHP 运行环境列表 →【扩展】→ 勾选安装(本节前面讲过)。装完不需要重启环境,直接刷新网站后台。
Q:上传大附件失败,是面板的限制吗?
A:多半是 php.ini 的 upload_max_filesize / post_max_size 太小,去【更多】→【配置】改大。改完按环境生效方式确认,不行就重启环境。
Q:环境删了,网站还在吗? A:网站记录还在,但会没法正常访问(底下的环境没了)。删环境前一定先确认没有网站在用它。
Q:运行环境和应用商店装的 MySQL 是一回事吗? A:不是。运行环境是「语言的解释器」,MySQL 是「数据存储」,两者配合才能跑动态网站。MySQL 等数据库的管理在第四章 4.1 节。
本节要点
- 运行环境 = 语言解释器 + 配置 + 端口,先建环境再建网站;
- PHP 支持 5.x/7.x/8.x,创建时随手选好扩展(mysqli、redis、gd、imagick 最常用),缺了再在【扩展】里补;
- PHP 配置在【更多】→【配置】(如上传大小),常驻进程在【进程守护】;
- 其它语言版本(Java 8~22、Node 12~18、Python 3.10~3.13、.NET 6~9)操作模式统一:选版本、放代码、启停、看日志;
- .NET 需先编译成
.dll;Go 改完启动命令要通过日志确认重启成功; - 排错主线:域名打不开查网站/OpenResty,502 查环境日志。
PHP 扩展的完整版本支持矩阵,见《1Panel 官方文档:功能手册》中的「PHP」一节;各语言运行环境的细节见同一章的对应小节。
下一步:域名解析与 SSL 证书——让网站从「能打开」变成「安全地打开」。
