2013-04-28 4 views
1

PHP-FPM 풀의 chroot 속성을 사용하여 DocumentRoot에 chroot를 설정하려고합니다. 아래 설정을 사용하면 무엇을해도 "파일을 찾을 수 없습니다."라는 메시지 만 표시됩니다. 오류 :Apache + PHP-FPM + chroot 결과 "파일을 찾을 수 없습니다."오류

/etc/php5/fpm/pool.d/example.conf
[example] 
user = example 
group = example 
listen = /var/run/php_fpm_example.sock 
pm = dynamic 
pm.max_children = 5 
pm.start_servers = 2 
pm.min_spare_servers = 1 
pm.max_spare_servers = 3 
chroot = /opt/jail/example/home/example 
php_admin_value[open_basedir]=/opt/jail/example/home/example 

/등/아파치/사이트 사용/예 그래서 웹 사이트 자체가 위치한

<VirtualHost *:80> 
ServerName example.domain.name 
ServerAlias www.example.domain.name 
DocumentRoot /opt/jail/example/home/example 
<Directory /opt/jail/example/home/example> 
AllowOverride All 
Order Allow,Deny 
Allow from all 
</Directory> 
<IfModule mod_fastcgi.c> 
<FilesMatch \.`enter code here`php$> 
SetHandler php-script 
</FilesMatch> 
Action php-script /php5-fpm-handler 
Alias /php5-fpm-handler /vhost_example 
FastCGIExternalServer /vhost_example -socket /var/run/php_fpm_example.sock 
</IfModule> 
</VirtualHost> 

in/opt/jail/example/home/example에 있습니다. 이상하게 느껴질 수도 있지만 실제로는 중요하지 않습니다. jailkit 때문에 발생합니다.

도움 주셔서 감사합니다.

답변

1

php-fpm에 chroot가없는 작동 버전이 있습니까?

시작해야합니다.

  • listen
  • chdir
  • : 다른 설정이 풀을 EIN에서

    chroot = /opt/jail/example/home/example 
    

    당신은이 경로를 제거해야합니다 : 즉시 풀에 chroot로 정의 그런 다음

    php_admin_value[open_basedir] 또는 php_value[include_path] 또는 php_admin_value[upload_tmp_dir]과 같은

  • PHP 설정 및 모든 설정 작동 tmp 디렉토리.

일부 다른 사람은 slowlog과 같은 chroot를 무시하는 것으로 보입니다.

따라서 listen = /var/run/php_fpm_example.sock이 있으니 /opt/jail/example/home/example/var/run/php_fpm_example.sock을 의미하며이 값은 아파치 FastCGIExternalServer의 경로 여야합니다. chroot 된 PHP-FPM과 FastCGIExternalServer 아파치의

구성은 매우 어렵다 I (추한)는 chroot 안에 가짜 전체 디렉토리 경로 심볼릭 링크 once described it하지만 새로운 아파치 2.4로 대신 mod_proxy_fcgi를 사용하려고합니다 또는 아파치를 Nginx로 대체하십시오.

+0

: 귀하의 경우 는 PHP-FPM의 conf 파일에서이 지시어 (/etc/php5/fpm/pool.d/example.conf)를 추가 2.4.10에서 chroot 내부에 있지만 아무 소용이 없습니다. mod_proxy_fcgi가 UDS와 잘 작동하지 않기 때문에 (php-fpm, chroot, UDS) 이들이 함께 작동 할 수있는 유일한 방법 인 것 같습니다. – threeve

0

doc_root php.ini 지시어를 사용하여 chroot 디렉토리의 심볼릭 링크를 피할 수 있습니다. 내가 심볼릭 링크 극복하기 위해 많은 시간을 투자했습니다

php_admin_value[doc_root] =/