Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 11.09.2015 13:11:00

Перенос laravel-сайта на хостинга

Здраствуйте!
Структура ftp на хостинге имеет вид
.home/public_ftp
.home/public_html
и тд
В папке "public_html" находится index.php - с чего запускается сайт.
Я создал папку .home/laravel и переместил туда все свое приложение laravel, кроме папки public. Содержимое папки public же я переместил в .home/public_html.

В .home/public_html/index.php отредактировал пути:
require __DIR__.'/../laravel/bootstrap/autoload.php';
$app = require_once __DIR__.'/../laravel/bootstrap/app.php';

В .home/laravel/server.php изменил в путях public на public_html.

Но результата никакого, пустая страница.
Подскажите, пожалуйста.

Изменено reidaigo (11.09.2015 13:11:58)

Не в сети

#2 11.09.2015 13:50:25

Re: Перенос laravel-сайта на хостинга

Попробуй перенести сайт в public_html полностью включая папку public, не перенося ее в корень.
После чего в папке public_html создай файл .htaccess если он не создан, если создан, то допиши в нем:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{REQUEST_URI} !^public
RewriteRule ^(.*)$ public/$1 [L]
</IfModule>

Изменено Johnson (11.09.2015 13:50:49)

Не в сети

#3 12.09.2015 21:49:38

Re: Перенос laravel-сайта на хостинга

Я просто создаю в корне проекта файл index.php и пишу

PHP
<?php
include "/public/index.php";

Не в сети

#4 18.10.2015 12:34:26

Игорь

Re: Перенос laravel-сайта на хостинга

Rsdeveloper пишет:

}%Я просто создаю в корне проекта файл index.php и пишу
%%(php)
<?php
include "/public/index.php";
%%

Так делать нельзя, индекс засунули в папку public специально из соображения безопастности, что бы из входного скрипта никаким образом нельзя было получить доступ к каким либо другим файлам системы.

#5 03.02.2017 17:21:56

Re: Перенос laravel-сайта на хостинга

Добрый день.

Версия Laravel: 5.3.28
Версия PHP:  7.0.15-1~dotdeb+8.1
Операционная система и её версия: Linux vm-site 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1 (2016-12-30) x86_64
Apache DOCUMENT_ROOT:     /var/www/html 

Содержимое проекта Laravel выгрузил в папку /var/www/html
Прописал в корне в файле .htaccess, как было написано выше. Но в браузере отображается структура сайта.
Как ещё его заставить по умолчанию подгружать данные из папки public

Не в сети

#6 04.02.2017 10:16:01

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Перенос laravel-сайта на хостинга

Vladimir_user пишет:

Добрый день.

Версия Laravel: 5.3.28
Версия PHP:  7.0.15-1~dotdeb+8.1
Операционная система и её версия: Linux vm-site 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1 (2016-12-30) x86_64
Apache DOCUMENT_ROOT:     /var/www/html 

Содержимое проекта Laravel выгрузил в папку /var/www/html
Прописал в корне в файле .htaccess, как было написано выше. Но в браузере отображается структура сайта.
Как ещё его заставить по умолчанию подгружать данные из папки public

Нужно настроить алиас на /public в конфиге сервера

Не в сети

#7 04.02.2017 10:58:02

Re: Перенос laravel-сайта на хостинга

Спасибо. Получилось.

Не в сети

#8 01.07.2017 15:37:42

Re: Перенос laravel-сайта на хостинга

Версия Laravel: 5.3.28
Версия PHP:  7.0.15-1~dotdeb+8.1
Операционная система и её версия: Linux vm-site 3.16.0-4-amd64 #1 SMP Debian 3.16.39-1 (2016-12-30) x86_64
Apache DOCUMENT_ROOT:     /var/www/html 

Содержимое проекта Laravel выгрузил в папку /var/www/html
Прописал в корне в файле .htaccess, как было написано выше. Но в браузере отображается структура сайта.
Как ещё его заставить по умолчанию подгружать данные из папки public

У меня аналогичная ситуация, но проект в подкаталоге  /var/www/html/lprods.
Уточните, пожалуйста, в каком файле и что за алиас

Нужно настроить алиас на /public в конфиге сервера

нужно менять?

Можно ли установить проект скинув проект в подкаталог /var/www/html/ без редактирования системных файлов и если да то как ?

Спасибо!

Не в сети

#9 01.07.2017 17:46:39

Re: Перенос laravel-сайта на хостинга

сайт внутри /var/www – первый признак того что пхп работает от пользователя www-data, работа сайта под www-data – первый признак неудачной конфигурации сервера с точки зрения хостинга проекта на ларавеле (и по-моему – вообще хостинга чего угодно сложнее чем пачка статических html-ек)

/var/www и www-data – это наследие со времён 80-90-х, когда сайт – это была куча хтмля и картинок, и ещё была такая профессия как «вебмастер». современная веб-разработка ушла с тех пор, мягко говоря, далеко, и образцом конфигурации сервера можно считать, например, результат работы таких систем как parallels plesk, isp manager и других – они корректно разграничивают права между аккаунтами и позволяют без проблем иметь несколько сайтов с разной конфигурацией на одной системе – в полной изоляции друг от друга! когда сайт в системе только один (и при этом ему не нужен апач), принципы остаются те же, просто конфиг упрощается. примером такого конфига можно считать то как сервера настраивает laravel forge – его скрипты вполне несложно нагуглить и внимательно поизучать…

