-
[Apache2] Homebrew Apache2(httpd) 설치 & 가상호스트 설정 & 프로젝트폴더 Apache 서버로 구동시키기Back End/etc 2022. 5. 21. 21:13
이 글은 php 로 구성된 프로젝트를 Apache 서버로 실행하고 가상호스팅을 하는 과정을 담았습니다.
Homebrew 로 설치하면 좋은점
Mac 내장 Apache 를 사용하지 않고 Homebrew 로 httpd 를 사용하면
brew services list 등으로 서비스의 상태를 관리하기가 쉽다.
1. 내장 Apache 중지 & Background 자동 로드 제거
sudo apachectl stop sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
2. Homebrew 로 Apache 설치
brew install httpd
설치경로를 친절히 알려준다.
3. httpd.conf 파일 설정
- Intel Mac : /usr/local/etc/httpd
- M2 Mac : /opt/homebrew/etc/httpd
해당경로에 위치한 httpd.conf 파일을 열어
아래에 해당하는 부분을 찾아 다음과 같이 수정한다.# 1번 - Apache2 웹서버가 Listening 할 포트 #Listen 12.34.56.78:80 Listen 80 # 2번 - 웹프로젝트로 접근할 User & Group 설정 <IfModule unixd_module> User [Mac에 설정된 유저명] Group staff </IfModule> # 3번 - 아파치 에러로그를 보고 설정한 것. (깊게 알고싶지않아...) ServerName localhost # 4번 DocumentRoot "적혀있는 경로는 그대로 두시면되요" <Directory "적혀있는 경로는 그대로 두시면되요"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> # 5번 - index.php 가 존재하면 읽도록 설정 <IfModule dir_module> DirectoryIndex index.php index.html </IfModule> <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
아래에 해당하는 부분의 주석을 해제합니다.
# php 모듈 추가 - Homebrew 로 Apache를 설치하신 분들은 해당 부분의 주석이 없을 수 있습니다. LoadModule php7_module ... # 가상호스트 관련 모듈 추가 LoadModule vhost_alias_module lib/httpd/modules/mod_vhost_alias.so # 가상호스트 설정파일 추가 Include /usr/local/etc/httpd/extra/httpd-vhosts.conf # LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
*
LoadModule php7_module libexec/apache2/libphp7.so
주석이 없을 때Mac의 내장 php 경로를 연결해도 되지만, php 버전에 따라 다르게 사용하고 싶으실 때는
homebrew 로 php 를 설치하는게 맘 편하다.> brew 로 php 를 설치한 경우
LoadModule php7_module /usr/local/opt/php@7.4/lib/httpd/modules/libphp7.so
> Mac 내장 php 를 사용하는 경우
LoadModule php7_module /usr/libexec/apache2/libphp7.so
4. 가상 호스팅 설정
4-1. httpd-vhosts.conf
- Intel Mac : /usr/local/etc/httpd/extra
- M2 Mac : /opt/homebrew/etc/httpd/extra
해당경로에 위치한 httpd-vhosts.conf 파일을 열어
아래의 내용을 추가한다.<VirtualHost {가상 도메인}:80> # 가상도메인 ServerAdmin {본인 이메일} DocumentRoot "{프로젝트의 루트디렉토리 경로}" ServerName {가상 도메인} ErrorLog "{stderr 를 내보낼 경로}" <Directory "{프로젝트의 루트디렉토리 경로}"> AllowOverride All Options Indexes MultiViews FollowSymLinks Require all granted </Directory> </VirtualHost>
4-2. hosts
/etc 에 위치한 hosts 파일에
아래의 내용을 추가한다.5. 아파치서버 구동
5-1.
apachectl configtest
를 입력하여 httpd.conf, httpd-vhosts.conf, hosts 파일들이 잘 적용되었는지 체크한다.이렇게 친절하게 Warning 부터 Syntax 까지 다 찾아준다.
configtest 가 있는지도 모르고 정말 힘들게 환경설정을 했었는데... 😭😭😭
억울해 ㅠㅠㅠ....5-2.
brew services start httpd
를 입력 한다.5-3.
brew services list
로 httpd 가 에러없이 실행 중 인지 체크한다.에러상태라면 httpd.conf 에 ErrorLog 라 검색하면 에러로그경로가 있을테니
들어가서 읽어주자5-4. 정의한 도메인으로 접속 (예시인 abc.com 으로 접속)
참고로 ap-test 폴더 하위에는 index.html 하나만 달랑 존재하고 있다.
# Reference
728x90'Back End > etc' 카테고리의 다른 글
Redis 전체 키 조회, 삭제 등 명령어 모음 (0) 2023.04.28 클라이언트 IP 알아내는 법 (0) 2023.04.25 [PHP] CURL 은 리다이렉트 응답이 오면 재요청하지 않는다. (feat. CURL 관련함수 정리) (0) 2022.06.05 [PHP] Mac 에서 PHP Composer 설치 및 커맨드 전역설정하기 (0) 2022.05.21 [JSP] Apache Tiles (0) 2022.04.13