annyoung

Install apache+php on Intel MacOSX Sequoia 본문

프로그래밍

Install apache+php on Intel MacOSX Sequoia

nopsled 2025. 1. 9. 09:12

Install apache(httpd) and php

brew install httpd php

 

.bashrc or .zshrc setup

bashrc나 zshrc에 등록해놓고, source ~/.zshrc 처럼 사용해서 적용해준 후에 apache open|start|stop|restart|status 를 입력해주면 각각 switch에 맞게 실행된다.

apache() {
    case "$1" in
        open)
            echo "➡️  Move to apache directory"
            cd /usr/local/etc/httpd
            ;;
        start)
            echo "🔥 Starting Apache (httpd) using Homebrew..."
            brew services start httpd
            ;;
        stop)
            echo "🛑 Stopping Apache (httpd) using Homebrew..."
            brew services stop httpd
            ;;
        restart)
            echo "♻️ Restarting Apache (httpd) using Homebrew..."
            brew services restart httpd
            ;;
        status)
            echo "ℹ️ Checking Apache (httpd) status..."
            brew services list | grep httpd
            ;;
        *)
            echo "🚨 Invalid command! Use: open, start, stop, restart, or status"
            ;;
    esac
}

 

Setup httpd.conf

다음 명령어로 httpd.conf 수정

vi /usr/local/etc/httpd/httpd.conf

 

Listen 검색해서 8080에서 80으로 변경

Listen 80

 

 

DocumentRoot 검색하면 나오는데 그 부분 모두 제거하고 다음 라인들 추가

DocumentRoot "/usr/local/var/www"
<Directory "/usr/local/var/www">
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

 

html로 검색하면 나오는데 그 부분 지우고 다음 라인들 추가

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

 

자주 사용하는 모듈 로드 (각각 검색해보고 주석제거 또는 추가)

LoadModule vhost_alias_module lib/httpd/modules/mod_vhost_alias.so
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
Include /usr/local/etc/httpd/extra/httpd-vhosts.conf

 

다음 명령어 실행해서 결과 있으면 다음꺼 안해도 됨

ls -al /usr/local/opt/php/lib/httpd/modules/libphp.so

 

없는 경우에는 다음 명령어 실행하고 나온 결과 확인

ls -al /usr/local/opt/ | grep php

 

php 모듈 추가

없는 경우 위에서 실행한 결과의 php 디렉토리로 입력해야함(위 명령어 결과가 php@8.3인 경우 /usr/local/opt/php@8.3/lib/httpd/modules/libphp.so)

LoadModule php_module /usr/local/opt/php/lib/httpd/modules/libphp.so

 

Test

다음 명령어 실행해서 phpinfo()를 web root에 생성하고, 브라우저를 열어서 http://localhost 로 접근해서 잘 실행되는지 확인할 것

echo "<?php phpinfo();" >> /usr/local/var/www/index.php

 

Env

/usr/local/var/www: 웹서버 디렉토리
/usr/local/etc/httpd: 웹서버 설정파일 디렉토리

Comments