Не в сети

#10 01.07.2017 17:59:36

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Перенос laravel-сайта на хостинга

Вообще, было бы круто если бы кто то написал подробную статью по правильной настройки сервера, с разъяснениями почему так правильно,а вот так нет. А то все отправляют в гугл, а в гугле большенство статей показывают настройку на var/www/html с chmod 777... По собственному опыту знаю, когда сам первый раз с этим столкнулся.

Можно ли установить проект скинув проект в подкаталог /var/www/html/ без редактирования системных файлов и если да то как ?

DocumentRoot всеравно придется править

Не в сети

#11 02.07.2017 12:16:15

Re: Перенос laravel-сайта на хостинга

Вообще, было бы круто если бы кто то написал подробную статью по правильной настройки сервера, с разъяснениями почему так правильно,а вот так нет. А то все отправляют в гугл, а в гугле большенство статей показывают настройку на var/www/html с chmod 777...

Это какой-то неправильный "гугл". В чём трудности с пониманием прав? Грубо говоря, с точки зрения кода сайта есть доступ "всем на всё", есть "только веб-серверу на чтение и запись", есть "только серверу на чтение" и есть "никому". Первое и четвёртое внутри корня сайта не даётся никогда, второе только для папок, куда код действительно должен писать (логи, аватары и прочее), третье даётся по умолчанию всем файлам и папкам внутри корня - там, где лежит этот самый код и его данные (стили, элементы дизайна и прочее).

Я как-то писал два детальных поста на эту тему, почитайте:
https://laravel.ru/forum/viewtopic.php?pid=11718#p11718 (и пост за ним)

Не в сети

#12 02.07.2017 14:09:19

Re: Перенос laravel-сайта на хостинга

я думаю стоит посмотреть на Digital Ocean туториалы. там много полезной инфы можно найти, я частенько туда заглядываю…

Не в сети

#13 02.07.2017 15:17:15

Re: Перенос laravel-сайта на хостинга

я думаю стоит посмотреть на Digital Ocean туториалы. там много полезной инфы можно найти, я частенько туда заглядываю…

ИМХО, на DO руководства из серии "скопируйте это, это, это, нажмите Enter, перезагрузитесь, готово". Очень подходят, если надо поднять сейчас, а разбираться потом, но глубинного понимания не добавляют.

Не в сети

#14 02.07.2017 16:49:39

Re: Перенос laravel-сайта на хостинга

но глубинного понимания не добавляют

есть и такие. но часто всё же хотя бы кратко там описано что и зачем делается и как это работает…

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

Не в сети

#15 03.07.2017 16:24:04

TrueKanonir
Откуда: Ташкент
Сообщений: 221

Re: Перенос laravel-сайта на хостинга

Это какой-то неправильный "гугл". В чём трудности с пониманием прав? Грубо говоря, с точки зрения кода сайта есть доступ "всем на всё", есть "только веб-серверу на чтение и запись", есть "только серверу на чтение" и есть "никому". Первое и четвёртое внутри корня сайта не даётся никогда, второе только для папок, куда код действительно должен писать (логи, аватары и прочее), третье даётся по умолчанию всем файлам и папкам внутри корня - там, где лежит этот самый код и его данные (стили, элементы дизайна и прочее).
Я как-то писал два детальных поста на эту тему, почитайте:
https://laravel.ru/forum/viewtopic.php?pid=11718#p11718 (и пост за ним)

Да я давно уже с этим всем разобрался. Ну а в гугле реально попадались такие статьи. Но всеравно спасибо за разъяснение и ссылку.

Не в сети

#16 07.07.2017 16:21:19

Re: Перенос laravel-сайта на хостинга

DocumentRoot всеравно придется править

Я в /etc/apache2/sites-available/000-default.conf одну строку

 DocumentRoot  /var/www/html/lprods/public

где lprods каталог с моим приложением и выполнил

 sudo  apachectl restart

урл http://ec2-ddd.us-west-2.compute.amazonaws.com/ редирекнулся на http://ec2-ddd.us-west-2.compute.amazonaws.com/login
что понятно так как приложением под авторизацией
Но я получил ошибку

 The requested URL /login was not found on this server.

При этом я выполнял :

 sudo chmod -R 777 /var/www/html/lprods/storage
sudo chmod -R 777 /var/www/html/lprods/bootstrap/cache

и /var/www/html/lprods/public/.htaccess:

<IfModule mod_rewrite.c>
    <IfModule mod_negotiation.c>
        Options -MultiViews
    </IfModule>

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

    # Handle Authorization Header
    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
</IfModule>

/var/www/html/lprods/public/index.php без изменений.
Что я упустил ?

Не в сети

#17 08.07.2017 10:56:28

Re: Перенос laravel-сайта на хостинга

Не хватало

AllowOverride All

в файле
/etc/apache2/apache2.conf

Но это работает если на один хостинг одно приложение, что для меня неудобно, так как у меня free AWS
Никто не ставил несколько приложений под один AWS instance ?

Не в сети

Подвал раздела