Back End/etc

[Apache2] Homebrew Apache2(httpd) 설치 & 가상호스트 설정 & 프로젝트폴더 Apache 서버로 구동시키기

DevPing9_ 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

 

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

 

728x90