Jump to content
Search In
  • More options...
Find results that contain...
Find results in...
  • Sign Up

SOS! Не загружает картинки из-за open_basedir


Recommended Posts

Доброе утро всем :-) 

Появилась ОГРОМНАЯ необходимость в .htaccess сайта прописать запрет, на выход в директории выше.
Прописал по рекомендациям хостера:

php_value open_basedir "/home/u/user1987652/test1.ru/public_html/"

 

Теперь при загрузке фото ( например к товаров или к категории ) - вылезает ошибка:
Внимание! Файл не может быть загружен по неизвестным причинам!
 

Если убрать open_basedir - все ок. Хостер ничем помочь не может, а исправить очень надо :rolleyes: Вся надежда на вас. Заранее очень благодарен за любую оказанную помощь.

Просто не понимаю - почему фото не загружаются, если их директория находится в public_html/image/

Link to post
Share on other sites

Потому что системный кеш лежит в папке storage вынесенной выше public_html, это рекомендует сделать опенкарте при первичной настройке

Скорее всего, какой-то из модулей слайдера/категорий/карточек товара, хранит в storage/cache пути к кешированный изображениям из image/cache 

 

решением может быть перемещение папки storage внутрь public_html

 

ВАЖНО: если надумаете перемещать папку, не забудьте изменить конфиги и прописать к ней новый правильный путь (config.php в корневой папке и в папке admin, пункт DIR_STORAGE)

Link to post
Share on other sites

41 минуту назад, paulkouls сказал:

Потому что системный кеш лежит в папке storage вынесенной выше public_html, это рекомендует сделать опенкарте при первичной настройке

Скорее всего, какой-то из модулей слайдера/категорий/карточек товара, хранит в storage/cache пути к кешированный изображениям из image/cache 

 

решением может быть перемещение папки storage внутрь public_html

 

ВАЖНО: если надумаете перемещать папку, не забудьте изменить конфиги и прописать к ней новый правильный путь (config.php в корневой папке и в папке admin, пункт DIR_STORAGE)

эмммм.
у меня идет так:

site.ru/public_html/

а в нем уже все
/admin
/image
/catalog
/system

Link to post
Share on other sites

5 минут назад, REDDI сказал:

эмммм.
у меня идет так:

site.ru/public_html/

а в нем уже все
/admin
/image
/catalog
/system

Прочитайте ещё раз внимательно. Папка storage вынесена за пределы public_html 

Link to post
Share on other sites

46 minutes ago, paulkouls said:

системный кеш лежит в папке storage вынесенной выше public_html

 

site.com/storage/

Link to post
Share on other sites

вообщето это в 3 версии вынесено, насколько я знаю, а во второй - нет

@REDDI, версию вашего опенкарта в студию))

Edited by Prooksius
Link to post
Share on other sites
1 час назад, Prooksius сказал:

вообщето это в 3 версии вынесено, насколько я знаю, а во второй - нет

@REDDI, версию вашего опенкарта в студию))

2.3.0.2.3

Link to post
Share on other sites

думаю потому что картинка сначала грузится в /tmp или куда там еще

Link to post
Share on other sites
21 минуту назад, spectre сказал:

думаю потому что картинка сначала грузится в /tmp или куда там еще

странно, по идее это должно быть учтено на уровне php, типа если такая опция включена, это не влияло бы на загрузку во временную папку.
Не перемещать же временную папку в проект

Link to post
Share on other sites

Ну так и есть:
 

Цитата
Вы всегда можете ограничить защиту для определенных папок, без его полного отключения функции open_basedir. Для этого просто внесите список разрешенных папок, разделяя их двоеточием. Например, для разрешения доступа к директории /new_directory код будет таким:

 

php_admin_value open_basedir “/home/user_account/:/usr/lib/php:/usr/local/lib/php:/tmp” php_admin_value open_basedir “/home/user_account/:/usr/lib/php:/usr/local/lib/php:/tmp:/new_directory”
Перезапустите Apache сервер. Обратите внимание, что ограничение ввреху, это только префикс, а сама папка. Т.е. использование, к примеру, “open_basedir = /dir/incl” также откроет доступ к папкам “/dir/include” или “/dir/incls”, если таковые имеются. Для ограничения доступа только к одной специфической директории, используйте слеш в конце: “open_basedir = /dir/incl/”.
 

https://web-zones.ru/threads/nastrojka-open_basedir-v-php.873/

Edited by Prooksius
  • +1 1
Link to post
Share on other sites
7 часов назад, REDDI сказал:

php_value open_basedir "/home/u/user1987652/test1.ru/public_html/"

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

  • +1 1
Link to post
Share on other sites
20 часов назад, mohyliv сказал:

 

site.com/storage/

у меня вообще нет такой папки на хостинге) не в /public_html/ , не в /site.ru/

Link to post
Share on other sites

1 час назад, REDDI сказал:

у меня вообще нет такой папки на хостинге) не в /public_html/ , не в /site.ru/

И не в / ?

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.