728x90
우분투에서 Apache와 PHP-FPM을 설치하고 연동하는 방법
테스트 환경
$ lsb_release -d
Description: Ubuntu 22.04.2 LTS
1. Apache 설치
Apache 웹 서버를 설치합니다.
sudo apt update
sudo apt install -y apache2
apache2 -v
ServerName 지시어 편집
- ServerName localhost 추가
sudo sed -i '$ a ServerName localhost' /etc/apache2/apache2.conf
- ServerName 지시어가 이미 존재할 경우 수정
sudo sed -i 's/^ServerName.*/ServerName localhost/' /etc/apache2/apache2.conf
Apache 모듈 확인
- 활성화된 모듈을 확인합니다.
sudo apache2ctl -M
더보기
---
Apache 모듈 목록
sudo apache2ctl -M
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
alias_module (shared)
auth_basic_module (shared)
authn_core_module (shared)
authn_file_module (shared)
authz_core_module (shared)
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_event_module (shared)
negotiation_module (shared)
reqtimeout_module (shared)
setenvif_module (shared)
status_module (shared)
---
2. PHP-FPM 설치
PHP와 PHP-FPM을 설치합니다.
sudo apt install -y php8.3 php8.3-fpm
php -v
PHP(PHP-FPM) 모듈 확인
- 활성화된 모듈을 확인합니다.
sudo php -m
sudo php-fpm8.3 -m
더보기
---
PHP(PHP-FPM) 모듈 확인
sudo php -m
[PHP Modules]
calendar
Core
ctype
date
exif
FFI
fileinfo
filter
ftp
gettext
hash
iconv
json
libxml
openssl
pcntl
pcre
PDO
Phar
posix
random
readline
Reflection
session
shmop
sockets
sodium
SPL
standard
sysvmsg
sysvsem
sysvshm
tokenizer
Zend OPcache
zlib
[Zend Modules]
Zend OPcache
sudo php-fpm8.3 -m
---
3. Apache와 PHP-FPM 연동
Apache에서 PHP-FPM을 사용하기 위해 libapache2-mod-fcgid 모듈을 설치해야 합니다.
sudo apt install libapache2-mod-fcgid
Apache의 모듈을 활성화합니다.
sudo a2enmod actions fcgid
Enabling module actions.
Module fcgid already enabled
To activate the new configuration, you need to run:
systemctl restart apache2
sudo a2enmod proxy_fcgi proxy
Considering dependency proxy for proxy_fcgi:
Enabling module proxy.
Enabling module proxy_fcgi.
Module proxy already enabled
To activate the new configuration, you need to run:
systemctl restart apache2
활성화된 모듈 확인
$ apache2ctl -M | egrep 'actions|fcgid|proxy|proxy_fcgi'
actions_module (shared)
fcgid_module (shared)
proxy_module (shared)
proxy_fcgi_module (shared)
4. PHP-FPM Pool 설정
PHP-FPM의 pool 설정 파일을 열고 필요에 따라 설정을 조정합니다.
기본 설정 파일은 /etc/php/8.3/fpm/pool.d/www.conf입니다.
sudo vim /etc/php/8.3/fpm/pool.d/www.conf
sudo tee /etc/php/8.3/fpm/pool.d/www.conf <<EOF
[www]
user = www-data
group = www-data
listen = /run/php/php8.3-fpm.sock
listen.owner = www-data
listen.group = www-data
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
EOF
5. Apache 가상 호스트 설정
Apache의 가상 호스트 파일을 수정하여 PHP 파일을 처리하도록 설정합니다.
sudo vim /etc/apache2/sites-available/000-default.conf
sudo tee /etc/apache2/sites-available/000-default.conf <<EOF
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
# PHP-FPM 설정
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php/php8.3-fpm.sock|fcgi://localhost/"
</FilesMatch>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
EOF
가상 호스트 활성화
더보기
---
example.sangchul.kr 가상 호스트 설정 파일 생성
vim /etc/apache2/sites-available/example.sangchul.kr.conf
가상 호스트 활성화
sudo a2ensite example.sangchul.kr.conf
Apache 웹 서버 재로드
sudo systemctl reload apache2
---
6. PHP-FPM 서비스 시작
PHP-FPM 서비스를 시작하고 활성화합니다.
sudo systemctl restart php8.3-fpm
PHP-FPM 서비스 상태 확인
sudo systemctl status php8.3-fpm
7. Apache 서비스 재시작
Apache 서비스를 재시작하여 변경 사항을 적용합니다.
sudo systemctl restart apache2
Apache 서비스 상태 확인
sudo systemctl status apache2
8. PHP 테스트
웹 서버의 문서 루트에 info.php 파일을 생성하여 PHP가 제대로 작동하는지 확인합니다.
echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php
브라우저에서 http://your_server_ip/info.php에 접속하여 PHP 정보 페이지가 나타나는지 확인합니다.
http://your_server_ip/info.php
9. Apache, PHP(PHP-FPM) 패키지 삭제
sudo apt purge -y $(dpkg -l | grep apache2 | awk '{print $2}' | tr '\n' ' ')
sudo apt purge -y $(dpkg -l | grep php | awk '{print $2}' | tr '\n' ' ')
sudo apt autoremove -y
Apache와 PHP-FPM이 설치되고 연동하였습니다.
728x90
'리눅스' 카테고리의 다른 글
[draft] 우분투에 MariaDB를 설치하는 방법 (0) | 2024.10.21 |
---|---|
[draft] dpkg 패키지 삭제 스크립트 (0) | 2024.10.18 |
[draft] NGINX 저장소의 만료된 GPG 키 갱신 방법 (1) | 2024.10.17 |
[draft] PECL 구성에서 기본 채널 URL을 업데이트하는 방법 (0) | 2024.10.17 |
[draft] PHP 메모리 사용량 확인 (0) | 2024.10.17 |