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

Разверните Laravel 5, используя только FTP на общем хостинге

Мне нужно развернуть проект laravel 5 на клиентский хост.

План моего клиента - базовый хостинг: Linux + MySql без cpanel или аналогичный (т.е. панель администратора).

У меня есть доступ только через ftp и только в папку с именем www.mycustomerweb.com. Это означает, что я не могу создать каталог на том же уровне в папке www.mycustomerweb.com. Только внутри него (я думаю, это называется общим хостингом).

Год назад я развернул проект, созданный с помощью Laravel 4 следующим образом:

  • избавился от общей папки, перемещая свой контент в корневую папку и обновляя index.php и bootstrap.php
  • завершен весь проект в localhost (с Xampp)
  • загрузил все файлы на www.myclientweb.com через ftp.

Мои вопросы:

  • Я сделал все правильно с проектом laravel 4? Могу ли я попасть в проблемы безопасности (я имею в виду, что сайт безопасен)?

  • Как развернуть проект laravel 5 на один и тот же сайт? В Laravel 5 я не могу избавиться от общей папки, как в Laravel 4.

Прямо сейчас, я установил новую установку Laravel 5 на localhost, а затем я загрузил все файлы в папку www.myclientweb.com через ftp:

Конечно, это неправильный путь...

У меня был длинный поиск в Интернете и Stackoverflow без везения.

В самом деле, спасибо за любую помощь.

Спасибо за чтение.

4b9b3361

Ответ 1

Нет никакой разницы между L4 и L5, поэтому сделайте то же самое, что и для L4.

Ответ 2

  • Я создаю новую папку с именем "protected"
  • Переместить все, кроме "общедоступной" папки в папку "protected"
  • Переместить все внутри "общедоступной" папки в корневой каталог
  • Отредактируйте index.php в корневой папке (из общей папки),

изменить require __DIR__.'/../bootstrap/autoload.php'; в require __DIR__.'/protected/bootstrap/autoload.php';

также редактировать $app = require_once __DIR__.'/../bootstrap/app.php'; в $app = require_once __DIR__.'/protected/bootstrap/app.php';

Ответ 3

ОБНОВЛЕНИЕ
Это рискованный процесс. Используя это, вы даете вредоносным пользователям разрешения на обнаружение ошибок. например, http://project-url/storage/logs/laravel.log по-прежнему открыт.


Предыдущий ответ:
Те, кто вряд ли проверяет комментарии, @Andrew F. уже дал ответ.
но он пропустил некоторые другие файлы, такие как композитор и пакет.
Отформатированный ответ:   

  •       
  • перемещать каждый файл публично в родительскую папку.      
  • обновить пути в index.php.      
  • добавьте следующую строку в .htaccess:
    RewriteRule ^(server\.php|gulpfile\.js|\.env|composer.*|package.*) - [F,L,NC]
            

Ответ 4

Если вы пытаетесь запустить Laravel 5.1 в разделяемое пространство хостинга или пытаетесь поместить свой laravel 5/5.1 в подкаталог на вашем общем хостинге, чтобы вы могли получить к нему доступ следующим образом:

http://mywebsite.com/mylaravel/

Итак, этот ответ для вас, прежде всего, убедитесь, что вы встретите

Требования к Laravel 5.1:

- PHP 5.5
- PHP extension Mcrypt
- PHP extension Mbstring
- PHP extension OpenSSL

Вот два учебника для вас:

Ссылка 1

Ссылка 2

Ответ 5

В Apache вы можете добиться этого примерно так

    RewriteEngine on
    RewriteBase /

  # Rewrites all URLS without blog in them
    RewriteCond %{REQUEST_URI} !^/blog/

  # Rewrites all URLS [Replace "example" with the actual domain, without the TLD (.com, .net, .biz, etc)]
    RewriteCond %{HTTP_HOST} ^(www\.)?example\.

  # Rewrite all those to insert /folder
    RewriteRule ^(.*)$ /blog/$1 [L]