Laravel по-русски

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

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

#26 07.07.2017 13:03:04

Re: новичок: Route::get не находит шаблон запроса

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

вообще раз проект и так в home и под пользователем – логично было бы стартовать апача под тем же пользователем и назначит корнем хоста папку в /home. в таком случае /var/www и www-data вообще не нужны и даже мешают

Не в сети

#27 07.07.2017 13:22:46

Re: новичок: Route::get не находит шаблон запроса

замени index.php на простой <?php phpinfo();

я правильно сделал? в "родном" /public/index.php заменил содержимое на phpinfo(). Работает, разумеется. Вернул, как было

поменяй пути в conf и htaccess

вот тут я не понял. В каком conf надо менять пути? Поменял в /public/.htaccess (стал он такой)

Options +FollowSymLinks
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ /var/www/index.php [L]

как подхватывал /public/index.php, так и подхватывает. Что не так сделал?
У меня, кстати, в процессе борьбы с Laravel откуда-то взялся .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>

может он-то и самый правильный?

Изменено mokynis (07.07.2017 13:25:50)

Не в сети

#28 07.07.2017 13:33:44

Re: новичок: Route::get не находит шаблон запроса

я правильно сделал? в "родном" /public/index.php заменил содержимое на phpinfo(). Работает, разумеется.

Что именно работает? Что открывается по адресу /? По /hello?

В каком conf надо менять пути?

Там где у тебя <VirtualHost *:80>.

У меня, кстати, в процессе борьбы с Laravel откуда-то взялся .htaccess с содержимым

Тебе нужно убрать абсолютно всё и оставить минимум, то есть:

  1. VirtualHost в конфиге Apache

  2. К конфигу добавить правила из htaccess (и не использовать htaccess)

  3. Поменять путь к index.php на новый, который указывает на новую простую папку (не ссылку) с правами 0777

  4. В папке создать только index.php с вызовом phpinfo()

Вроде такого:

<VirtualHost *:80>
  DocumentRoot "/var/www/temproot"
  ServerName laravel.dev

  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule ^ index.php [L]

  <Directory "/">
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

И папка:

mkdir /var/www/temproot
echo "<?php phpinfo();" >/var/www/temproot/index.php
chmod -R 0777 /var/www/temproot

Дальше попробовать открыть / и /hello.

curl laravel.dev
curl laravel.dev/hello

Не в сети

#29 07.07.2017 13:34:39

Re: новичок: Route::get не находит шаблон запроса

может он-то и самый правильный?

ну он-то правильный, но указанной проблемы не должно было быть и с прежним htaccess.

Не в сети

#30 07.07.2017 13:40:42

Re: новичок: Route::get не находит шаблон запроса

у апача был какой-то параметр, при котором он не ходит по симлинкам

но у меня в той папке не только laravel лежит и все это прекрасно работает. Да и laravel, в принципе, работает. Только не хочет запускать ::get к пути, которого физически нет. А должен, если верить описаниям

Не в сети

#31 07.07.2017 14:00:18

Re: новичок: Route::get не находит шаблон запроса

сделал, как написал Proger_XP. Результат

curl laravel.dev
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
<hr>
<address>Apache/2.4.10 (Debian) Server at laravel.dev Port 80</address>
</body></html>

Не в сети

#32 07.07.2017 14:19:29

Re: новичок: Route::get не находит шаблон запроса

а вот если выбросить из laravel.dev.conf строки, взятые из .htaccess, то curl laravel.dev работает, а curl laravel.dev/hello ожидаемо не находит каталог hello
Или туда, в /var/www/tmproot еще и саму директорию с laravel надо было записать? (уже на все готов)
PS
laravel.dev.conf-файл конфигурации сайта laravel.dev, лежит в sites-available

Изменено mokynis (07.07.2017 15:15:47)

Не в сети

#33 05.10.2017 21:11:24

Re: новичок: Route::get не находит шаблон запроса

Это модуль апача мозд еб"т

Вот ваш залог счастья

sudo a2enmod rewrite
sudo service apache2 restart

В настройках хоста апача параметр AllowOverride поставить All

sudo service apache2 restart

Не в сети

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