[Apache2] Homebrew Apache2(httpd) 설치 & 가상호스트 설정 & 프로젝트폴더 Apache 서버로 구동시키기
이 글은 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
Installing & Configuring Apache on macOS using Homebrew and use Sites folder - WP Beaches
Eventhough Apache ships with macOS, a better maintained version would be coming from Homebrew, also Apple is making noises about not supporting legacy software like PHP so in the future this may be more of a compulsory option. macOS use to ship with both M
wpbeaches.com
macOS: Daemon (데몬) 실행하고 관리하기
macOS 에서 데몬 (daemon) 을 실행하는 방법은 Unix 나 Linux 와는 조금 다른 부분이 있습니다. 이 글에서는 macOS 에서 데몬을 실행하고 관리하는 방법을 알아봅니다. Daemon (데몬) 실행하고 관리하기 macOS
xho95.github.io