Контекст изменения пути Laravel

У меня есть проект Laravel (5.7), который будет развернут на сервере (nginx) с несколькими проектами. Я запускаю проект на своем локальном компьютере с помощью Apache, и я попытался запустить его с подкаталогом, и он работает на моем компьютере.

У нас возникла проблема с развертыванием моего проекта в подкаталоге сервера (nginx), я не знаю, есть ли проблема с проектом Laravel, потому что каждый раз, когда мы переходим к http://172.1.1.1/sample моего проекта, он всегда показывает «Страница 404 не найдена» Laravel, потому что Laravel думал, что / sample - это путь, поэтому я думаю, что 172.1.1.1/sample запускает Laravel, но он не делает / sample как root, но когда мы переходим к 172.1.1.1, другой запущенный здесь проект работает. Я уже добавил следующий код в свой проект Laravel.

В моем AppServiceProvider.php я добавляю следующий код:

public function boot()
{

       \URL::forceRootUrl(\Config::get('app.url'));   

        if (str_contains(\Config::get('app.url'), 'https://')) {
            \URL::forceScheme('https');
            //use \URL:forceSchema('https') if you use laravel < 5.4
        }
    }

Так что, когда я изменю APP_URL в .env своего проекта, он будет работать.

APP_URL=http://localhost:9021/sample

И добавьте следующее в .htaccess моей общей папки:

RewriteEngine On
RewriteBase /sample/

Итак, это работает на моем локальном компьютере, но это не работает, когда мы пытались его развернуть. Как только мы перейдем к 172.1.1.1/sample (sample-ip), он просто покажет «Страница 404 не найдена».

Я хочу знать, есть ли другой способ изменить контекстный путь laravel 5.7. Потому что я не тот, кто настраивает nginx на сервере, но я хочу убедиться, что проблема не в Laravel 5.7.

Спасибо за помощь, ребята.

эту проблему можно решить с помощью виртуального хоста

Shailendra Gupta 16.10.2018 07:38

Как это можно решить, сэр @ShaielndraGupta? Я имею в виду, верны ли мои конфигурации в Laravel или мне нужно что-то изменить в Laravel? Я просто хочу убедиться, что конфиги для Laravel в порядке, потому что я не тот, кто обрабатывает конфиги nginx. Спасибо, сэр.

LordGrim 16.10.2018 07:42

хотите, чтобы http://localhost:9021/sample был вашим базовым путем, так как вы можете запускать несколько проектов на одной машине .. ??

Shailendra Gupta 16.10.2018 07:44

На сервере более 1 проекта. Итак, проект 1 выполняется в локальный: 9021, тогда мы развернем мой проект в localhost: 9021 / образец. Итак, корневая папка моего проекта Laravel будет localhost: 9021 / образец. Но произошло то, что Laravel рассмотрел / sample как путь маршрута, поэтому он возвращает «Страница 404 не найдена».

LordGrim 16.10.2018 07:47

Сконфигурируйте свой nginx для использования вместо этого localhost: 9022 для вашего проекта. APP_URL должен содержать только доменное имя, например APP_URL=localhost:9022.

Mysteryos 16.10.2018 09:53

@Mysteryos, тогда как мы можем заставить Laravel читать localhost: 9022 / sample в качестве корневого домена. Так что он не будет читать / пробовать как свой собственный маршрут.

LordGrim 16.10.2018 11:40
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
6
749
1

Ответы 1

см. эту документацию

laravel с nginx

Но что, если проект находится в подкаталоге. Тогда в nginx.conf мы просто добавим location /sample {}, верно? Нужно ли мне также что-то настраивать в Laravel?

LordGrim 16.10.2018 12:17

теперь это не способ работы laravel, вам нужно разделить свой проект и создать файл конфигурации, который указывает на общую папку этого проекта.

Shailendra Gupta 16.10.2018 12:21

Что ты имеешь в виду? Наша конфигурация указывает на общедоступную папку laravel. Итак, у нас есть этот location /sample {} - когда мы обращаемся к расположение: 9022 / образец, laravel читает его как маршрут laravel, а не корень laravel.

LordGrim 16.10.2018 12:27

Следует ли мне поместить все общедоступные файлы в папку / sample? затем остальные файлы laravel - я создам папку «laravel», так что теперь у меня будет <root_folder> - <laravel_folder> (остальные файлы laravel) - <sample_folder> (все общедоступные файлы). Затем я просто отредактирую индекс. php в общедоступных файлах и указать его в папке laravel?

LordGrim 16.10.2018 12:29

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