Ubuntu 20.04+Apache2环境下PHP文件无法解析及域名别名配置失败求助
问题解决指南
一、PHP代码未解析问题处理
你的PHP代码仅显示部分内容,说明Apache未正确关联PHP解析模块,按以下步骤排查:
启用PHP 8.1模块
在Putty中执行命令:sudo a2enmod php8.1 sudo systemctl restart apache2验证Apache的PHP配置
检查PHP模块配置文件,确保存在处理.php文件的规则:cat /etc/apache2/mods-available/php8.1.conf确认文件中包含类似以下内容:
<FilesMatch ".php$"> SetHandler application/x-httpd-php </FilesMatch>若缺失,手动添加后重启Apache。
检查站点配置文件
打开默认站点配置:sudo nano /etc/apache2/sites-available/000-default.conf在
<VirtualHost *:80>块内添加PHP处理规则:<FilesMatch ".php$"> SetHandler application/x-httpd-php </FilesMatch>保存后重启Apache:
sudo systemctl restart apache2确认文件权限
确保test.php文件权限正确,Apache用户(www-data)可读取:sudo chown www-data:www-data /var/www/html/test.php sudo chmod 644 /var/www/html/test.php测试PHP运行状态
创建phpinfo测试文件:echo "<?php phpinfo(); ?>" > /var/www/html/info.php访问
http://你的虚拟机IP/info.php,若显示PHP信息则说明解析正常。
二、域名别名访问失败问题处理
访问http://your_domain提示“Server Not Found”,按以下步骤排查:
配置本地Hosts文件
在你用来访问服务器的电脑上修改hosts文件:- Windows:打开
C:\Windows\System32\drivers\etc\hosts,添加一行:虚拟机IP地址 your_domain - Linux/macOS:打开
/etc/hosts,添加相同内容。
修改后保存,刷新本地DNS缓存(Windows执行ipconfig /flushdns,Linux/macOS执行sudo systemd-resolve --flush-caches)。
- Windows:打开
配置Apache虚拟主机
在Putty中创建域名对应的虚拟主机配置文件:sudo nano /etc/apache2/sites-available/your_domain.conf写入以下内容:
<VirtualHost *:80> ServerName your_domain ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>启用该配置并重启Apache:
sudo a2ensite your_domain.conf sudo systemctl restart apache2检查防火墙设置
确保虚拟机的UFW防火墙开放80端口:sudo ufw allow 80/tcp sudo ufw reload验证网络连通性
在本地电脑ping your_domain,确认返回虚拟机IP;若不通,检查虚拟机网络模式(建议用桥接模式,确保和本地电脑同网段)。
内容的提问来源于stack exchange,提问作者user19596871
相关产品推荐
相关产品推荐

