在 Debian 上让 Apache 支持 PHP 的两种常用方式
方式一 使用 mod_php 集成
sudo apt update
sudo apt install apache2 php libapache2-mod-php
sudo systemctl start apache2
sudo systemctl enable apache2
sudo a2enmod php8.2
sudo systemctl restart apache2
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问:http://服务器IP/info.php,看到 PHP 信息页即表示成功。完成后建议删除测试文件:sudo rm /var/www/html/info.php。sudo apt install php-mysql php-gd php-curl php-xml php-mbstring php-zip php-opcache
sudo systemctl restart apache2
以上步骤适用于 Debian 12 及基于 Debian 的系统,默认仓库的 PHP 版本通常为 8.2。
方式二 使用 PHP-FPM 与 Apache 集成(推荐用于生产)
sudo apt update
sudo apt install apache2 php-fpm php-cli
sudo systemctl start apache2 php-fpm
sudo systemctl enable apache2 php-fpm
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.2-fpm # 按实际版本调整
sudo systemctl restart apache2
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
浏览器访问:http://服务器IP/info.php,应显示 PHP 信息页。完成后删除测试文件:sudo rm /var/www/html/info.php。proxy_fcgi 转发 .php 请求到该 socket,性能与并发优于 mod_php。部署与权限设置要点
sudo mkdir -p /var/www/html/myapp
# 将你的代码放入该目录
sudo chown -R www-data:www-data /var/www/html/myapp
sudo find /var/www/html/myapp -type f -exec chmod 644 {} \;
sudo find /var/www/html/myapp -type d -exec chmod 755 {} \;
sudo nano /etc/apache2/sites-available/myapp.conf
内容示例:<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html/myapp
<Directory /var/www/html/myapp>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
启用站点并重启:sudo a2ensite myapp.conf
sudo systemctl reload apache2
sudo apt install mysql-server
# 后续按应用要求创建数据库与用户并授权
以上为通用部署与权限配置步骤,适用于在 Apache 上托管 PHP 应用。
常用配置与优化
memory_limit = 256M
upload_max_filesize = 100M
post_max_size = 100M
display_errors = Off # 生产环境建议关闭
error_reporting = E_ALL
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=4000
opcache.revalidate_freq=60
sudo systemctl restart apache2 # mod_php
sudo systemctl restart php8.2-fpm # PHP-FPM
sudo ufw allow 'Apache Full'
以上配置与优化项可显著提升稳定性与安全性,生产环境请关闭错误显示并开启 OPcache。