PHP-FPM 실행 사용자/권한 점검¶
999-to-organize의 아래 원본을 운영 기준으로 정리한 내용임.
04 - PHP - 03 - PHP-FPM 설정 확인.txt
목표는 PHP-FPM 실행 계정, php_value 경로, 파일 권한/SELinux 상태를 점검해 실행 오류를 사전에 줄이는 것임.
1. PHP-FPM 실행 사용자 확인¶
프로세스 확인:
ps aux | grep php-fpm
설정 파일에서 user/group 확인:
grep -E '^[[:space:]]*user|^[[:space:]]*group' /etc/php-fpm.conf /etc/php-fpm.d/*
운영 기준:
- master: root
- worker: nginx(또는 지정 서비스 계정)
- Nginx 사용자와 PHP-FPM worker 사용자가 일관되어야 함
2. php_value 경로 점검¶
예시 설정(www.conf):
php_value[session.save_path] = /var/lib/php/session
php_value[soap.wsdl_cache_dir] = /var/lib/php/wsdlcache
php_value[opcache.file_cache] = /var/lib/php/opcache
디렉터리 권한 확인:
ls -ld /var/lib/php/session
ls -ld /var/lib/php/wsdlcache
ls -ld /var/lib/php/opcache
필요 시 소유권/권한 조정:
sudo chown -R root:nginx /var/lib/php/session
sudo chown -R root:nginx /var/lib/php/wsdlcache
sudo chown -R nginx:nginx /var/lib/php/opcache
sudo chmod -R 0775 /var/lib/php/session
sudo chmod -R 0775 /var/lib/php/wsdlcache
sudo chmod -R 0755 /var/lib/php/opcache
3. SELinux 컨텍스트 점검¶
권한이 맞는데도 접근 오류가 나면 SELinux를 확인함.
ls -lZ /var/lib/php/session /var/lib/php/wsdlcache /var/lib/php/opcache
sudo ausearch -m AVC -ts recent
필요 시 정책 반영(chcon 대신 영구 정책):
sudo semanage fcontext -a -t httpd_var_run_t "/var/lib/php/session(/.*)?"
sudo semanage fcontext -a -t httpd_var_run_t "/var/lib/php/wsdlcache(/.*)?"
sudo semanage fcontext -a -t httpd_var_run_t "/var/lib/php/opcache(/.*)?"
sudo restorecon -Rv /var/lib/php/session /var/lib/php/wsdlcache /var/lib/php/opcache
4. 적용 및 서비스 검증¶
sudo nginx -t
sudo systemctl restart php-fpm
sudo systemctl restart nginx
sudo systemctl status php-fpm
sudo systemctl status nginx
5. 원본 대비 제외/변경 사항¶
- 원본 흐름의 핵심(실행 사용자, php_value 경로 권한)은 모두 반영함.
- 추가로 SELinux 점검/영구 반영 절차를 보강함. 이유: 운영 서버에서 권한 문제의 실제 원인이 SELinux인 경우가 많기 때문.
setenforce 0,SELINUX=disabled, 임시chcon우회는 제외. 이유: 보안 정책 무력화 및 재부팅/재배포 시 재발 위험.