В доступе отказано, когда require () вызывает другой файл PHP - PullRequest
0 голосов
/ 01 ноября 2019

Я использую require () из файла PHP ( index.php ) внутри корневого каталога документов сервера Apache. Файл PHP не выполняется. Ошибка, выдаваемая в файле error_log apache, ниже

Неустранимая ошибка PHP: require (): не удалось открыть обязательный файл '/root/new/test/public/../vendor/autoload.php' (include_path ='.: / usr / share / pear: / usr / share / php') в /root/new/test/public/index.php в строке 24

В строке 24 указано

требуется DIR . '/ .. / vendor / autoload.php';

Я дал разрешение 777 на каталог vendor и даже в папку / root / new / test . Но все же проблема возникает.

Настройки apache в httpd.conf указаны ниже

<VirtualHost *:80>
    DocumentRoot /root/new/test/public
    <Directory "/root/new/test/public">
           Options +Indexes +FollowSymLinks
            AllowOverride All
            Order allow,deny
            Allow from All
            Require local
    </Directory>
</VirtualHost>

Что мне здесь не хватает?

ОБНОВЛЕНИЕ 1:

Я запустил composer install, и он дает следующий вывод

[root@localhost test]# composer install
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Nothing to install or update
Generating optimized autoload files Illuminate\Foundation\ComposerScripts::postAutoloadDump
@php artisan package:discover --ansi
Discovered Package: fideloper/proxy
Discovered Package: laravel/tinker
Discovered Package: nesbot/carbon
Discovered Package: nunomaduro/collision
Package manifest generated successfully.

Ответы [ 2 ]

1 голос
/ 01 ноября 2019

Я думаю, что вы не устанавливаете composer

composer install

После установки Composer разрешите общую папку и хранилище

0 голосов
/ 01 ноября 2019

Вы можете автоматически загружать файлы из вашего composer.json:

"autoload": {
    "classmap": [
        "database"
    ],
    "psr-4": {
        "App\\": "app/"
    },
    "files": [
        "app/Helpers/global.php",
    ]
},

Здесь мое приложение загрузит /app/Helpers/global.php и будет доступно по всему миру. Может потребоваться composer dumpautoload.

...