2016-02-17 3 views
2

Я пытаюсь загрузить Laravel 5 проекта в подпапку как:Загрузить Laravel 5 серверному вложенной

public_html/проект/

Я изменил в index.php

require __DIR__.'/../project/bootstrap/autoload.php'; 
$app = require_once __DIR__.'/../project/bootstrap/app.php'; 

в config/app.php

'url' => 'http://example.com/project', 

когда я пытаюсь URL как: http://example.com/project/public она направлена ​​на http://example.com/public

Каков путь, чтобы загрузить его на сервер. Может ли кто-нибудь помочь мне, поскольку я попробовал варианты вариантов.

+0

Изменение корневого каталога проекта, как ' public_html/проект/public'. Вам не нужно ничего менять. –

ответ

6

Не рекомендуется загружать весь проект laravel в public_html (общедоступную) папку. Файлы в общей папке имеют неограниченный доступ.

Если вам сложно подумать о загрузке проекта laravel в папку public_html, потому что вы хотите загрузить его на общий хост, тогда нет необходимости это делать.
Вместо этого попробуйте:
1. Создайте папку с именем laravel (или что угодно) на том же уровне, что и папка public_html.

Eg: 
/
|--var 
    |---www 
     |----laravel 
     |----public_html 

2. Скопируйте каждую вещь, кроме public папки с вашего Laravel проекта в папке laravel (на сервере хоста).
3. Откройте общую папку вашего проекта Laravel, скопировать все и вставить в папку public_html (на сервере хоста)
4. Теперь откройте файл index.php в папке public_html и:

Change: 
require __DIR__.'/../bootstrap/autoload.php'; 
To: 
requrie require __DIR__.'/../laravel/bootstrap/autoload.php'; 
And 
Change: 
$app = require_once __DIR__.'/../bootstrap/app.php'; 
To: 
$app = require_once __DIR__.'/../laravel/bootstrap/app.php'; 
Save and close. 

5. Теперь перейдите в папку laravel и откройте файл server.php

Change: 
require_once __DIR__.'/public/index.php'; 
To: 
require_once __DIR__.'../public_html/index.php'; 
Save and close. 

Теперь, когда вы посещаете URL, который вы настроили как домен с вашим сервером, ваш Laravel приложение должно работать так же, как он работал на вашем локальном хосте.

Примечание: 'url'=>'someurl' в config/app используется artisan ie cli, это не влияет на ваши URL-адреса веб-серверов.
Надеюсь, это поможет.

Редактировать
После завершения выше, если ваш получить пустую страницу при попытке посетить URL, установить права на запись для папки хранения рекурсивно .ie всех папок в хранилище и его подкаталоги должны иметь разрешения 775 набора для владельца веб-сервера и группы для разрешения на запись.

Вы также можете установить разрешения как 777, чтобы предоставить доступ для чтения, записи и выполнения всем для папки хранения, если вы не планируете хранить конфиденциальную информацию в папке хранилища.

Будьте осторожны с правами доступа к файлам в Linux, они похожи на меч с двойным краем, если они не используются правильно, они могут сделать ваше приложение уязвимым для атак. Для понимания прав доступа к файлам Linux вы можете прочитать this

+0

Спасибо. Я сделал так, как вы сказали, но теперь я получаю пустую страницу. Я предоставил доступ для чтения/записи к кэшу хранилища, поставщика и бутстрапа>. Какая ошибка. –

+0

Обычно это происходит из-за отсутствия разрешения на запись для хранения. Убедитесь, что каждая из папок в папке хранения и всех ее подпапках имеет права на запись для группы или пользователя веб-сервера. Иногда можно легко забыть задавать права на запись рекурсивно, то есть сама папка хранения имеет разрешение на запись, но вложенные папки не имеют прав на запись. Проверьте. Также, если вы используете devtools, он показывает какие-либо ошибки? – Donkarnash

+0

Это сработало для меня. Но я использовал Laravel 5.5.13, и я этого не осознавал, но мне нужно было установить (1) PHP на> = 7.0 && (2), чтобы предоставить пользователям права доступа к базе данных MySQL в базе данных && (3). выполнить миграцию вручную php (экспорт из локального и импорт на удаленный). К счастью, мне не нужно было разрешать 777. – Noitidart

0

После того, как я завершил вышеуказанные шаги. Как проверить с правами на чтение/запись (то есть он должен быть 777) для нескольких folcers:

хранения, поставщик и бутстрапе> кэш

Проверить для .htaccess файла, если он есть в папке public_html или скопировать его из общая папка.

Наконец проверить версию PHP она должна быть выше, чем 5,5

Он работал для меня. Ура !!

0

Мне понравилось это. (Моя версия была laravel 5.2)

  1. Измените имя файла server.php на 'index.php'.
  2. Copy .htaccess файл из папки в главной директории (создания подпапок)
  3. А внутри .htaccess после RewriteEngine On мы должны добавить RewriteBase/yoursubfolder/
Смежные вопросы