我有一个共享主机帐户并安装了SugarCRM。一切都很好,除了我得到的模块加载器的消息。在这里,我收到消息,将suhosin.executor.include.whitelist =“upload://”添加到php.ini文件中。
消息是:
上传流被Suhosin阻止,请添加“上传”到 suhosin.executor.include.whitelist(有关详细信息,请参阅sugarcrm.log 信息)
因为我有一个共享主机帐户,所以我无权访问我的etc地图,因此也无法访问我的php.ini文件。
我想使用.htaccess文件,但不知道确切的代码。谁能帮我?
答案 0 :(得分: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"
答案 1 :(得分:0)
Carlos Quijano发布的解决方案并不适合我。 我发现解决方案有所不同,具体取决于PHP是作为模块,CGI还是FASTCGI运行。
这是the documentation我已经找到了可用于为您的域(甚至是子域名)使用自定义php.ini文件的不同方法
首先,您应该检查哪一个是您的情况。
为此,您可以使用phpinfo命令:
使用以下内容创建一个名为phpinfo.php的php文件:<?php phpinfo(); ?>
并将其上传到您的域根目录,然后访问www.yourdomain.com/phpinfo.php,
您将看到一个表格,并且旁边是&#34; Server API&#34;您将看到PHP的运行方式。
对我来说它是&#34; CGI / FastCGI&#34;,所以我必须得到全球php.ini的副本,我不知道如何获得因为它无法通过FTP访问访问。我找到了solution in a Drupal forum:
创建一个php文件,您可以使用以下内容调用gettheini.php:
<?php system("cp /usr/local/php5/lib/php.ini /home/YOURCPANELUSERNAME/php.ini"); ?>
*第一条路径必须是&#34;配置文件(php.ini)路径&#34;旁边的路径。在之前获得的表(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页面时,新文件已经工作(检查&#34;加载配置文件&#34;旁边。)。
不要忘记保护新文件,添加
<Files php.ini>
order allow,deny
deny from all
</Files>
到.ttaccess文件的末尾(在您的域或子域的同一个根文件夹中)
我希望我的经验可以帮助您解决问题或至少给您一些指导。