Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Здраствуйте!
Структура 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)
Не в сети
Попробуй перенести сайт в 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)
Не в сети
Не в сети
}%Я просто создаю в корне проекта файл index.php и пишу
%%(php)
<?php
include "/public/index.php";
%%
Так делать нельзя, индекс засунули в папку public специально из соображения безопастности, что бы из входного скрипта никаким образом нельзя было получить доступ к каким либо другим файлам системы.
Добрый день.
Версия 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
Не в сети
Добрый день.
Версия 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 в конфиге сервера
Не в сети
Спасибо. Получилось.
Не в сети
Версия 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/ без редактирования системных файлов и если да то как ?
Спасибо!
Не в сети
сайт внутри /var/www – первый признак того что пхп работает от пользователя www-data, работа сайта под www-data – первый признак неудачной конфигурации сервера с точки зрения хостинга проекта на ларавеле (и по-моему – вообще хостинга чего угодно сложнее чем пачка статических html-ек)
/var/www и www-data – это наследие со времён 80-90-х, когда сайт – это была куча хтмля и картинок, и ещё была такая профессия как «вебмастер». современная веб-разработка ушла с тех пор, мягко говоря, далеко, и образцом конфигурации сервера можно считать, например, результат работы таких систем как parallels plesk, isp manager и других – они корректно разграничивают права между аккаунтами и позволяют без проблем иметь несколько сайтов с разной конфигурацией на одной системе – в полной изоляции друг от друга! когда сайт в системе только один (и при этом ему не нужен апач), принципы остаются те же, просто конфиг упрощается. примером такого конфига можно считать то как сервера настраивает laravel forge – его скрипты вполне несложно нагуглить и внимательно поизучать…
Не в сети
Вообще, было бы круто если бы кто то написал подробную статью по правильной настройки сервера, с разъяснениями почему так правильно,а вот так нет. А то все отправляют в гугл, а в гугле большенство статей показывают настройку на var/www/html с chmod 777... По собственному опыту знаю, когда сам первый раз с этим столкнулся.
Можно ли установить проект скинув проект в подкаталог /var/www/html/ без редактирования системных файлов и если да то как ?
DocumentRoot всеравно придется править
Не в сети
Вообще, было бы круто если бы кто то написал подробную статью по правильной настройки сервера, с разъяснениями почему так правильно,а вот так нет. А то все отправляют в гугл, а в гугле большенство статей показывают настройку на var/www/html с chmod 777...
Это какой-то неправильный "гугл". В чём трудности с пониманием прав? Грубо говоря, с точки зрения кода сайта есть доступ "всем на всё", есть "только веб-серверу на чтение и запись", есть "только серверу на чтение" и есть "никому". Первое и четвёртое внутри корня сайта не даётся никогда, второе только для папок, куда код действительно должен писать (логи, аватары и прочее), третье даётся по умолчанию всем файлам и папкам внутри корня - там, где лежит этот самый код и его данные (стили, элементы дизайна и прочее).
Я как-то писал два детальных поста на эту тему, почитайте:
https://laravel.ru/forum/viewtopic.php?pid=11718#p11718 (и пост за ним)
Не в сети
я думаю стоит посмотреть на Digital Ocean туториалы. там много полезной инфы можно найти, я частенько туда заглядываю…
Не в сети
я думаю стоит посмотреть на Digital Ocean туториалы. там много полезной инфы можно найти, я частенько туда заглядываю…
ИМХО, на DO руководства из серии "скопируйте это, это, это, нажмите Enter, перезагрузитесь, готово". Очень подходят, если надо поднять сейчас, а разбираться потом, но глубинного понимания не добавляют.
Не в сети
но глубинного понимания не добавляют
есть и такие. но часто всё же хотя бы кратко там описано что и зачем делается и как это работает…
вообще их там много, часто на повторяющиеся темы с различными вариациями. мне обычно хватает чтобы понять в общих чертах с чего начать, но конечно мне сложно оценить насколько они полезны или не полезны начинающему. судя по отзывам – скорее полезны чем нет…
Не в сети
Это какой-то неправильный "гугл". В чём трудности с пониманием прав? Грубо говоря, с точки зрения кода сайта есть доступ "всем на всё", есть "только веб-серверу на чтение и запись", есть "только серверу на чтение" и есть "никому". Первое и четвёртое внутри корня сайта не даётся никогда, второе только для папок, куда код действительно должен писать (логи, аватары и прочее), третье даётся по умолчанию всем файлам и папкам внутри корня - там, где лежит этот самый код и его данные (стили, элементы дизайна и прочее).
Я как-то писал два детальных поста на эту тему, почитайте:
https://laravel.ru/forum/viewtopic.php?pid=11718#p11718 (и пост за ним)
Да я давно уже с этим всем разобрался. Ну а в гугле реально попадались такие статьи. Но всеравно спасибо за разъяснение и ссылку.
Не в сети
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 без изменений.
Что я упустил ?
Не в сети
Не хватало
AllowOverride All
в файле
/etc/apache2/apache2.conf
Но это работает если на один хостинг одно приложение, что для меня неудобно, так как у меня free AWS
Никто не ставил несколько приложений под один AWS instance ?
Не в сети
Страницы 1