Я использую сервер 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, но он не работал для меня. Идет та же ошибка. Так вот, может кто-то любезно скажет мне, в чем здесь проблема? и как это решить?
Ошибка выдается функцией 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
Разрешения для каталога /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
, которая снова нуждается в правильном владении или разрешениях).