Проблема с Ubuntu 12.04 php PEAR

Я использую сервер LAMP в своей системе Ubuntu 12.04. До этого времени я установил prestashop без проблем. Но после долгого времени, когда я пытался установить prestashop сегодня, это действительно показало мне странную ошибку. Ошибка выглядит следующим образом:

Warning: require(/var/www/Prestashop/config/config.inc.php): failed to open stream: Permission denied in /var/www/Prestashop/index.php on line 27 Fatal error: require(): Failed opening required '/var/www/Prestashop/config/config.inc.php' (include_path='.:/usr/share/php:/usr/share/pear/PEAR') in /var/www/Prestashop/index.php on line 27

Для этого я решил отладить ошибку, поэтому просмотрел множество блогов и форумов и проверил свой файл php.ini. Файл похож на этот .

После просмотра многих блогов кто-то сказал, что ошибка в пакете php pear, ссылка здесь здесь .

После этого я только что отредактировал свой URL-адрес php.ini pear следующим образом:

;UNIX: "/path1:/path2"
include_path = ".:/usr/share/php:/usr/share/php/PEAR"

После этого я просто перезапустил свой сервер apache, но он не работал для меня. Идет та же ошибка. Так вот, может кто-то любезно скажет мне, в чем здесь проблема? и как это решить?

2
задан 24 August 2013 в 06:58

2 ответа

Ошибка выдается функцией require() . Эта функция останавливает скрипт php, когда:

  • заданный файл (в вашем случае файл /var/www/Prestashop/config/config.inc.php) не существует или
  • , когда пользователь, вызывающий функцию, не У меня нет разрешения на чтение этого файла.

Согласно:

Warning: require(/var/www/Prestashop/config/config.inc.php): failed to open stream: Permission denied in /var/www/Prestashop/index.php on line 27

ваша проблема попадает во второй случай. Чтобы предотвратить это, вы должны изменить разрешения для файла /var/www/Prestashop/config/config.inc.php, чтобы позволить другим пользователям читать файл. Вы можете сделать это, выполнив следующую команду из терминала:

chmod +r /var/www/Prestashop/config/config.inc.php

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

Проверьте также разрешения для каталога config. Это должно быть что-то вроде: drwxr-xr-x. Если нет, используйте эту команду в терминале:

chmod +rx /var/www/Prestashop/config
0
ответ дан 24 August 2013 в 06:58

Разрешения для каталога /var/www/Prestashop/config неверны . Они drwx------ означают, что ТОЛЬКО пользователь newuser может получить к ним доступ. Веб-сервер работает как www-data и, очевидно, он не может получить доступ к вашему каталогу конфигурации.

Нет абсолютно никакого вреда при добавлении разрешений на чтение как для группы, так и для всех.

chmod +rx /var/www/Prestashop/config

Может быть рассмотрен вопрос безопасности при добавлении разрешения на запись в каталог, но это спорно, поскольку /tmp/ всегда доступен и вредоносное программное обеспечение, как правило, использовать его в качестве каталога поддержки.

Конечно, не предоставляйте доступ для записи самим файлам, так как , что будет проблемой безопасности.

Если вы действительно не хотите делать его читаемым для всего мира, вы можете сменить владельца на www-data

sudo chown www-data /var/www/Prestashop/config

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

0
ответ дан 24 August 2013 в 06:58

Другие вопросы по тегам:

Похожие вопросы: