1

我有一个共享主机帐户并安装了 SugarCRM。一切都很好,除了我收到的模块加载器的消息。在这里,我收到将 suhosin.executor.include.whitelist = “upload://” 添加到 php.ini 文件的消息。

消息是:

上传流被 Suhosin 阻止,请在 suhosin.executor.include.whitelist 中添加“上传”(有关更多信息,请参见 sugarcrm.log)

因为我有一个共享主机帐户,所以我无权访问我的 etc 地图,因此也无权访问我的 php.ini 文件。

我想为此使用 .htaccess 文件,但不知道确切的代码。谁能帮我?

4

2 回答 2

1

您可以尝试按照http://forums.sugarcrm.com/f6/upload-stream-blocked-suhosin-82116/中的建议将此添加到您的 .htaccess 文件中

<IfModule mod_php.c>  
    php_value suhosin.executor.include.whitelist upload://
</IfModule>

在我的情况下,我使用的是 php-fpm,所以我修改了 /etc/php5/fpm/conf.d/suhosin.ini 中的 php.ini 定位器,并且我没有来自 SugarCRM 的更多警告

; configuration for php suhosin module
extension=suhosin.so
suhosin.executor.include.whitelist="phar"
suhosin.executor.include.whitelist="upload"
于 2012-11-19T23:05:14.073 回答
0

Carlos Quijano 发布的解决方案对我不起作用。我发现解决方案会有所不同,具体取决于 PHP 作为模块、CGI 还是 FASTCGI 运行。

这是我找到的关于可用于为您的域(甚至子域)使用自定义 php.ini 文件的不同方法的文档

首先,您应该检查哪一个是您的情况

为此,您可以使用 phpinfo 命令:

使用以下内容创建一个名为 phpinfo.php 的 php 文件:<?php phpinfo(); ?> 并将其上传到您的域根目录,然后访问 www.yourdomain.com/phpinfo.php,您会看到一个表格,在“服务器 API”旁边您会看到哪个PHP 的运行方式。

对我来说,它是“CGI/FastCGI”,所以我必须获取全局 php.ini 的副本,我不知道如何获取它,因为它无法通过 FTP 访问。我在 Drupal 论坛中找到了解决方案

创建一个 php 文件,您可以使用以下内容调用 gettheini.php:

<?php system("cp /usr/local/php5/lib/php.ini /home/YOURCPANELUSERNAME/php.ini"); ?>

*第一个路径必须是之前获取的表格中“配置文件(php.ini)路径”旁边的路径(phpinfo.php),最后是php.ini。第二个路径是您要将其复制到的路径。

将其上传到您的域根目录,然后访问 www.yourdomain.com/gettheini.php。此命令将复制全局 php.ini 文件到您指定的路径。然后您可以编辑该文件添加

; configuration for php suhosin module
extension=suhosin.so
suhosin.executor.include.whitelist="phar"
suhosin.executor.include.whitelist="upload"

保存并上传。

由于我的托管服务已经对 php.ini 进行了一些安排,当我再次检查 phpinfo 页面时,新文件已经在工作(检查“加载的配置文件”旁边)。

不要忘记保护新文件,添加

<Files php.ini>
order allow,deny
deny from all
</Files>

到 yout .htaccess 文件的末尾(在您的域或子域的同一根文件夹中)

我希望我的经验可以帮助你解决你的问题,或者至少给你一些指导。

于 2016-02-04T09:04:17.250 回答