Ошибка SugarCRM на загрузчике модуля на виртуальном хостинге
У меня есть общий хостинг и установлен SugarCRM. Все хорошо, кроме сообщения, которое я получаю для загрузчика модуля. Здесь я получаю сообщение о добавлении suhosin.executor.include.whitelist = "upload://" в файл php.ini.
Сообщение:
Поток загрузки заблокирован Suhosin, пожалуйста, добавьте "upload" в suhosin.executor.include.whitelist (см. Sugarcrm.log для получения дополнительной информации)
Поскольку у меня есть общая учетная запись хостинга, у меня нет доступа к моей карте etc и, следовательно, к моему файлу php.ini.
Я хочу использовать для этого файл.htaccess, но не знаю точного кода. Может кто-нибудь мне помочь?
2 ответа
Вы можете попробовать добавить это в свой файл.htaccess, как это предлагается в http://forums.sugarcrm.com/f6/upload-stream-blocked-suhosin-82116/
<IfModule mod_php.c>
php_value suhosin.executor.include.whitelist upload://
</IfModule>
В моем случае я использую php-fpm, поэтому я изменил локатор php.ini в /etc/php5/fpm/conf.d/suhosin.ini, и у меня больше нет предупреждений от SugarCRM
; configuration for php suhosin module
extension=suhosin.so
suhosin.executor.include.whitelist="phar"
suhosin.executor.include.whitelist="upload"
Решение, опубликованное Карлосом Кихано, не сработало для меня. Я обнаружил, что решение отличается в зависимости от того, работает ли PHP как модуль, CGI или FASTCGI .
Это документация, которую я нашел о различных методах, которые вы можете использовать, чтобы использовать пользовательский файл php.ini для вашего домена (или даже поддоменов).
Сначала вы должны проверить, какой из них ваш случай.
Для этого вы можете использовать команду phpinfo:
Создайте php-файл phpinfo.php с таким содержимым: <?php phpinfo(); ?>
и загрузите его в корневой каталог своего домена, затем зайдите на сайт www.yourdomain.com/phpinfo.php, вы увидите таблицу, а рядом с "Server 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, новый файл уже работал (установите флажок "Loaded Configuration File").
Не забудьте защитить новый файл, добавьте
<Files php.ini>
order allow,deny
deny from all
</Files>
в конец вашего.htaccess файла (в той же корневой папке вашего домена или субдомена)
Я надеюсь, что мой опыт поможет вам решить вашу проблему или, по крайней мере, даст вам некоторые рекомендации.