Подтвердить что ты не робот

Загрузка проекта Laravel на веб-сервер

Я пытаюсь загрузить проект Laravel на свой веб-сервер, но мои прошлые две попытки не увенчались успехом. Я считаю, что я не загружаю файлы в нужное место.

Это моя структура веб-сервера → WebServer Structure

Можно ли сказать, что мне нужно загрузить ВСЕ мои файлы laravel в public_html?

Это мой каталог проектов Laravel:

Laravel Project Directory

EDIT: теперь я добавил все файлы в корневую папку и public в public_html, однако ни один из моих маршрутов не работает. (Они отлично работают на локальном хосте). Все выбрасывает 404

4b9b3361

Ответ 1

Нет, но у вас есть несколько вариантов:

Самый простой способ - загрузить все файлы, которые у вас есть, в тот каталог, в котором вы находитесь (например, домашний каталог пользователя cPanel), и поместить его в public_html. Таким образом, структура вашего каталога будет чем-то вроде этого (слегка грязная, но она работает):

/
    .composer/
    .cpanel/
    ...
    app/                 <- your laravel app directory
    etc/
    bootstrap/           <- your laravel bootstrap directory
    mail/
    public_html/         <- your laravel public directory
    vendor/
    artisan              <- your project root files

Вам также может потребоваться отредактировать bootstrap/paths.php, чтобы указать на правильный общий каталог.

Другое решение, если вам не нравится, что все эти файлы в этом корневом каталоге будут помещены в их собственный каталог (возможно, "laravel" ), который все еще находится в корневом каталоге, а затем редактирует пути к работайте правильно. Вам все равно нужно поместить содержимое public в public_html, и на этот раз отредактировать public_html/index.php, чтобы правильно загружать приложение. Структура вашей папки будет намного более аккуратной (хотя могут быть некоторые головные боли с путями из-за вовлечения в структуру, разработанную каркасом, больше):

/
    .composer/
    .cpanel/
    ...
    etc/
    laravel/      <- a directory containing all your project files except public
        app/
        bootstrap/
        vendor/
        artisan
    mail/
    public_html/  <- your laravel public directory

Ответ 2

Если вы пытаетесь разместить ваше приложение Laravel на общем хостинге, это может вам помочь.

Хостинг Laravel на общем хостинге # 1

Хостинг Laravel на общем хостинге # 2

Если вы хотите, чтобы PHP 5.4 добавлял эту строку в ваш файл .htaccess или вызывал вашего хостинг-провайдера.

AddType application/x-httpd-php54 .php

Ответ 3

Я считаю, что ваши файлы/папки Laravel не должны размещаться в корневом каталоге.

например. Если ваш домен указан в каталоге public_html, то все содержимое должно быть помещено в этот каталог. Как? позвольте мне рассказать вам

  • Скопировать все файлы и папки (включая общую папку) в общедоступный html
  • Скопировать весь контент общей папки и вставить его в корень документа (то есть public_html)
  • Удалить общую папку
  • Откройте ваш bootstrap/paths.php, а затем измените 'public' => __DIR__.'/../public', на 'public' => __DIR__.'/..',

  • и, наконец, в index.php,

    Изменить

require __DIR__.'/../bootstrap/autoload.php';

$app = require_once __DIR__.'/../bootstrap/start.php';

в

require __DIR__.'/bootstrap/autoload.php';

$app = require_once __DIR__.'/bootstrap/start.php';

Теперь ваше приложение Laravel должно работать.

Ответ 4

Все ваши файлы Laravel должны находиться в одном месте. Laravel обнажает свою общедоступную папку на сервер. Эта папка представляет собой какой-то фронт-контроллер для всего приложения. В зависимости от конфигурации сервера вам необходимо указать путь к серверу в этой папке. Как я вижу, на вашем снимке есть сайт www. www - это корневой каталог по умолчанию на компьютерах Unix/Linux. Лучше всего заглянуть в конфигурацию вашего сервера и найти местоположение корневого каталога. Как вы можете видеть, у Laravel уже есть файл с именем .htaccess, с некоторой готовой конфигурацией Apache.

Ответ 5

Если бы эта проблема тоже возникла и выяснилось, что самый простой способ - указать ваш домен в общую папку и оставить все остальное так, как они есть.

ПОЖАЛУЙСТА, ОБРАЩАЙТЕСЬ ИСПОЛЬЗОВАТЬ ПРАВУЮ ВЕРСИЮ PHP. Сэкономьте себе стресс:)

Ответ 6

В Laravel 5.x нет paths.php

поэтому вы должны отредактировать public/index.php и изменить эти строки, чтобы пинтать в каталог bootstrap:

require __DIR__.’/../bootstrap/autoload.php’;

$app = require_once __DIR__.’/../bootstrap/app.php’;

для получения дополнительной информации вы можете прочитать эту статью.