[Mac] MacOS에 PHP 설치 (8.3)

[Mac] MacOS에 PHP 설치 (8.3)

요즘 PHP가 점점 그리워진다. 리액트나 넥스트, Express등의 Javascript 환경에 적응할 수록 뭐가 이리도 거쳐야 하는 단계가 많은지 번거로움만 늘어간다. 예전처럼 웹서버랑 mysql 설치해 놓고 대충 파일 하나 만들어서 바로 브라우저로 결과를 확인하던 시절이 좋았던 것 같다. Javascript 환경은 너무 할게 많다. 그래서 PHP를 다시 돌아보던 중 최신 MacOS에서는 기본으로 설치되어 있던 apache가 제거되었음을 알게되었고 하나하나 손수 PHP 구동 환경을 구축해 줘야 했다.

#01. PHP 구성

[1] PHP 설치하기

먼저 homebrew를 업데이트한다.

$ brew update

그 다음 php를 내려받을 수 있는 저장소 정보를 추가한다.

$ brew tap shivammathur/php

최신 안정화 버전인 8.3를 설치했다.

$ brew install php@8.3

[2] php.ini 파일 수정

Mac이나 Linux의 Aapche는 직접 설정 파일을 수정하는 형태로 환경설정이 진행된다.

내 경우에는 php 설정파일의 위치가 /opt/homebrew/etc/php/8.3/php.ini 였다. 이 파일을 vi 편집기로 수정한다.

$ vi /opt/homebrew/etc/php/8.3/php.ini

꼭 vi 편집기로 수정하지 않아도 된다. VSCode가 설치되어 있다면 아래 명령을 통해 VSCode로 수정 가능하다.

$ code /opt/homebrew/etc/php/8.3/php.ini
설정항목 설명
short_open_tag On <?PHP ... ?> 대신에 <? ... ?>와 같은 짧은 스크립트 블록을 사용할 수 있다.
post_max_size 50M POST 방식의 최대 전송량이다. 넉넉히 설정한다.
upload_max_filesize 100M 전송 가능한 업로드 파일 용량이다. 넉넉히 설정한다.
max_file_uploads 20 한번에 업로드 가능한 최대 파일 수이다. 넉넉히 설정한다.
date.timezone Asia/Seoul 타임존 지역을 설정한다.

#02. Apache 구성

[1] Apache 설치하기

우선 Mac에 기본으로 탑제되어 있는 버전을 완전히 중지한다.

$ sudo apachectl -k stop

Homebrew를 이용해 새로운 httpd를 설치한다.

$ brew install httpd

[2] httpd.conf 파일 수정

Mac에서 httpd를 설치했을 때 설정 파일의 경로는 /opt/homebrew/etc/httpd/httpd.conf였다.

vi 편집기로 설정파일을 연다. sudo 권한은 필요 없었다.

$ vi /opt/homebrew/etc/httpd/httpd.conf

마찬가지로 아래 명령을 통해 VSCode로 편집할 수 있다.

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

만약 이 경로에 파일이 없다면 아래 명령으로 설정 파일을 찾아야 한다.

$ find / -name "httpd.conf"

참고

애플 실리콘 맥(M1, M2)의 경우 기존 인텔 맥과 저장되는 위치가 다르므로 주의해야한다.
m1, m2 와같은 애플 실리콘 맥인 경우 설치 경로가 「/usr/local/」 이 아니고 「/opt/homebrew/」 인 경우가 많아 주의해야한다.

(1) 포트 설정

대략 52라인 부근에 Listen 설정을 수정하여 80번 포트로 실행되도록 한다.

Listen 80

(2) mod_rewrite 설정

대략 181라인 부근에 아래와 같은 구문이 주석처리 되어 있다. 해당 주석을 해제한다.

LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so

(3) PHP 모듈 연결

(2)에서 설정한 mod_rewrite 모듈 설정 구문 아래에 다음 구문을 추가한다.

설정 전에 /opt/homebrew/opt/php/lib/httpd/modules/libphp.so 파일이 존재하는지 먼저 확인해야 한다. 파일이 없다면 libphp.so 파일의 위치를 정확히 확인한 후 설정하도록 하자.

LoadModule php_module /opt/homebrew/opt/php/lib/httpd/modules/libphp.so

(4) DocumentRoot 설정

웹 사이트 Root 디렉토리를 설정한다.

DocumentRoot "/Users/사용자계정명/Sites"
<Directory "/Users/사용자계정명/Sites">
    #
    # 주석...
    #
    Options Indexes FollowSymLinks

    #
    # 주석...
    #
    AllowOverride All

    #
    # 주석...
    #
    Require all granted
</Directory>

(5) PHP 모듈 설정

httpd.conf 파일 맨 하단에 아래 구문을 추가한다.

AddType application/x-httpd-php .html .php
AddType application/x-httpd-php-source .phps
PHPIniDir /etc

#03. 아파치 서버 실행

아래 명령어 중에서 필요한 항목을 선택적으로 사용한다.

명령 설명
brew services list 서비스 중인 프로세스 확인
brew services start httpd 아파치 서비스 시작
brew services stop httpd 아파치 서비스 중지
brew services restart httpd 아파치 서비스 재시작

서비스를 시작하면 부팅시마다 자동 실행된다.

결과 확인하기

httpd.conf에서 DocumentRoot로 설정한 디렉토리에 index.php 파일을 생성하고 아래 코드를 작성한다.

<? phpinfo(); ?>

웹 브라우저로 http://localhost으로 접속하여 결과를 확인한다.

phpinfo

호쌤(이광호)'s Picture

About 호쌤(이광호)

메가스터디IT아카데미에서 Java, Spring, Python, Frontend 등을 강의하는 IT 전문 강사이자 프리렌서 개발자 입니다.
https://www.youtube.com/@hossam-codingclub

Seoul, Korea http://www.hossam.kr