Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
погоди-ка, у тебя там вместо проекта симлинк лежит? у апача был какой-то параметр, при котором он не ходит по симлинкам, если они не принадлежат тому же пользователю, от которого он запущен…
вообще раз проект и так в home и под пользователем – логично было бы стартовать апача под тем же пользователем и назначит корнем хоста папку в /home. в таком случае /var/www и www-data вообще не нужны и даже мешают
Не в сети
замени 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)
Не в сети
я правильно сделал? в "родном" /public/index.php заменил содержимое на phpinfo(). Работает, разумеется.
Что именно работает? Что открывается по адресу /? По /hello?
В каком conf надо менять пути?
Там где у тебя <VirtualHost *:80>.
У меня, кстати, в процессе борьбы с Laravel откуда-то взялся .htaccess с содержимым
Тебе нужно убрать абсолютно всё и оставить минимум, то есть:
VirtualHost в конфиге Apache
К конфигу добавить правила из htaccess (и не использовать htaccess)
Поменять путь к index.php на новый, который указывает на новую простую папку (не ссылку) с правами 0777
В папке создать только 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
Не в сети
может он-то и самый правильный?
ну он-то правильный, но указанной проблемы не должно было быть и с прежним htaccess.
Не в сети
у апача был какой-то параметр, при котором он не ходит по симлинкам
но у меня в той папке не только laravel лежит и все это прекрасно работает. Да и laravel, в принципе, работает. Только не хочет запускать ::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>
Не в сети
а вот если выбросить из 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)
Не в сети
Это модуль апача мозд еб"т
Вот ваш залог счастья
sudo a2enmod rewrite
sudo service apache2 restart
В настройках хоста апача параметр AllowOverride поставить All
sudo service apache2 restart
Не в сети