首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache + PHP-FPM + chroot结果“找不到文件。”错误

Apache + PHP-FPM + chroot结果“找不到文件。”错误
EN

Stack Overflow用户
提问于 2013-04-29 01:42:35
回答 2查看 6.8K关注 0票数 1

我想使用PHP-FPM池的chroot属性将chroot设置为DocumentRoot。使用下面的设置,无论我做什么,我都只能得到一个“找不到文件”。错误:

/etc/php5/fpm/pool.d/example.conf

代码语言:javascript
复制
[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

/etc/apache2/sites-enabled/example

代码语言:javascript
复制
<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>

因此,网站本身位于/opt/jail/example/home/example中。你可能会觉得奇怪,但这并不重要,它是由jailkit引起的。

谢谢你的帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-22 00:05:41

你有没有在php-fpm中没有chroot的工作版本?

你应该从这个开始。

然后,一旦您在池中定义了chroot:

代码语言:javascript
复制
chroot = /opt/jail/example/home/example

您必须从此池中的其他设置e中删除此路径:

  • listen
  • chdir
  • php设置,如php_admin_value[open_basedir]php_value[include_path]php_admin_value[upload_tmp_dir],以及使用临时目录的所有设置。

其他一些人似乎忽略了chroot,比如slowlog

所以你有一个listen = /var/run/php_fpm_example.sock,意思是/opt/jail/example/home/example/var/run/php_fpm_example.sock,这应该是apache FastCGIExternalServer的路径。

使用chroot php-fpm和FastCGIExternalServer配置Apache是相当困难的,我在chroot(丑陋)中使用了一个假的完整目录路径符号链接来配置Apache,但是对于新的Apache 2.4,你应该尝试使用mod_proxy_fcgi或者用Nginx替换Apache。

票数 1
EN

Stack Overflow用户

发布于 2015-02-19 00:22:31

您可以使用doc_root php.ini指令来避免在chroot目录中出现符号链接。在本例中,在php-fpm conf文件(/etc/php5/fpm/pool.d/example.conf)中添加以下指令:

代码语言:javascript
复制
php_admin_value[doc_root] = /
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16265765

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档