在长期维护 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 等应用,或者执行其他网站恢复操作。

Leave a Reply

Your email address will not be published. Required fields are marked *