Обучение/Помощь новичкам | 500 Server Error
Тема закрыта by
dengri_in
Короче проблема в том что вроде все правильно настроенно. Скрипт с автоустановкой. Использую VDS от FirstVDS.
Но не могу понять почему происходит ошибка.
В логах:
По идеи ссылается на то что функция file_exists() пытается получить доступ к файлу autoload.php и из за ограничения open_basedir в конфигах PHP.
Ну решил я в конфигах сделать так
Перезагрузил сервер Apache. И ничего не изменилось. Как появлялась эта ошибка в логах, так и появляется дальше.
Вот код Autoloader.php где фиггирует 69 линия ошибки.
Плюс прикреплю скрины. Кто знает как решить проблемку.
------
87515_20240313_162202.png (62.6 Kb)
Скачиваний: 111
Но не могу понять почему происходит ошибка.
В логах:
php
PHP Warning: file_exists(): open_basedir restriction in effect. File(/autoload.php) is not within the allowed path(s): (/var/www/www-root/data:.) in /var/www/www-root/data/www/localhost.fvds.ru/core/vendor/vonage/nexmo-bridge/src/Autoloader.php on line 69, referer: https://localhost.fvds.ru/admin/dashboard По идеи ссылается на то что функция file_exists() пытается получить доступ к файлу autoload.php и из за ограничения open_basedir в конфигах PHP.
Ну решил я в конфигах сделать так
php
open_basedir = /var/www/www-root/data:/var/www/www-root/data/www/localhost.fvds.ru/core Перезагрузил сервер Apache. И ничего не изменилось. Как появлялась эта ошибка в логах, так и появляется дальше.
Вот код Autoloader.php где фиггирует 69 линия ошибки.
php
/**
* @throws RuntimeException
*/
private static function getClassLoader() : ClassLoader
{
if (file_exists(getenv('COMPOSER_VENDOR_DIR') . '/autoload.php')) {
return include getenv('COMPOSER_VENDOR_DIR') . '/autoload.php';
}
if (file_exists(__DIR__ . '/../../../autoload.php')) {
return include __DIR__ . '/../../../autoload.php';
}
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
return include __DIR__ . '/../vendor/autoload.php';
}
throw new RuntimeException('Cannot detect composer autoload. Please run composer install');
} Плюс прикреплю скрины. Кто знает как решить проблемку.
------
Скачиваний: 111
Короче проблема в том что вроде все правильно настроенно. Скрипт с автоустановкой. Использую VDS от FirstVDS.
Но не могу понять почему происходит ошибка.
В логах:
php
PHP Warning: file_exists(): open_basedir restriction in effect. File(/autoload.php) is not within the allowed path(s): (/var/www/www-root/data:.) in /var/www/www-root/data/www/localhost.fvds.ru/core/vendor/vonage/nexmo-bridge/src/Autoloader.php on line 69, referer: https://localhost.fvds.ru/admin/dashboard По идеи ссылается на то что функция file_exists() пытается получить доступ к файлу autoload.php и из за ограничения open_basedir в конфигах PHP.
Ну решил я в конфигах сделать так
php
open_basedir = /var/www/www-root/data:/var/www/www-root/data/www/localhost.fvds.ru/core Перезагрузил сервер Apache. И ничего не изменилось. Как появлялась эта ошибка в логах, так и появляется дальше.
Вот код Autoloader.php где фиггирует 69 линия ошибки.
php
/**
* @throws RuntimeException
*/
private static function getClassLoader() : ClassLoader
{
if (file_exists(getenv('COMPOSER_VENDOR_DIR') . '/autoload.php')) {
return include getenv('COMPOSER_VENDOR_DIR') . '/autoload.php';
}
if (file_exists(__DIR__ . '/../../../autoload.php')) {
return include __DIR__ . '/../../../autoload.php';
}
if (file_exists(__DIR__ . '/../vendor/autoload.php')) {
return include __DIR__ . '/../vendor/autoload.php';
}
throw new RuntimeException('Cannot detect composer autoload. Please run composer install');
} Плюс прикреплю скрины. Кто знает как решить проблемку.
скрипт лезет в файловую систему, которая закрыта для доступа - ХОСТЕРОМ
и file_exists() не пытается получить доступ к ФАЙЛУ, она проверяет существование ФАЙЛА ИЛИ КАТАЛОГА, для файловой системы файл и каталог - это одно и то же, если нужно проверить, что подключаемый файл существует и является ИМЕННО ФАЙЛОМ, то нужно использовать is_file()
скрипт должен лежать в папке, которую ХОСТЕР предоставляет для размещения, если ты создал там ещё какие-то папки типа бреда вроде localhost.fvds.ru, то нужно выходить на уровень выше
и file_exists() не пытается получить доступ к ФАЙЛУ, она проверяет существование ФАЙЛА ИЛИ КАТАЛОГА, для файловой системы файл и каталог - это одно и то же, если нужно проверить, что подключаемый файл существует и является ИМЕННО ФАЙЛОМ, то нужно использовать is_file()
скрипт должен лежать в папке, которую ХОСТЕР предоставляет для размещения, если ты создал там ещё какие-то папки типа бреда вроде localhost.fvds.ru, то нужно выходить на уровень выше
И логин www-root обычно ISP создаёт по дефолту

