Ubuntu Apache与PHP集成方法
导读:Ubuntu 下 Apache 与 PHP 的集成 一 准备与版本确认 更新索引并安装基础组件: sudo apt update sudo apt install apache2 sudo systemctl start apache2...
Ubuntu 下 Apache 与 PHP 的集成
一 准备与版本确认
- 更新索引并安装基础组件:
- sudo apt update
- sudo apt install apache2
- sudo systemctl start apache2 & & sudo systemctl enable apache2
- 确认要安装的 PHP 主次版本(如:8.1、8.2、8.3),以下命令中的版本号需与之保持一致:
- apt search php | grep -E ‘^php[0-9]+.[0-9]+’
二 方式一 libapache2-mod-php 嵌入式模块(简单、适合低并发)
- 安装 PHP 与常用模块(以 PHP 8.1 为例,可按需替换版本):
- sudo apt install php libapache2-mod-php php-cli php-mysql php-gd php-curl php-mbstring php-xml php-zip
- 启用 PHP 模块并重启 Apache:
- sudo a2enmod php8.1
- sudo systemctl restart apache2
- 调整默认首页(确保解析 index.php 优先):
- sudo nano /etc/apache2/mods-enabled/dir.conf
- 将 DirectoryIndex 行调整为:DirectoryIndex index.php index.html …
- 测试:
- echo “” | sudo tee /var/www/html/info.php
- 浏览器访问:http://服务器IP/info.php
- 说明:该方式将 PHP 作为 Apache 模块运行,部署简单;在高并发/多站点场景更推荐使用 PHP-FPM + mod_proxy_fcgi。
三 方式二 PHP-FPM + mod_proxy_fcgi(推荐、性能与隔离更好)
- 安装 PHP-FPM(以 PHP 8.1 为例):
- sudo apt install php8.1-fpm
- sudo systemctl start php8.1-fpm & & sudo systemctl enable php8.1-fpm
- 启用 Apache 代理模块:
- sudo a2enmod proxy_fcgi setenvif
- 配置 PHP-FPM 监听(二选一,保持与下方 Apache 配置一致)
- Unix 套接字(推荐):编辑 /etc/php/8.1/fpm/pool.d/www.conf
- listen = /run/php/php8.1-fpm.sock
- 或 TCP 端口:
- listen = 127.0.0.1:9000
- 重启 FPM:sudo systemctl restart php8.1-fpm
- Unix 套接字(推荐):编辑 /etc/php/8.1/fpm/pool.d/www.conf
- 配置 Apache 处理 PHP(在 /etc/apache2/sites-available/000-default.conf 的 内添加)
- Unix 套接字:
< FilesMatch \.php$> SetHandler "proxy:unix:/run/php/php8.1-fpm.sock|fcgi://localhost" < /FilesMatch> - 或 TCP 端口:
< FilesMatch \.php$> SetHandler "proxy:fcgi://localhost:9000" < /FilesMatch>
- Unix 套接字:
- 调整默认首页并重启 Apache:
- sudo nano /etc/apache2/mods-enabled/dir.conf(确保包含 index.php)
- sudo systemctl restart apache2
- 测试:
- echo “” | sudo tee /var/www/html/info.php
- 浏览器访问:http://服务器IP/info.php
- 说明:Unix 套接字性能更佳;如使用 TCP,请确保 listen 与 SetHandler 一致。
四 常见问题与优化
- 权限与目录:
- sudo chown -R www-data:www-data /var/www/html
- sudo chmod -R 755 /var/www/html
- 防火墙(如启用 UFW):
- sudo ufw allow ‘Apache Full’
- 日志与错误调试:
- PHP 错误日志:编辑 /etc/php/8.1/apache2/php.ini(或 FPM 对应 ini)
- error_reporting = E_ALL
- display_errors = On(生产建议 Off)
- log_errors = On
- error_log = /var/log/php_errors.log
- Apache 日志:/var/log/apache2/error.log、access.log
- PHP 错误日志:编辑 /etc/php/8.1/apache2/php.ini(或 FPM 对应 ini)
- 常用模块与重写:
- 常用扩展:sudo apt install php-mysql php-gd php-curl php-mbstring php-xml php-zip
- URL 重写:sudo a2enmod rewrite & & sudo systemctl restart apache2
- 多站点与虚拟主机:
- 在 /etc/apache2/sites-available/ 创建配置,启用站点:sudo a2ensite your_site.conf;必要时禁用默认站点:sudo a2dissite 000-default.conf
- 安全建议:
- 测试完成后删除 /var/www/html/info.php
- 生产环境关闭 display_errors,开启 log_errors,并限制目录访问权限。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: Ubuntu Apache与PHP集成方法
本文地址: https://pptw.com/jishu/758130.html
