Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всё я понял в чем дело
нужно было сделать
<VirtualHost *:80>
ServerName my.dev
ServerAlias www.my.dev
DocumentRoot /home/volk/web/my.dev/public
ServerAdmin me@localhost
<Directory "/home/volk/web/my.dev">
Require all granted
Options +Indexes
AllowOverride All
</Directory>
</VirtualHost>
добавить AllowOverride All
Я перешел с виныд на линукс (kubuntu), и решил самостоятельно сконфигурировать сервер.
Сервер я настроил вот такой конфигруарцией
<VirtualHost *:80>
ServerName my.dev
ServerAlias www.my.dev
DocumentRoot /home/volk/web/my.dev/public
ServerAdmin me@localhost
<Directory "/home/volk/web/my.dev">
Require all granted
Options +Indexes
</Directory>
</VirtualHost>
И когда я захожу в корень сайта то всё работает.
Но когда я иду по любым другим путям (в независимости указанны они в routes.php или нет), мне выдается 404 ошибка. Не ларавельевская страница NotFoundHttpException, а именно простая апачевксая 404 ошибка.
Полазив по гуглу я понял что это проблема в .htaccess
То-есть если в пути написано Route::get('tasks/', 'TasksController@index');
То такой путь срабатывает по адресу http://my.dev/index.php/tasks
.htaccess который лежит в public выглядеть вот так (таким его создал laravel.phar)
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes...
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>
так же я пробовал заменять его на вот этот (найден вот тут )
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
но все равно ничего не поменялось
я даже права 777 на него выставил (на всякий случай)
Модуль rewrite я, кажется, подключил (изначально он не был включен, и я самостоятельно создал символьную ссылку)
volk@sivadra:/etc/apache2/mods-enabled$ ls -Fal | grep "rewrite"
lrwxrwxrwx 1 root root 30 июля 26 16:28 rewrite.load -> ../mods-available/rewrite.load
Хотя, когда я делаю apache2ctl -l у меня вылезает
volk@sivadra:/etc/apache2/mods-enabled$ apache2ctl -l
Compiled in modules:
core.c
mod_so.c
mod_watchdog.c
http_core.c
mod_log_config.c
mod_logio.c
mod_version.c
mod_unixd.c
volk@sivadra:/etc/apache2/mods-enabled$
то-есть в этом списки модуля rewrite нет, что вызывает сомнения в подключенности этого модуля.
Подскажите, дело в том что модуль rewrite не подключился? Или в я что-то с конфигурацией сервера напутал?
И как это вылечить? Спасибо.
Спасибо, я использовал вот такую конифигурацю
<VirtualHost *:80>
ServerName vi.dev
ServerAlias www.vi.dev
DocumentRoot /home/volk/web/vi.dev/public
ServerAdmin me@localhost
<Directory "/home/volk/web/vi.dev">
Require all granted
</Directory>
</VirtualHost>
и кажется проблема с 403 исчезла. Теперь вместо неё сообщение Mcrypt PHP extension required.
сейчас буду разбираться как приделать mcrypt к php.
P.S.
Directory все таки важна, так как по умолчанию apache хочет чтобы сайты были вот тут /var/www/html, а я хочу чтобы они лежали в ~/web (созданная мной папка), чтобы каждый раз не заморачиваться с sudo при работе с сайтами.
У меня вот такая проблема
Раньше работал на винде и использовал OpenServer
Потом поставил линукс и решил как истинный джедай сам собрать связку apache + php + mysql
Вроде как-то собрал.
Но когда я поставил Laravel при попытки захода на главную страницу мне выдается ошибка "403 - Forbidden"
В логе ошибок написанно следующеие
[Sun Jul 13 03:22:03.532705 2014] [autoindex:error] [pid 29735] [client 127.0.0.1:37242] AH01276: Cannot serve directory /home/volk/web/vi.dev/: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
Как я понял это ларавель жалуется на отсутствие индексных файлов
Но ведь когда я точно таким же способом устанавливал на laravel на OpenServer и там тоже не было индексных файлов, но всё равно все работало.
У меня когнитивный диссонанс, по логике вещей лаверль без index.php не должен был работать и на OpenServer.
Конфигурация виртуального хоста выглядит вот так.
<VirtualHost *:80>
ServerName vi.dev
ServerAlias www.vi.dev
DocumentRoot /home/volk/web/vi.dev
ServerAdmin webmaster@localhost
ErrorLog ${APACHE_LOG_DIR}/error.log
<Directory "/home/volk/web/vi.dev">
Require all granted
DirectoryIndex index.php index.html
</Directory>
</VirtualHost>
Подскажите что за колдовская сила заставляет ларваель работать без index.php в корневой папке сайта?
И каким образом сделать чтобы он заработал и у меня?
Спасибо за помощь. Похоже что у меня и правда допотопный сервер
оффтоп
у вас очень шикарный сайт и очень классные работы. Из секции "интерфейс" на вашем сайте я составил список того чему хочу научится)
я когда в форме через Input::get() их получаю то она экранированная
Как убрать экранирование в Laravel?
То-есть в базе данных есть запись вида "what\'s your name?" (с экранированными кавычками)
И когда я передаю эту запись в вид она так и остается со слешом.
Я пробовал заключать в тройные скобки, но все равно выводится вместе со слешом
есть ли какой нибудь ларавельский способ убирать экранирование кроме родного phpшного stripcslashes()?
Ну или что по этой теме можно почитать?
Спасибо.
у меня есть вот такая запись в базе данных (табличка users)
и вот такой метод контролера
public function login(){
if(Auth::attempt(['login'=>'admin','password'=>'123'])){
echo "Удалось!";
}
else
{
echo "Не удалось!";
}
return View::make('login');
}
И я пытаюсь авторизовать пользователя с помощью функции
но мне почему то выдает
"Не удалось!"
Совсем не понимаю в чем тут дело, подскажите пожалуйста почему не работает?
Страницы 1