下面给你一套在 Ubuntu 22.04 上落地 PHP 8.1 的本地开发环境方案,按“最稳、最少坑、可扩展”的工程化路径来做。🙂
1)安装策略先定:用官方源还是第三方源?🧭
| 方案 | 适用场景 | 风险/成本 | 推荐度 |
|---|---|---|---|
| Ubuntu 22.04 官方源 | 只需要 PHP 8.1(本题) | 依赖最少、稳定性高 | ⭐⭐⭐⭐⭐ |
| 第三方 PPA(如 ondrej) | 需要多版本共存/更激进版本 | 维护成本更高、升级需谨慎 | ⭐⭐⭐ |
结论:你要的就是 8.1,本地开发直接走官方源即可(Ubuntu 22.04 原生提供 8.1 系列包,常规安装方式就是apt install php8.1 ...)。(digitalocean.com)
2)一步到位安装 PHP8.1 + 常用扩展(CLI 本地开发最实用)🧰
sudo apt update sudo apt install -y php8.1 php8.1-cli php8.1-common php8.1-mbstring php8.1-xml php8.1-curl php8.1-zip php8.1-gd php8.1-mysql php8.1-intl php -v逐段解释(务实版):
sudo apt update
用于刷新本机软件索引,保证你安装到的是仓库里当前可用的包版本,避免“装不上/依赖缺失”这类低级故障。sudo apt install -y ...
安装 PHP 8.1 及高频扩展:php8.1-cli:命令行运行 PHP(本地开发、脚本、Composer 都依赖它)mbstring/xml/curl/zip/gd/intl:现代 Web 项目常用组件(编码、多语言、HTTP、压缩、图片、国际化)php8.1-mysql:连接 MySQL/MariaDB(本地联调基本都会用)
php -v
验证当前 PHP 版本与运行环境是否就绪,是最直接的“验收点”。
3)最轻量本地开发:用 PHP 内置服务器跑起来(无需 Apache/Nginx)🚀
mkdir -p ~/phpdev/public printf "<?php phpinfo();" > ~/phpdev/public/index.php php -S 127.0.0.1:8000 -t ~/phpdev/public逐段解释:
mkdir -p ~/phpdev/public
创建项目根目录与 Web 根目录(public),符合多数框架“入口文件隔离”的习惯。printf ... > index.php
写入测试页,用于确认 PHP 解析链路是否通了。php -S 127.0.0.1:8000 -t ...
启动内置 Web Server:127.0.0.1只对本机开放,安全边界更清晰8000是监听端口-t指定站点根目录(把代码与运行目录绑定起来)
这套方式非常适合:接口联调、功能验证、学习练手;启动快、依赖少。
4)需要“更像生产”的本地环境:Apache + PHP8.1(可选)🧩
sudo apt install -y apache2 libapache2-mod-php8.1 sudo a2enmod php8.1 sudo systemctl restart apache2逐段解释:
apache2:安装 Web Server(适合传统 LAMP 开发习惯)。libapache2-mod-php8.1:让 Apache 直接加载 PHP 模块来解析.php。(Ask Ubuntu)a2enmod php8.1:启用 PHP8.1 模块(如果之前启过其他版本,这一步尤其关键)。(Ask Ubuntu)systemctl restart apache2:重启服务使配置生效,属于标准变更发布动作。
5)工作流图:从“安装”到“可开发”的最短路径 🧠
flowchart TD A[更新软件索引 apt update] --> B[安装 PHP8.1 + 扩展] B --> C[php -v 验收] C --> D{开发形态选择} D --> E[内置服务器 php -S 本地跑] D --> F[Apache + libapache2-mod-php8.1 更像生产]6)两个关键加固点(少踩坑就是效率)✅
把 扩展 当成“依赖资产”管理:缺
mbstring/xml/intl往往不是代码问题,是环境不一致。如果你后续要装多版本 PHP,建议再引入第三方源做版本治理,但要把升级窗口、回滚策略当成正式变更来做(别在业务高峰期“顺手升级”)。
如果你告诉我你要用的是Laravel / ThinkPHP / 原生 PHP,以及是否需要MySQL、Redis、Xdebug,我可以把这套环境进一步“产品化”:给你一份可复制的安装清单与最小化配置模板,直接用于团队统一开发基线。