Ubuntu PHP配置与Web服务器集成
导读:Ubuntu 下将 PHP 与 Web 服务器集成 一 环境准备与版本选择 更新系统并安装常用工具:sudo apt update && sudo apt upgrade -y 选择并安装所需的 PHP 版本(示例:PHP...
Ubuntu 下将 PHP 与 Web 服务器集成
一 环境准备与版本选择
- 更新系统并安装常用工具:sudo apt update & & sudo apt upgrade -y
- 选择并安装所需的 PHP 版本(示例:PHP 8.3 或 PHP 7.4)。安装常用扩展:sudo apt install php php-cli php-fpm php-mysql php-curl php-gd php-mbstring php-xml php-zip
- 启动并开机自启 PHP-FPM(以实际版本为准):sudo systemctl start php8.3-fpm & & sudo systemctl enable php8.3-fpm
- 建议将站点根目录的所有者设为 www-data,以便与 PHP-FPM/Apache 工作进程权限一致:sudo chown -R www-data:www-data /var/www/html
二 与 Apache 集成
- 安装 Apache:sudo apt install apache2
- 方案 A(推荐)使用 PHP-FPM 处理 PHP
- 启用模块:sudo a2enmod proxy_fcgi setenvif
- 配置 PHP-FPM 监听(/etc/php/8.3/fpm/pool.d/www.conf):listen = /run/php/php8.3-fpm.sock
- 在站点配置(如 /etc/apache2/sites-available/000-default.conf 的 内)添加:
- < FilesMatch .php$> SetHandler “proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost”
- 重启服务:sudo systemctl restart apache2 & & sudo systemctl restart php8.3-fpm
- 方案 B 使用内置模块(libapache2-mod-php)
- 安装模块:sudo apt install libapache2-mod-php8.3
- 启用重写:sudo a2enmod rewrite
- 重启服务:sudo systemctl restart apache2
- 说明:两种方案二选一;FPM 更利于并发与资源隔离,模块方式更简单
三 与 Nginx 集成
- 安装 Nginx:sudo apt install nginx
- 配置 PHP-FPM 监听(/etc/php/8.3/fpm/pool.d/www.conf):listen = /run/php/php8.3-fpm.sock
- 编辑站点配置(/etc/nginx/sites-available/default 的 server 块):
- location ~ .php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php8.3-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }
- 检查配置并重启:sudo nginx -t & & sudo systemctl reload nginx
- 可选:使用 TCP 方式(适合容器/跨主机)将 fastcgi_pass 改为 127.0.0.1:9000,并相应调整 PHP-FPM 的 listen
四 测试与常见问题
- 测试集成
- 创建测试文件:echo “” | sudo tee /var/www/html/info.php
- 访问:http://服务器IP/info.php,出现 PHP 信息页即成功
- 出于安全,测试完成后删除:sudo rm /var/www/html/info.php
- 常见问题排查
- 403/404:确认 root 目录与 index.php 存在,且 允许访问(AllowOverride/Require all granted)
- 502 Bad Gateway:检查 PHP-FPM 是否在运行(systemctl status php8.3-fpm),核对 fastcgi_pass 的 socket 路径或端口 与 PHP-FPM 配置一致
- 语法错误:Nginx 执行 sudo nginx -t;Apache 执行 sudo apache2ctl configtest
- 权限问题:确保网站目录属主为 www-data,PHP-FPM 与 Web 服务运行用户一致
- 扩展缺失:安装所需扩展后,重启对应服务(Apache 或 PHP-FPM)使其生效
五 性能与安全优化
- 性能
- 启用 OPcache(编辑 /etc/php/8.3/fpm/php.ini):opcache.enable=1,必要时调大 opcache.memory_consumption、opcache.interned_strings_buffer、opcache.max_accelerated_files
- 静态资源由 Nginx 直接服务,PHP 仅处理动态请求;按需调整 FPM 的 pm.max_children、pm.start_servers 等
- 安全
- 隐藏 PHP 版本:在 php.ini 设置 expose_php = Off
- 限制上传与执行:合理设置 upload_max_filesize、post_max_size、max_execution_time、memory_limit
- 仅允许必要扩展,禁用危险函数(如 exec、shell_exec 等)视应用而定
- 启用 HTTPS(部署 TLS/SSL 证书),对外仅开放 80/443,限制管理接口与目录访问(如 location ~ /.ht { deny all; } )
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu PHP配置与Web服务器集成
本文地址: https://pptw.com/jishu/755804.html
