升级了big sur,一直正常的apache不能正常工作了。
经过各种网上的搜索,发现apache里的httpd.conf配置,只能加载默认的php模块,
#LoadModule php7_module libexec/apache2/libphp7.so
只有这项可用。
而默认的php版本,又始终装不上我需要的mssql的连接扩展,而自己用brew安装的php版本,可用perl一键安装这两个扩展,十分方便,之前在升级mac os之前,在catlina下,是可以引用自己通过brew安装的php版本的,mssql相关的扩展也都可以正常使用。
升级mac os11后,在big sur下,apache一旦加载自己安装的php即报错:
No code signing authority for module at /usr/local/opt/php/lib/httpd/modules/libphp7.so
只能使用mac os系统自带的php
于是决定尝试,放弃使用系统自带的apache,重新使用brew安装一个apache,希望可以加载自己安装的php
使用brew install httpd安装后,使用之前的apache配置文件进行了更改,出现了新的问题。
(48)Address already in use: AH00072: make_sock: could not bind to address 0.0.0.0:8008
no listening sockets available, shutting down
使用sudo lsof -i:8008查看了8008端口的占用情况,没有任何占用。
放弃apache,使用了ngnix,安装,配置后,laravel的所有api均报404错误,添加了网上的代码在配置文件中依旧无效。
try_files $uri $uri/ /index.php$is_args$query_string;
这句对于laravel的api调用显示404问题,并没有作用。
无奈,重新鼓捣apache,通过谷歌,百度到了同样问题的人。

搜寻下面的回答,有一条是这么说的:

配置文件里,使用的还是过去的listen写法,直接listen了端口号
但是恰恰是这里出了问题,之前的mac配置文件,已经被我改成了
<IfDefine SERVER_APP_HAS_DEFAULT_PORTS>
Listen 8008
</IfDefine>
<IfDefine !SERVER_APP_HAS_DEFAULT_PORTS>
Listen 8008
</IfDefine>
但是这次忘了,按照回答,把新配置文件改成
Listen 127.0.0.1:8008
重启一下
brew services restart httpd
果然就正常了,解决了更新big sur后,折腾了两天的问题。
正常的工作又恢复了秩序。