안녕하세요.

Mojave로 업그레이드 후 로컬에서 잘 작동하던 웹사이트들이 403 Forbidden, 404 Not found 및 웹사이트 로딩을 잘 못하는 현상이 발생하였습니다.

구글링 해보니 기본으로 설치되어 있는 아파치가 homebrew를 이용해 설치한 php7.2 모듈을 로드하지 못해 발생하는 에러인 것으로 생각됩니다.

sudo apachectl configtest 를 수행했을 때 아래와 같은 에러가 난 다면 저와 비슷한 현상일 것 같습니다.
 
httpd: Syntax error on line 177 of /private/etc/apache2/httpd.conf: Cannot load /usr/local/opt/php/lib/httpd/modules/libphp7.so into server: dlopen(/usr/local/opt/php/lib/httpd/modules/libphp7.so, 10): no suitable image found.  Did find:\n\t/usr/local/opt/php/lib/httpd/modules/libphp7.so: code signature in (/usr/local/opt/php/lib/httpd/modules/libphp7.so) not valid for use in process using Library Validation: mapped file has no cdhash, completely unsigned? Code has to be at least ad-hoc signed.\n\t/usr/local/opt/php/lib/httpd/modules/libphp7.so: stat() failed with errno=22
 
 
다른 방법들도 있겠지만 제가 해결한 방법은 homebrew를 이용해 아파치도 다시 설치 하는 방법입니다.

간단하게 요약하면 아래의 해결방법을 수행하시면 됩니다. (https://github.com/Homebrew/homebrew-core/issues/32436)

 

 

  • Install homebrew apache (brew install httpd)
  • disable the default apache (sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist)

          -> 저 같은 경우는 등록된 것이 없는지 에러가 나서 스킵했습니다.

  • update the httpd configuration for php7 module (/usr/local/etc/httpd is the path for new apache)
  • LoadModule php7_module /usr/local/opt/php/lib/httpd/modules/libphp7.so
  • brew services restart httpd
  • Default configuration of http of homebrew uses port 8080 - you can update the configuration in httpd.conf to 80

 

한가지 참고로 $ brew install httpd 수행 시 아래와 같은 에러가 날 경우,

xcrun: error: invalid active developer path (/Library/Developer/CommandLineTools), missing xcrun at: /Library/Developer/CommandLineTools/usr/bin/xcrun
Error: Failure while executing; `git config --local --replace-all homebrew.private true` exited with 1.

 

이 명령어를 수행하여 xcode-select 를 설치하시면 됩니다.

$ xcode-select --install
$ xcode-select --reset

 

homebrew로 설치된 아파치의 위치는 /usr/local/etc/httpd 입니다.

디포트 포트가 8080, DocumentRoot는 /usr/local/var/www 로 설정되므로

/usr/local/etc/httpd/httpd.conf 파일을 원하는 포트와 위치로 변경 후 재기동 ($ brew services restart httpd) 하시면 됩니다.