2017-01-11 5 views
0

Я изучаю Laravel. Мне сказали, что он по соображениям безопасности не должен устанавливаться на общий хост. Но я хочу сделать это, так как это единственный вариант, который у меня есть сейчас.Как установить Laravel только в общую папку общего хоста?

Итак, у меня есть Googled, чтобы узнать, как «установить Laravel на общий хост». Но все инструкции основаны на том, что вы размещаете проект за пределами общедоступной/веб-папки хоста, а затем копируете публикацию Laravel публике хоста и изменяете пути в индексном файле.

Но я не могу этого сделать, поскольку у меня нет разрешения на добавление или изменение чего-либо в родительской папке общей папки на моем хосте. Поэтому мне нужно решение, в котором Laravel установлен в общей папке.

Я знаю, это абсолютно не рекомендуемое решение. Но я хочу сделать это в любом случае на этом этапе обучения.

Как настроить весь пакет Laravel в общей папке хоста?

+0

Какая версия Laravel? – Buglinjo

+0

Создайте виртуальную машину Linux ... выберите любой дистрибутив ...и работает там :) – Hackerman

+0

И это может зависеть от вашего провайдера веб-хостинга, многие провайдеры могут предоставить вам «jailed shh» (если вы попросите) для учетной записи, чтобы вы могли получить доступ к родительской папке, и вы также можете запустить композитор –

ответ

0

В качестве побочного примечания; Это плохая идея. Весь ваш код может быть доступен для публичного просмотра.

Самый простой способ сделать это - просто скопировать Laravel в/общую папку.

Затем, если вы используете что-то вроде Cpanel вы можете просто изменить корневой каталог вашего домена из / в /public

+1

«Весь ваш код будет доступен для общественного просмотра». Это неправда. Это риск того, что неверная конфигурация сервера может отключить PHP и открыть источник, но он не является автоматическим и не является обычным явлением. – ceejayoz

+0

Как я уже сказал, я знаю риски, но хочу это сделать в любом случае. Могу ли я изменить корень домена из DNS-менеджера ispconfig? Какая запись? –

+0

@PeterWesterlund DNS не имеет к этому никакого отношения. – ceejayoz

0

Если это не так важно, было бы гораздо более высокий уровень безопасности целесообразно размещать запретить от всех HTAccess файлов в корневом каталоге. Затем обновите файл публично, чтобы разрешить все. Затем перейдите на ваш сайт, используя http://example.com/public/ (вы получите 403 отказано в http://example.com).

Если вы абсолютно не можете этого сделать.

  1. Вы хотели бы разместить файл Htaccess (или эквивалент, если вы работаете Nginx), который запрещает от всех в других каталогах Laravel (т.е. поставщик, приложение, хранение и т.д.). (Я не могу предоставить это, поскольку он отличается от Apache 2.2 vs Apache 2.4 vs Nginx, но вы можете использовать его для содержимого файла.)

  2. Затем переместите содержимое общедоступного в корень домена (то есть на один уровень) ,

  3. Затем отредактируйте файл htaccess для публики, чтобы запретить доступ ко всем скрытым файлам, artisan, composer.json, composer.lock и любым другим файлам, которые laravel имеет в корневой папке.

  4. Затем, в index.php измените эти два оператора запроса и удалите ../ до bootstrap.

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

В любом случае, будьте абсолютно уверены, что невозможно загрузить файл .env, так как все ваши пароли будут. http://example.com/.env должен дать вам 403 отрицания. Если вы загружаете, у вас проблемы.

Смежные вопросы