1. Приветствуем Вас на неофициальном форуме технической поддержки XenForo на русском языке. XenForo - коммерческий форумный движок от бывших создателей vBulletin, написанный на PHP.

Ошибка после перехода на VDS, не могу загружать вложения и аватары

Тема в разделе "Для новичков", создана пользователем Oleg-2012, 16.02.2013.

Загрузка
  1. Oleg-2012

    Oleg-2012 Местный

    Регистрация:
    21.04.12
    Сообщения:
    700
    Симпатии:
    297
    Переехал на VDS и при загрузке вложений и аватаров вылазиет такая ошибка:
    Код:
    ErrorException: tempnam() [<a href='function.tempnam'>function.tempnam</a>]: open_basedir restriction in effect. File(/tmp) is not within the allowed path(s): (/var/www/oza2012/data:.)
    Система CentOS !

    В чём может-быть проблема ?:(
     
  2. Pepelac

    Pepelac Продам луц в бутылках

    Регистрация:
    28.09.10
    Сообщения:
    1 794
    Симпатии:
    1 361
    Ищите по форуму. Ключевое слово - open_basedir
     
  3. Oleg-2012

    Oleg-2012 Местный

    Регистрация:
    21.04.12
    Сообщения:
    700
    Симпатии:
    297
    Про эту тему я знаю:http://www.xf-russia.ru/forum/threads/Проблема-с-импортом-стилей-и-выбор-аватара.4858/

    Но когда отключаю возникает другая ошибка, типо нет доступа в папку attachments !

    Причём и значения open_basedir задавал в папку tmp и в httpd.conf, и в htaccess, ничего вообще не помогает !:mad:

    И ещё вопросик, а как отключить open_basedir ?

    Я как понял, что это надо сделать в httpd.conf, прописав: php_admin_value open_basedir none ?

    Вот сейчас у меня в phpinfo:
    Код:
    open_basedir    /var/www/oza2012/data:tmp    no value
    Правильно ли я делаю, tmp переадрисуется на tmp_mode везде права 777 !
     
  4. Oleg-2012

    Oleg-2012 Местный

    Регистрация:
    21.04.12
    Сообщения:
    700
    Симпатии:
    297
    open_basedir отключил, теперь возникает такая ошибка:
    Код:
    rename(/var/www/*****/data/www/******/internal_data/temp/xffstvMa,/var/www/******/data/www/*****/data/attachments/1/1770-8e61e1cc96b6f3ad9267dff9ec4a5f0a.jpg) [<a href='function.rename'>function.rename</a>]: Permission denied
    Как понимаю, это что-то с правами на папку ?
     
  5. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    На папки data и internal_data + на их подкаталоги должны стоять атрибуты 777
     
    Oleg-2012 нравится это.
  6. Oleg-2012

    Oleg-2012 Местный

    Регистрация:
    21.04.12
    Сообщения:
    700
    Симпатии:
    297
    ОГРОМНОЕ СПАСИБО ВАМ, всё заработало !:thumbsup:

    А то я уже хотел напица с горя и выбросить свой ноутбук с третьего этажа !:D
     
  7. TAIFUN

    TAIFUN Человек

    Регистрация:
    27.09.10
    Сообщения:
    2 258
    Симпатии:
    1 613
    Версия XF:
    1.5.23
    ))
    Пожалуйста.

    И никогда не светите пути. Я отредактировал Ваше сообщение - заменил кое что звёздочками.
     
    Oleg-2012 нравится это.
  8. Oleg-2012

    Oleg-2012 Местный

    Регистрация:
    21.04.12
    Сообщения:
    700
    Симпатии:
    297
    Слышал, что отключение open_basedir не хорошо в плане безопасности !

    Так-ли это ?:confused:
     
  9. infis

    infis Местный

    Регистрация:
    27.06.11
    Сообщения:
    5 966
    Симпатии:
    3 548
    Версия XF:
    1.5.9
    Не так.
     
    Oleg-2012 нравится это.
  10. n20pro

    n20pro Местный

    Регистрация:
    18.12.12
    Сообщения:
    82
    Симпатии:
    1
    Версия XF:
    1.1.1
    помогите такая же проблема
     
  11. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Тут два варианта. Либо в .htaccess добавить
    Код:
    php_admin_value open_basedir none
    либо в конфиге php (php.ini) найти строку open_basedir=блаблабла и удалить всё после знака =.
     
    n20pro нравится это.
  12. n20pro

    n20pro Местный

    Регистрация:
    18.12.12
    Сообщения:
    82
    Симпатии:
    1
    Версия XF:
    1.1.1
    тогда ошибка
    Internal Server Error

    The server encountered an internal error or misconfiguration and was unable to complete your request.

    ав php.ini так ;open_basedir = , пробовал убирать ; , всё так же
     
  13. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Да, я ошибся, это не в htaccess надо, а в блок VirtualHost конфига apache. Но попробуйте перед этим в php.ini раскомментировать найденную строку (убрать ";").
     
    n20pro нравится это.
  14. n20pro

    n20pro Местный

    Регистрация:
    18.12.12
    Сообщения:
    82
    Симпатии:
    1
    Версия XF:
    1.1.1
    Разницы с ; и без неё нет
    А где конфиг то найти
     
  15. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    В /etc/httpd/ обычно. Если не поможет, то даже не знаю, как это решать =/
    Проверьте заодно, какой используется конфиг у php, может вы не тот нашли:
    Код:
    php -r "phpinfo();" | grep "Loaded Configuration File"
     
    n20pro нравится это.
  16. Oleg-2012

    Oleg-2012 Местный

    Регистрация:
    21.04.12
    Сообщения:
    700
    Симпатии:
    297
    Всё верно, обычно здесь:/etc/httpd/conf/httpd.conf

    Вот httpd.conf и надо править,закоментарить строку php_admin_value open_basedir..... !

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

    Вот у конкретного домена нужно править, например у меня вот так:

    Код:
    php_admin_value open_basedir Путь_Где_Расположена_Папка_tmp а в конце:/tmp
    Пример:
    Код:
    php_admin_value open_basedir /var/www/Papka_Ivanova/Dannye:/tmp
     
    n20pro нравится это.
  17. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Очень сомнительна полезность этой опции. Если всё по-человечески, то для каждого хоста заводится отдельный юзер (так работает ispmanager), и open_basedir просто не нужнен, т.к. всё то же надежнее обеспечивается средствами системы. Если у вебсервера на всё один юзер, то это уже хуже (и главное, ничем не оправдано), но все равно сервер через это не взломают, и ограничивать там open_basedir-ом нечего. А вот когда вебсервер работает от имени рута и директории с сайтом тоже его - то да, безопасность этим "повысить" можно, но админу срочно надо искать способ повысить квалификацию. А вообще, можно обрушить большинство серверов, просто загадив /tmp тоннами мусора :)
     
    n20pro и Oleg-2012 нравится это.
  18. Oleg-2012

    Oleg-2012 Местный

    Регистрация:
    21.04.12
    Сообщения:
    700
    Симпатии:
    297
    Ну Вам виднее, я новичок в этом деле, но всё-же по мне лучше перебдеть, чем недобдеть, если есть возможность не отключать, смысл отключать, у меня сейчас и с open_basedir всё нормально работает !;)
    А вот здесь, что-то не понял, ведь в tmp помещаются вложения и аватары для обработки, а потом удаляются....
     
    n20pro нравится это.
  19. nmn

    nmn Активный пользователь

    Регистрация:
    11.04.13
    Сообщения:
    163
    Симпатии:
    70
    Версия XF:
    1.1.3
    Есть куча причин, по которой этого может не произойти, от таймаута до баги в скрипте :) А последствия обычно феерические - от тормозов и произвольных ошибок до падений сервера с невозможностью последующей загрузки.
     
    n20pro и Oleg-2012 нравится это.
  20. n20pro

    n20pro Местный

    Регистрация:
    18.12.12
    Сообщения:
    82
    Симпатии:
    1
    Версия XF:
    1.1.1
    <Directory /var/www/n20pro/data/www/сайт.ru>
    php_admin_value open_basedir "/var/www/n20pro/data:."
    </Directory>

    Папка с сайтом в
    /var/www/n20pro/data/www/
     

Поделиться этой страницей