Мои маршруты возвращают ошибки в Laravel, Apache

Всякий раз, когда я пытаюсь использовать маршрут, я получаю «объект не найден» и «ошибку 404». Я запускаю свой сервер на Manjaro / Arch (в любом случае локально). Кроме того, я впервые использую Laravel.

Я использую Apache для своего сервера. Он работает, так как я могу загрузить страницу Laravel из 127.0.0.1/path/to/public/. Я использовал этот же сервер для других проектов, и у меня не было проблем.

Я даже попытался изменить корень документа на настоящий корень, то есть теперь я могу просто запустить, используя 127.0.0.1

Я изменил Разрешить переопределение на Все в моем httpd.conf, что, похоже, решает эту проблему для 99% людей. Я убедился, что перезапустил сервер после правок .conf.

мой web.php: (этот первый маршрут - единственный код, который я написал для этого проекта)

Route::get('/hello',function(){
    return 'Hello World';
});

Route::get('/', function () {
    return view('welcome');
});

вывод команды php artisan route:list

+--------+----------+----------+------+---------+--------------+
| Domain | Method   | URI      | Name | Action  | Middleware   |
+--------+----------+----------+------+---------+--------------+
|        | GET|HEAD | /        |      | Closure | web          |
|        | GET|HEAD | api/user |      | Closure | api,auth:api |
|        | GET|HEAD | hello    |      | Closure | web          |
+--------+----------+----------+------+---------+--------------+

Из того, какие другие решения этого вопроса я видел, можно предположить, что мой .htaccess правильный:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews -Indexes
    </IfModule>

    RewriteEngine On

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Redirect Trailing Slashes If Not A Folder.
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} (.+)/$
    RewriteRule ^ %1 [L,R=301]

    # Handle Front Controller.
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]
</IfModule>

Это не проблема Laravel, я думаю, что если я запустил php artisan serve, я могу использовать поиск маршрута, то есть 127.0.0.1:8000/hello напечатает hello world в моем браузере.


person ICP    schedule 24.04.2018    source источник
comment
А что вы получаете, когда используете сервер Php artisan?   -  person noobie-php    schedule 24.04.2018
comment
О, хорошо, какую версию Laravel вы используете?   -  person noobie-php    schedule 24.04.2018
comment
Фреймворк Laravel 5.6.17   -  person ICP    schedule 24.04.2018
comment
Вам нужно добавить файл .htaccess, это что-то новое в laravel 5.6, пока вы его не добавите, вы получите эту ошибку   -  person noobie-php    schedule 24.04.2018
comment
У меня есть файл.   -  person ICP    schedule 24.04.2018
comment
Вы также должны установить некоторые правила для файла, у меня нет настроенного проекта на моем конце, иначе я бы связал его с вами   -  person noobie-php    schedule 24.04.2018
comment
вы пробовали использовать с этим другой порт, скажем: php artisan serve --port=8888   -  person Oluwatobi Samuel Omisakin    schedule 24.04.2018
comment
@OluwatobiSamuelOmisakin Я не понимаю, как это решает проблему. Сервер разработки laravel работает нормально. Это когда я пытаюсь запустить его через apache, он терпит неудачу.   -  person ICP    schedule 24.04.2018
comment
Что ж, поскольку вы хотите работать через Apache, я только испытал создание виртуальной конфигурации для проекта laravel, указав Apache для обслуживания веб-сайта из каталога your project/public. Вы пробовали это? В этом случае вам не нужно использовать php artisan serve   -  person Oluwatobi Samuel Omisakin    schedule 24.04.2018
comment
Либо я скучаю по чтению, либо вы предлагаете то, что я пробовал и опубликовал в своем вопросе. Думаю, все равно исправлено.   -  person ICP    schedule 24.04.2018
comment
Это плохо, что мне приходилось делать chmod 777 для каждого файла в laravel? На самом деле не мог заставить его работать с чем-то меньшим.   -  person ICP    schedule 24.04.2018
comment
Да, 775 многовато для каждого файла. 775 вполне достаточно.   -  person Oluwatobi Samuel Omisakin    schedule 07.05.2018


Ответы (1)


Пришлось добавить:

LoadModule rewrite_module modules/mod_rewrite.so

до конца моего файла httpd.conf

[редактировать]

Также по какой-то причине пришлось дать разрешение на некоторые файлы. (лог-файлы).

person ICP    schedule 24.04.2018