여기저기 구글링을 해보면서 나름 그래도 순탄하게 MacOS 내장 Apache 세팅을 하고,
PHP도 7.4 버전 설치와 VSCode 관련 설정도 마무리했다.
먼가 한방에 잘 진행되는 것 같아 살짝 기분이 좋았다. 그리고 그렇게 Apache + PHP 설정이 잘 된 줄 알았다.
그런데... 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 로 진행을 해야 한다.
당연하게도 이전에 그런 걸 만든 적이 전무하기에 결국 내 맥에 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 를 생성해 본다.
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를 연동해 볼 차례다. 거의 다 온 것 같다ㅎㅎ
'IT, Software > Web' 카테고리의 다른 글
맥북 - PHP + Apache 웹서비스 포트 분리하고 각각 띄우기 (1) | 2024.11.24 |
---|---|
맥북 - PHP PDO + MSSQL 연동 & OpenSSL 환경 세팅하기 (3) | 2024.11.19 |
맥북 - MacOS 내장 Apache, PHP 7.4 설치 VSCode에서 웹띄우기 (2) | 2024.11.15 |
중복된 소스코드를 Html 파일로 만들고 Html 파일에서 include하기 (0) | 2022.10.24 |
SpringBoot 웹서비스 개발 - 4. 백엔드 웹 API테스트하기 (0) | 2022.09.04 |
댓글