내 문제를 해결하기 위해 집중적으로 검색 한 후 일한 결과를 얻을 수 없었습니다.
저는 잘 작동하는 FastCGI와 php-fpm (php7의 우분투 16.04에서)을 사용하여 chrooted php를 실행하고 있습니다. 그러나 예를 들어 file_get_content : file_get_contents(): php_network_getaddresses: getaddrinfo failed
과 같이 예상되는 DNS 확인 문제가 발생합니다. php-fpm chroot에서 DNS 확인 오류가 발생했습니다.
- 내가 방법 here를 설명 사용, 또한 사용되는 모든 라이브러리를 복사하기 위해 this tutorial에 적응하려고 노력 PHP에 의해, 그리고 물론 복사 호스트와 알아낼 수 파일
- 의 나는 또한 일부 SSL을 가지고
- /nscd를 실행은/var /에 chroot 안에서 그것을 장착하여 호스트가 내부와 chroot를 외부 파일 링크 nscd를 사용하려고 문제가 있으므로 this certificate을 다운로드하고 기본 php-curl 인증서는 아마 (
openssl_get_cert_locations()
후 발견 :["default_cert_file"]=> string(21) "/usr/lib/ssl/cert.pem
) 누락 된
편집 :이) (은 phpinfo 등 많은 일을하지 않는 것 그래서 어쩌면 내가 조금하려면 openssl 설정 파일을 조정할해야의 된 인증서 파일 (see)에 대한 값도 반환하지 않는다 그러나 나는 무엇을 찾아야할지 정말로 모른다. 그것은 너무 큰 chroot 환경을 만들기 때문에 debootstrap을 (또는이 같은 다른 프로그램)를 사용하여
는 나를 위해 옵션이 아닙니다, 나는 많은 chroot 해 실행 할 수로 내가 만들 가볍고 빠르게 유지 기꺼이 하나의 기계에.
기본 PHP-FPM 수영장 :
[${username}]
user = ${username}
group = www-data
listen = /run/php/php7.0-fpm.${username}.sock
listen.owner = ${username}
listen.group = www-data
pm = ondemand
pm.max_children = 20
pm.process_idle_timeout = 10s
pm.max_requests = 250
chroot = /var/www/${username}
chdir =/
기본 아파치 가상 호스트 파일
플러스, 여기 내 설정 파일 그러나 나는 대부분의 PHP 함수는 chroot 환경에서 잘 작동하기 때문에 문제가 여기에 의심이다 :
<VirtualHost *:80>
ServerName www.${domain}
ServerAlias ${domain}
ServerAdmin [email protected]${domain}
DocumentRoot /var/www/${username}/var/www/${username}
<IfModule mod_fastcgi.c>
AddHandler php7-fcgi-${username} .php
Action php7-fcgi-${username} /php7-fcgi-${username} virtual
Alias /php7-fcgi-${username} /usr/lib/cgi-bin/php7-fcgi-${username}
FastCgiExternalServer /usr/lib/cgi-bin/php7-fcgi-${username} -socket /var/run/php/php7.0-fpm.${username}.sock -pass-header Authorization
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</IfModule>
</VirtualHost>
고마워요! (는 chroot가/lib 디렉토리와 같은 파티션에있는 경우에만 작동)
etc/resolv.conf
lib/libnss_dns.so.2
당신은 추가 디스크 공간을 사용 방지하기 위해 하드 링크 수 :