allow url fopen off

Since either when I updated the server to PHP7 or when I enabled AutoSSL for my server I has not been able upload files. My error is as follows

In phpinfo() I see where my php.ini file is.

When I open this php.ini file I see that allow_file_fopen is «On»

But in the same phpinfo() file I see allow_file_fopen is off

From another stack exchange thread I was told to try the following code which turns out it is OFF

Previously I did get this working by using the following code in my controller, but this no longer works for a reason I do not know

I am using Laravel 5.2 and Image intervention package to deal with the images that get uploaded. As i said this was all working before PHP7 and AutoSSL

Сканер безопасности достаточно требовательная к хостингу штука. Замечу, требования адекватные по большей части. Не все из них могут быть выполнены без вашего участия, в связи с относительностью путей к некоторым директивам И не на все их них существует достаточное описание к устранению. А главное у вас должен быть достаточно широкий перечень доступов к серверу и понимание, что и куда следует писать. Давайте разберем некоторые из них:

Содержание

  1. Убрать все предупреждения по безопасности сайта, сдать все тесты полностью на 100%
  2. Используется опасная/устаревшая версия php
  3. Разрешено чтение файлов по URL (URL wrappers)
  4. Включить
  5. Разрешено отображение сайта во фрейме с произвольного домена
  6. Включен Automatic MME Type Detection
  7. htaccess файлы не должны обрабатываться Apache в директории хранения загружаемых файлов
  8. PHP скрипты выполняются в директории хранения загружаемых файлов

Убрать все предупреждения по безопасности сайта, сдать все тесты полностью на 100%

Предварительно сервер уже подстроен под и достаточно существенно, поскольку на нем уже не первый год лежат данные сайты. Однако нет места совершенству и мы задались мыслью отработать все предупреждения систем безопасности . Вот некоторые из них:

Используется опасная/устаревшая версия php

Разрешено чтение файлов по URL (URL wrappers)

Включить

Путь требуется изменить на ваш. Сами понимаете хостер за вас этого не сделает. Поскольку он не знает какой вы используете движок. В моем же случае, мы допишем в генератор php .ini

Разрешено отображение сайта во фрейме с произвольного домена

add_header SAMEORIGIN; — добавляем данную строчку в nginx, так как nginx стоит на выходе (для битрикса принципиален ). Если мы поставим его на apache толку не будет. , строку нужно закинуть в оба конфига. В админке ispconfig3, если вы ставили по моему мануалу, просто саму директиву. Если вы создавали конфиги руками (читай, сами), то вписываем строку в server, а не location.

Включен Automatic MME Type Detection

Аналогичная ситуация, поскольку директива Header set X- nosniff. C того же модуля можно вписать их вместе.

В Nginx просто вписываем рядом.

htaccess файлы не должны обрабатываться Apache в директории хранения загружаемых файлов

PHP скрипты выполняются в директории хранения загружаемых файлов

Собственно, ошибка появляется когда вы отключили .htaccess в папке upload решение смотрим выше, поскольку оно решает две проблемы сразу. В результате у меня получилось следующее:

Теперь рассмотрим как это сделать для всех сайтов одновременно.

Добавим настройки для nginx

находим строчку include /etc/nginx/locations.d/*.conf; и вставляем перед ней код. Должно получиться так:

Далее добавляем apache2в генератор хостов

По той же схеме вставляем внизу конфига дополнительный кусок. Но уже с переменными, поскольку нам требуется путь до сайта.

Дополнительно, по ходу дела, тестируя работоспособность скриптов на разных сайтах, пришлось докинуть директиву во все php .ini

Я хочу разрешить allow_url_fopen на моем сервере. Я спросил своего хозяина, и они сказали, что это можно сделать с файлом .htaccess . Может ли кто-нибудь сказать мне, как это сделать?

Попробуйте это, но я не думаю, что это сработает, потому что вы не должны изменять это

Поместите эту строку в файл htaccess в каталог, в который вы хотите включить настройку:

Обратите внимание, что этот параметр применим только к файлам PHP в том же каталоге, что и файл htaccess.

В качестве альтернативы использованию url_fopen попробуйте использовать curl.

allow_url_fopen обычно имеет значение On. Если он не включен, вы можете попробовать две вещи.

Создайте файл .htaccess и сохраните его в корневой папке (иногда может потребоваться разместить его на один шаг назад в корневом каталоге) и вставьте этот код там.

Создайте файл php.ini (для сервера обновлений php5.ini ) и сохраните его в корневой папке (иногда, возможно, потребуется разместить его на один шаг назад в корневом каталоге) и вставьте следующий код:

Я лично протестировал вышеупомянутые решения; они работали на меня.

Если ваш хост использует suPHP, вы можете попробовать создать файл php.ini в той же папке, что и скрипт, и добавить:

(вы можете определить это, создав файл и проверив, какой пользователь он был создан: если вы, это suPHP, если «apache / nobody» или нет, то это обычный режим PHP. Вы также можете создать скрипт

Чтобы предоставить ту же информацию, если shell_exec не является отключенной функцией)

Источник: computermaker.info

Понравилась статья? Поделиться с друзьями:
Ок! Компьютер
Добавить комментарий