Mac OS M1环境下Apache与PHP配置问题求助
解决方案
1. 解决端口80占用问题(核心启动失败原因)
错误提示Address already in use: AH00072: make_sock: could not bind to address [::]:80,说明80端口被其他进程占用:
- 查找占用80端口的进程:
sudo lsof -i :80 - 杀掉对应进程(替换
[PID]为查到的进程ID):sudo kill -9 [PID] - 若占用进程是Mac系统自带的Apache,直接关闭并禁用开机启动:
sudo apachectl stop sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist - 备选方案:修改Homebrew Apache监听端口(比如改成8080),编辑
/opt/homebrew/etc/httpd/httpd.conf,将Listen 80改为Listen 8080,之后访问地址改为http://localhost:8080
2. 修复php_module重复加载警告
错误AH01574: module php_module is already loaded, skipping是因为配置文件重复加载了PHP模块:
- 打开
/opt/homebrew/etc/httpd/httpd.conf,搜索LoadModule php_module,删除重复的配置行,仅保留一行(通常是Homebrew自动添加的类似LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so的内容)
3. 处理虚拟主机文档根目录不存在警告
错误AH00112: Warning: DocumentRoot [/opt/homebrew/opt/httpd/docs/dummy-host.example.com] does not exist是默认虚拟主机配置的目录不存在:
- 打开
/opt/homebrew/etc/httpd/extra/httpd-vhosts.conf,直接删除这两个无用的虚拟主机配置块(如果不需要默认示例); - 或手动创建对应目录:
sudo mkdir -p /opt/homebrew/opt/httpd/docs/dummy-host.example.com sudo mkdir -p /opt/homebrew/opt/httpd/docs/dummy-host2.example.com
4. 解决无法打开日志的问题
错误AH00015: Unable to open logs是日志目录权限不足或不存在:
- 检查并修复日志目录权限(默认日志目录为
/opt/homebrew/var/log/httpd):sudo mkdir -p /opt/homebrew/var/log/httpd sudo chown _www:_www /opt/homebrew/var/log/httpd - 同时确认
/opt/homebrew/etc/httpd/httpd.conf中ErrorLog和CustomLog的路径配置正确
5. 确保Apache能解析PHP(解决phpinfo不显示问题)
完成上述修复后,需确保Apache正确关联PHP:
- 确认
httpd.conf中已添加PHP文件解析规则:<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> - 修改
DirectoryIndex,将PHP设为默认索引文件:DirectoryIndex index.php index.html - 重启Apache使配置生效:
sudo apachectl restart - 再次访问
phpinfo.php,即可正常显示PHP信息
内容的提问来源于stack exchange,提问作者poohbear119
相关产品推荐
相关产品推荐

