http2 사용을 위한 Apache PHP 설정
nginx + php-fpm 설정이 많이 사용되기는 하지만 최근에 url smtp
라는 단어가 들어가면 사이트 오류가 발생하는 탓에 시험 삼아 Apache 로 변경을 해봤는데.. 이런!! 아무 문제가 없네? 그래서 그동안 쭉 사용해오던 nginx 서비스를 내리고 Aapache 로 변경하게 됐다. 근데.. 여기서 또 문제가 http2 를 적용하려니.. php-fpm 을 사용해야만 한다는 것 이었다. 그래서 어쩔 수 없이 Apache + PHP-FPM 시스템을 구성하게 됐다. Apache 와 PHP 는 패키지 관리자로 이미 설치되어 있다고 가정한다. OS 는 Ubuntu 20.04 이다.
http2 사용을 위해 Apache 설정을 변경한다. ssl 인증서는 무료 또는 유료로 미리 준비해야 한다.
sudo a2dismod php8.0
sudo a2dismod mpm_prefork
sudo a2enmod mpm_event
sudo a2enmod ssl
sudo a2enmod http2
PHP-FPM 사용을 위해 아래와 같이 Apache 설정을 변경한다.
a2enmod proxy_fcgi
a2enmod setenvif
a2enconf php8.0-fpm
이제 Apache 를 재시작하여 PHP 연동이 정상인지 확인한다.
sudo systemctl restart apache2
만약 도메인별로 다른 버전의 PHP를 사용하거나 PHP-FPM pool 중 특정 pool를 사용하고자 한다면 아래와 같이 Apache 설정 파일 VirtualHost
에 아래 설정을 추가해 주면 된다.
<FilesMatch ".+\.ph(ar|p|tml)$">
SetHandler "proxy:unix:/run/php/php8.0-fpm.sock|fcgi://localhost"
</FilesMatch>
php8.0-fpm.sock
와 같이 sock 파일의 이름이나 경로를 도메인별로 다르게 설정하면 다른 버전의 PHP 등을 동시에 사용할 수 있다.