macOS에 Homebrew로 Apache 설치하기

지수토리·2021년 8월 7일
7
post-thumbnail

1. macOS 11.4 Big Sur 개발환경 세팅

  1. Big Sur 필수 라이브러리 설치를 위해 아래 명령어를 수행합니다.

    > brew install openssl
  2. 내장 Apache가 이미 실행 중인 경우 먼저 종료하고 자동 로드 스크립트를 제거해야 합니다.

    > sudo apachectl stop
     > sudo launchctl unload -w /System/Library/LaunchDaemons/org.apache.httpd.plist 2>/dev/null
  3. Brew에서 제공하는 Apache HTTPD (오픈 소스 기반 웹 서버)의 새 버전을 설치해야 합니다.

    > brew install httpd

    설치하면 아래와 같이 DocumentRoot와 아파치 설정 파일의 경로( /opt/homebrew/etc/httpd/httpd.conf)를 알려줍니다.

  4. 새 Apache 서버가 자동으로 시작되도록 합니다.

    > brew services start httpd
  5. http://localhost:8080 브라우저에 접속하면 "It works!"라는 간단한 헤더가 표시되어야 합니다.

2. 아파치 설정파일 변경

Apache 구성

이 작동하는 웹 서버를 "로컬 개발 서버"로 작동하도록 일부 구성을 변경해주어야합니다.

code 터미널 명령을 사용하여 Visual Studio Code 를 열어 파일을 편집해줍니다.
만일 code 명령어가 수행되지 않는다면 visual studio code의 command palette 에서 아래를 수행해줍니다.

✅ httpd.conf 파일의 경로를 잘 체크하고 열어줍니다.

> code /opt/homebrew/etc/httpd/httpd.conf

🛠 아파치 설정 파일에서 포트의 default 값을 8080에서 80으로 바꾸어 줍니다.

Listen 8080 
=> Listen 80 

🛠 아파치의 DocumentRoot 가 자신의 홈 디렉토리에 있는 폴더(ex. Documents/Sites)를 가리키도록 변경해 줍니다. 바로 밑의 Directory 테그도 새 문서 루트를 가리키도록 변경해줍니다.

DocumentRoot "/usr/local/var/www" 
<Directory "/usr/local/var/www">
=> DocumentRoot "/Users/your_user/Documents/Sites"
=> <Directory "/Users/your_user/Documents/Sites">

🛠 동일한 Directory블록에서 AllowOverride 설정을 다음과 같이 변경해 줍니다.

AllowOverride None
=> AllowOverride All

🛠 주석 처리된 mod_rewrite 를 활성화 해줍니다.

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

User & Group

🛠 기본적으로 Apache는 사용자 daemon 및 그룹 으로 실행됩니다. 우리의 홈 디렉토리에 있는 파일에 접근 할 수 있도록 User와 Group을 변경해줍니다.

User _www
Group _www
=> User your_user
=> Group staff

Servername

#ServerName www.example.com:8080
=> ServerName localhost

이제 Sites (홈 디렉토리의 폴더)를 가리키는 Apache가 구성되었습니다.

3. Sites 폴더에 html 파일 추가

apache가 가리키는 Sites 폴더를 생성하지 않았다면, 터미널 창을 열어 아래를 수행합니다.

> mkdir /Users/your_user/Documents/Sites
> cd /Users/your_user/Documents/Sites
> echo "<h1>My User Web Root</h1>" > index.html

구성 변경 사항이 적용되었는지 확인하려면 Apache를 다시 시작합니다.

> brew services stop httpd
> brew services start httpd

http://localhost:80 브라우저에 접속하면 "My User Web Root"라는 간단한 헤더가 표시되어야 합니다.

4. Sites 폴더에 php 파일 추가

조금 전의 아파치 설정 파일(/opt/homebrew/etc/httpd/httpd.conf)에서

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

아래에 다음 libphp모듈을 추가합니다.

✅ libphp5.so 경로를 잘 체크해야합니다.

 LoadModule php5_module /opt/homebrew/opt/php@5.6/lib/httpd/modules/libphp5.so

PHP용 디렉토리 인덱스를 명시적으로 설정해야 하므로 다음 블록을 변경해줍니다.

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

=>

<IfModule dir_module>
    DirectoryIndex index.php index.html
</IfModule>
<FilesMatch \.php$>
    SetHandler application/x-httpd-php
</FilesMatch>

php가 설치 되어 있지 않다면 아래 명령을 수행해줍니다.

> brew tap shivammathur/php
> brew install shivammathur/php/php@5.6

apache를 다시 실행하고 Sites 폴더 아래에 php 파일을 작성해줍니다.

> brew services stop httpd
> brew services start httpd

> cd /Users/your_user/Documents/Sites
> echo "<?php phpinfo();" > index.php

http://localhost:80 브라우저에 접속하면 phpinfo 내용이 나옵니다.

php 버전 업그레이드 하기

> brew install shivammathur/php/php@7.4

아파치 설정 파일(/opt/homebrew/etc/httpd/httpd.conf)에서 libphp5.so 경로를 수정

LoadModule php7_module /opt/homebrew/opt/php@7.4/lib/httpd/modules/libphp7.so

5개의 댓글

comment-user-thumbnail
2021년 8월 8일

PHP 버전에 대해서도 이해가 필요할듯 하다.

PHP 5.6 2018년 12월 31일
PHP 7.0 2018년 12월 3일
PHP 7.1 2019년 12월 1일
PHP 7.2 2020년 11월 30일
PHP 7.3 2021년 12월 6일

보안 성능 지원 3가지 측면에서 PHP 버전을 업데이트 하던가
PHP 7.4 or 8.?? 버전을 써야겟구나

답글 달기
comment-user-thumbnail
2022년 5월 31일

감사드려요.. 존경스럽네요

답글 달기
comment-user-thumbnail
2022년 6월 2일

php 8.1.6기준으로
LoadModule php_module /opt/homebrew/opt/php@8.1/lib/httpd/modules/libphp.so
라고 작성하면 작동됩니다

답글 달기
comment-user-thumbnail
2023년 3월 21일

안녕하세요 위와 같은건 Mac OS ventura 최신 버전에서도 동일한 방법인가요?

답글 달기
comment-user-thumbnail
2023년 11월 9일

와.. 여러곳에서 따라했는데 여기가 가장 좋습니다 짱짱

답글 달기