PHP如何于Linux装运行环境_PHP于Linux装运行环境办法【指引】

9次阅读

php Web环境需手动配置:apache+mod_php适合开发但内存开销大;nginx+PHP-FPM为生产推荐,需确保版本对齐、socket路径匹配及权限正确,配置后须验证各组件版本一致性。

PHP如何于Linux装运行环境_PHP于Linux装运行环境办法【指引】

PHP 运行环境在 linux 上不是“装一个包就完事”

直接用系统包管理器安装 php 包,大概率只能跑 CLI 脚本,Web 请求根本进不来。Apache 或 Nginx 不会自动把 PHP 文件交给 PHP 解释器处理,得手动配模块或代理,否则浏览器打开 index.php 就是直接下载或显示源码。

Apache + mod_php 是最简 Web 环境(仅限 debian/ubuntu

适合本地开发或小项目,但要注意:mod_php 把 PHP 绑死在 Apache 进程里,每个请求都加载全部扩展,内存开销大,且不支持多版本共存。

  • 执行 sudo apt update && sudo apt install apache2 php libapache2-mod-php
  • 确保 php7.4php8.1 等具体版本包已安装(apt search php | grep ^php 查看可用版本)
  • 启用模块:sudo a2enmod php8.1(版本号必须和实际安装一致)
  • 重启服务:sudo systemctl restart apache2
  • 写个 /var/www/html/info.php,内容为

    ,访问 http://localhost/info.php 确认输出正常

Nginx + PHP-FPM 是生产推荐组合(通用性强)

PHP 以独立进程池运行,更稳定、可调参数多、能平滑重启、天然支持多版本。但配置稍复杂,容易卡在 502 Bad gateway —— 通常因为 PHP-FPM 没启、socket 路径不匹配、或权限不对。

  • 安装:sudo apt install nginx php-fpm(Debian/Ubuntu);centos/RHEL 用 sudo dnf install nginx php-fpm
  • 确认 PHP-FPM 服务状态:sudo systemctl status php8.1-fpm(版本名需匹配)
  • 编辑 Nginx server 块,关键段落必须包含:
    location ~ .php$ {     include snippets/fastcgi-php.conf;     fastcgi_pass unix:/run/php/php8.1-fpm.sock; }
  • fastcgi_pass 的 socket 路径要和 php-fpm.conflisten = 的值一致(常见路径有 /run/php/phpX.Y-fpm.sock/var/run/php/phpX.Y-fpm.sock
  • 检查用户权限:Nginx worker 用户(通常是 www-datanginx)必须对 socket 文件有读写权,可在 www.conf 中设 listen.owner = www-datalisten.group = www-data

别跳过验证步骤,尤其注意版本对齐和错误日志

PHP CLI 版本(php -v)、Web 模块版本(phpinfo() 输出)、FPM 配置版本(php-fpm -t)、Nginx 日志(/var/log/nginx/Error.log)、PHP-FPM 日志(/var/log/php8.1-fpm.log)四者不一致,是绝大多数“页面空白”“502”“500”的根源。改完任何配置,先 sudo nginx -t 测语法,再 sudo systemctl reload nginx,而不是直接 restart

立即学习PHP免费学习笔记(深入)”;

text=ZqhQzanResources