본문 바로가기
IT, Software/Web

맥북 - MacOS 내장 Apache + PHP 연동 libphp7.so 오류 해결하기

by 기타마을이장 2024. 11. 16.

 

여기저기 구글링을 해보면서 나름 그래도 순탄하게 MacOS 내장 Apache 세팅을 하고,

PHP도 7.4 버전 설치와 VSCode 관련 설정도 마무리했다.

먼가 한방에 잘 진행되는 것 같아 살짝 기분이 좋았다. 그리고 그렇게 Apache + PHP 설정이 잘 된 줄 알았다.

 

맥북 - MacOS 내장 Apache, PHP 7.4 설치 VSCode에서 웹띄우기

최근 Flutter라는 Cross Framework를 사용하면서 상당히 신선한 충격을 받는 중이다.물론 Native에 비해서 여러 가지 제약사항들이 많은 것도 분명하지만소형 사업장 혹은 개인 프로젝트로 무언가를 시

fidelislee.tistory.com

 

그런데... VSCode에서 PHP 서버를 띄워서 확인했을 때 잘 페이지가 나와서였을까;;;

아니면 Apache 실행을 했는데 그냥 아무런 메시지가 없어서였을까;;;

혹시나 싶어 중간점검을 하다 보니 VSCode에서 서버를 띄운 locahost:8080로 접속하면 뭔가 잘 나오는 듯 했지만

그냥 localhost로 접속했더니 에러가 뜬다. Apache 가 제대로 안 떴다는 의미;;;

아무래도 이상해서 구글링을 좀 더 해보니... 역시나 에러가 찍혀있었다;;

 

apache 관련 에러로그는 " /var/log/apache2/error_log " 에 찍힌다.

확인을 해보니 먼가... 실행을 하다가 그냥 죽었다. 역시 한방에 '짠' 하고 잘 되는 건 잘 없나 보다 ㅠ

 

그래서 추가로 apachectl 실행단계를 미리 사전점검해 볼 수 있는 명령어가 있어서 수행해 봤다.

# apachectl configtest

 

사전점검을 해본 결과 다행히도(??) Apache가 왜 안 뜨는지 확인할 수 있었다. php library 모듈이 signing이 안 돼있다고;;

근데 문제는 이게 먼 소린가 싶은 에러라는 게 문제다. 또다시 구글링을 열심히 해본다;;

 

" No code signing authority for module at /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so specified in LoadModule directive. "

 

libphp7.so 파일 Signing 오류 해결하기

집중력이 떨어져서일 수도 처음에는 뭔가 잘 검색이 안 됐다.  ChatGPT도 크게 도움이 안 되는 것 같고;;;

잠시 머리를 좀 식히고 다시 돌아와서 몇 차례 더 시도를 해본 결과 찾아낸 결론은

Signing을 일단 해줘야 하는데, Signing을 하려면 내 맥에 있는 Certificate 로 진행을 해야 한다.

 

No code signing authority for module php on Mac Monterey - Codexpedia

Mac Monterey and future Mac OS requires all application to be verified in order to run them on the OS. The php installed from brew is not a verified application and it has to be verified in order for it to run on Mac, without it being verified and loading

www.codexpedia.com

 

당연하게도 이전에 그런 걸 만든 적이 전무하기에 결국 내 맥에 Certificate 부터 생성해줘야 했다.

 

Certificate 생성하기

" Application > Keychain Access " 에 들어가면 애플 빌드를 이한 개발자 관련 인증서만 들어있다.

여기에 내 맥에 대한 Certificate 를 하나 생성해 준다.


그런데 아예 생짜 처음이다 보니 단계가 하나 더 있단다;; 머 이리 복잡한 건지...ㅡ.ㅡ

결국 2단계에 걸쳐서 Certificate를 생성해 줬다.

 

1. Certificate Authority 생성 - https://simplified.guide/macos/keychain-ca-code-signing-create

상당히 단계가 많은데도 스샷을 아주아주 잘 떠놓은 링크 덕분에 어렵지 않게 마무리할 수 있었다ㅎㅎ

 

2. Certificate 생성 - https://www.simplified.guide/macos/keychain-cert-code-signing-create

이제 마지막으로 진짜 Certificate 를 생성해 본다.

혹시나 싶어서 중간에 기존에 Apple Developer 관련 Certificate 는 삭제해줬다.

 

libphp7.so 파일에 Signing 하기

이제 Certificate를 만들었으니 진짜 signing을 해줄 차례다.

signing 작업은 sudo 없이 그냥 작업해야 정상처리 된다. 처음에 sudo 를 붙였다가 안돼서 급 당황했던 기억이;;;

# codesign --sign "KEY NAME" --force --keychain ~/Library/Keychains/login.keychain-db /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so
# codesign -dv --verbose=4 "/opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so"

 

signing이 다 됐으니 httpd.conf를 수정해 준다.

- 187번 라인: php7_module 이라고 변경해 준 다음 맨 마지막에 signing 할 때 넣어준 KEY NAME을 적어준다.

 

이제 한번 더 apachectl 사전점검을 해본다. 그리고 드디어 그립던 그 메시지를 봤다 ㅠㅠ

OK 메세지 위에는 so 모듈도 잘 불러왔단다.

 

진짜 apache 데몬을 띄워 보니 드디어 먼가 잘 떴다는 로그를 만날 수 있었다.

그리고 http://localhost 로 접속을 해보니 페이지가 정상적으로 잘 뜬다ㅎㅎ

 

이제 localhost로 페이지까지 띄웠으니 DB를 연동해 볼 차례다. 거의 다 온 것 같다ㅎㅎ

반응형

댓글