안녕하세요.

 

새로운 웹서비스 환경을 구성하기 위해 아래와 같이 설정 하였습니다.

 

apache2 기본 설정.

 

<VirtualHost *:80>
    ServerName 13.124.5.214
    DocumentRoot /var/www/html
    <Directory /var/www/html>
Options FollowSymLinks
AllowOverride All
Require all granted
    </Directory>
<FilesMatch \.php>
SetHandler "proxy:unix:/var/run/php/php7.2-fpm.sock|fcgi://localhost/"
</FilesMatch>
AssignUserId ubuntu ubuntu
</VirtualHost>

 

[결과]

503 error 페이지..

 

혹시 해결 방법 아시나요?

AssignUserId 와 SetHandler을 따로따로 사용할경우 문제가 없습니다.

 

하지만 동시에 사용할경우 503 error 페이지가 나타나는 상황 입니다.

 

 

  • profile

    SetHandler를 사용하신다면 PHP-FPM과 연동한다는 뜻일 텐데, 그렇다면 유저와 그룹은 PHP-FPM 쪽에서 설정하셔야 합니다. 아파치와 PHP-FPM이 서로 분리되어 있고, 실제로 파일 쓰기 권한이 필요한 것은 PHP-FPM으므로 아파치 쪽에서 유저와 그룹을 설정하는 것은 의미가 없습니다.

     

    단, PHP-FPM 기본 pool 설정(www.conf)의 유저와 그룹을 변경하면 세션 저장 경로 등 여기저기에서 기본 세팅과 충돌하게 됩니다. 기본 설정은 무시하고 pool을 하나 따로 만들어서, 새로 만든 pool을 아파치와 연동하여 쓰는 것이 가장 안정적입니다.

  • profile profile
    답변 감사합니다

    그럼 혹시 php-fpm 말고 php 를 여러개 설치 했을때 vhost로 php 버전을 선택 하는 방법이 있나요?
  • profile profile
    vhost별 권한 분리, 버전 분리 등 PHP-FPM으로 모두 가능합니다.
  • profile profile
    혹시 예제글 하나만 알려주실수 있으신가요?
  • profile profile
    아쉽지만 딱히 추천드릴 만한 튜토리얼은 없네요.
    기본적인 개념만 정리해 드리자면

    센토스의 remi, 우분투의 ppa:ondrej/ppa 등 대부분의 서드파티 PHP 저장소는 여러 버전을 동시에 지원합니다. 예를 들어 우분투에서 ppa를 사용하면 php7.2-fpm과 php7.4-fpm을 동시에 설치할 수 있습니다.

    각 버전의 php-fpm에는 여러 pool을 추가할 수 있습니다. 우분투 기준으로 /etc/php/버전/fpm/pool.d 폴더 내에 pool마다 하나씩 파일을 추가하면 됩니다. 기본 제공되는 pool의 이름은 www인데, 위에서 말씀드렸듯이 이건 그냥 무시하고 필요한 것을 추가해서 쓰시기를 권장합니다.

    각 pool마다 user, group, 아파치와 연동하는 소켓 경로, 에러 로그 경로, 타임아웃 시간 등을 설정할 수 있습니다. (자세한 항목들은 www 파일의 주석을 참고하세요.) 각 pool의 소켓 경로로 아파치를 연동하면 해당 pool에서 설정된 user와 group의 권한으로 PHP가 실행됩니다. 아파치 쪽에서는 소켓 경로 외에는 따로 설정할 것이 없습니다.
  • profile profile
    확인하였습니다 : )

    감사합니다 : ) !!