Article

최신 macOS에서 PHP 7.1 버전 설정하기

개요

PHP 7.1은 2019년 12월 지원이 종료되었지만, 레거시 프로젝트를 유지보수할 때 여전히 필요합니다. 최신 macOS에서 PHP 7.1을 설치하고 여러 버전을 함께 관리하는 방법을 알아봅시다.

사전 요구사항

항목요구사항
OSmacOS 10.15 이상
패키지 관리자Homebrew 설치 필수
디스크 공간최소 5GB
권한sudo 권한 필요

단계별 설치 가이드

1단계: Homebrew 업데이트

먼저 Homebrew를 최신 버전으로 업데이트합니다.

brew update
brew doctor

2단계: 필수 의존성 설치

일부 PHP 확장 기능을 빌드하기 위해 필요한 라이브러리를 설치합니다.

# OpenLDAP와 libiconv 설치
brew install openldap libiconv

# 또는 단독 설치
brew install openldap
brew install libiconv

3단계: Homebrew 탭 추가

레거시 PHP 버전들을 제공하는 저장소를 추가합니다.

# exolnet의 deprecated PHP 저장소 추가
brew tap exolnet/homebrew-deprecated

또는 다른 대안:

# Shivam Mathur의 PHP 저장소
brew tap shivammathur/php

4단계: PHP 7.1 설치

이제 PHP 7.1을 설치할 수 있습니다.

brew install php@7.1

5단계: PHP 버전 스위처 설치

여러 PHP 버전을 쉽게 전환하기 위해 brew-php-switcher를 설치합니다.

brew install brew-php-switcher

PHP 버전 전환

설치된 버전 확인

# 현재 사용 중인 PHP 버전
php -v

# Homebrew에 설치된 모든 PHP
brew list | grep php

버전 전환 명령어

# PHP 7.1로 전환
brew-php-switcher 7.1

# PHP 7.4로 전환
brew-php-switcher 7.4

# PHP 8.0으로 전환
brew-php-switcher 8.0

# PHP 8.1로 전환
brew-php-switcher 8.1

전환 후 확인

php -v
php -m  # 설치된 확장 모듈 확인

트러블슈팅

문제 1: “php@7.1 not found” 에러

원인: 저장소가 추가되지 않았거나 버전이 없음

해결책:

# 저장소 확인
brew tap | grep php

# 저장소 다시 추가
brew untap exolnet/homebrew-deprecated
brew tap exolnet/homebrew-deprecated

# 재설치
brew install php@7.1

문제 2: “openldap” 설치 실패

원인: macOS 버전 호환성 문제

해결책:

# 의존성 확인
brew doctor

# 문제 해결
brew cleanup

# 다시 설치
brew install openldap

문제 3: 전환 후 버전이 변경되지 않음

원인: PATH 환경변수 설정 문제

해결책:

# 터미널 다시 시작 또는
source ~/.zshrc  # zsh 사용자
source ~/.bash_profile  # bash 사용자

# 또는 새로운 터미널 탭 열기

PHP 확장 설치

PHP 7.1에서 추가 확장이 필요한 경우:

# PECL을 통한 확장 설치
pecl install {extension-name}

# 예: Redis 확장
pecl install redis

# php.ini에 확장 로드 확인
php -i | grep extension_dir

개발 환경 설정

Apache와 함께 사용

# Apache에서 PHP 모듈 활성화
sudo vi /etc/apache2/httpd.conf

# 다음 라인 수정 (PHP 버전에 맞게)
LoadModule php7_module /usr/local/opt/php@7.1/lib/httpd/modules/mod_php.so

Nginx + PHP-FPM

# PHP-FPM 시작
brew services start php@7.1

# Nginx 설정에서 PHP 사용
location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include fastcgi_params;
}

프로젝트별 PHP 버전 관리

방법 1: direnv 사용

brew install direnv

# 프로젝트 디렉토리에 .envrc 파일 생성
echo 'eval "$(brew-php-switcher 7.1)"' > /path/to/project/.envrc

# direnv 허용
direnv allow

방법 2: 쉘 별칭

# ~/.zshrc 또는 ~/.bash_profile에 추가
alias php71='brew-php-switcher 7.1'
alias php74='brew-php-switcher 7.4'
alias php80='brew-php-switcher 8.0'

성능 최적화

php.ini 설정

# PHP 7.1의 php.ini 위치 확인
php -r "echo php_ini_loaded_file();"

# 주요 설정
memory_limit = 256M
post_max_size = 20M
upload_max_filesize = 20M
max_execution_time = 300

Opcache 활성화

# php.ini에 추가
[opcache]
zend_extension=opcache.so
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=8

정리 및 제거

PHP 버전 제거

# PHP 7.1 제거
brew uninstall php@7.1

# 저장소 제거
brew untap exolnet/homebrew-deprecated

캐시 정리

brew cleanup
brew cache --prune  # 최신 버전의 Homebrew에서 사용

마치며

최신 macOS에서 PHP 7.1을 설정하는 것이 처음에는 복잡해 보이지만, 단계별로 따라가면 어렵지 않습니다. Homebrew와 brew-php-switcher를 올바르게 설정하면, 여러 PHP 버전을 유연하게 관리할 수 있습니다.

레거시 프로젝트를 유지보수할 때 이 방법이 큰 도움이 됩니다. 최신 버전으로 마이그레이션할 때까지 안정적인 개발 환경을 구성하세요. 문제가 발생하면 위의 트러블슈팅 섹션을 참고하여 해결할 수 있습니다.

댓글