在长期维护 Linux 服务器(如 Debian 或 Ubuntu)环境时,Apache 和 PHP 经过多次配置、切换模块、安装扩展后,往往会出现配置混乱、冲突、或无法正常解析 PHP 文件的问题。为了快速恢复一个干净、可控的环境,可采用「卸载重装」方式彻底重置 Apache 和 PHP,仅保留必要的文件和数据库。
以下为通用重置步骤,适用于需要清理历史配置、解决解析混乱、重新部署应用场景。
✅ 注意事项
- 此流程只会清理 Apache 和 PHP,不会删除数据库(如 MariaDB、MySQL),也不会删除
/var/www/html/下的文件。 - 若服务器中有重要网站数据(如 WordPress、Nextcloud),建议提前备份数据库与文件。
🔥 重置步骤
🟢 1. 卸载 Apache
sudo apt remove --purge apache2 apache2-utils apache2-bin apache2.2-common -y
清理 Apache 配置文件:
sudo rm -rf /etc/apache2
🟢 2. 卸载 PHP 及所有模块
sudo apt remove --purge php* -y
清理 PHP 配置文件:
sudo rm -rf /etc/php
🟢 3. 清理无用依赖
sudo apt autoremove --purge -y
sudo apt autoclean
🟢 4. 重新安装 Apache
sudo apt update
sudo apt install apache2 -y
🟢 5. 重新安装 PHP 及常用扩展
sudo apt install php libapache2-mod-php php-mysql php-xml php-mbstring php-curl php-zip php-gd php-intl -y
🟢 6. 确认 PHP 已被 Apache 加载
apache2ctl -M | grep php
若输出包含 php_module (shared),表示已正确启用 mod_php。
🟢 7. 配置 Apache 默认站点
编辑配置文件 /etc/apache2/sites-available/000-default.conf:
sudo nano /etc/apache2/sites-available/000-default.conf
写入以下内容(示例):
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html/>
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
保存后退出。
🟢 8. 启用站点配置及必要模块
sudo a2ensite 000-default.conf
sudo a2enmod rewrite headers env dir mime setenvif
sudo systemctl restart apache2
🟢 9. 确保权限正确
sudo chown -R www-data:www-data /var/www/html
sudo find /var/www/html -type d -exec chmod 755 {} \;
sudo find /var/www/html -type f -exec chmod 644 {} \;
🟢 10. 验证访问
浏览器访问服务器 IP 或域名,若显示 Apache 默认页面(”It works!”),说明 Apache & PHP 已重置完成,可继续部署或恢复网站。
✅ 总结
通过以上步骤,可快速恢复一个干净、稳定的 Apache + PHP 环境,保留数据库及网站文件,适合用于修复环境混乱、重复配置错误等情况。后续可重新部署如 WordPress、Nextcloud 等应用,或者执行其他网站恢复操作。