laravel php artisan serve команда работает, но url localhost не работает в Ubuntu 18.10
Авторизоваться через маршрут localhost/project/public/login
URL показывает ошибку:
Запрошенный URL /test/public/login не найден на этом сервере. Сервер Apache/2.4.34 (Ubuntu) на локальном хосте, порт 80
Но с помощью команды php artisan serve она работает отлично.
Что может быть не так?
1 ответ
Наиболее частая ошибка в этой ситуации связана с невозможностью mod_rewrite в apache сделать это:
sudo a2enmod rewrite
systemctl restart apache2
Решено : ОС: убунту 18.10
файл /etc/apache2/apache2.conf
добавьте эту строку в этот файл apache2.conf:
<Directory /var/www/html/> AllowOverride all </Directory>
Создайте файл.env и также запустите:
php artisan key:generate
После создания файла.env и генерации ключа запустите приведенный ниже код:
php artisan cache:clear
php artisan config:clear
После этого, если у вас возникнут проблемы, вы можете проверить вход в Apache /var/log/apache/error.log
для получения дополнительной информации об ошибках. Если есть ошибка вmod_rewrite
, Сделайте это для этого:
a2enmod rewrite
systemctl restart apache2
Есть много причин, по которым ваш локальный хост не работает. Следующее может быть одной из причин:
1.Убедитесь, что в файле /etc/apache2/sites-available/your-conf.conf есть следующие вещи:
ServerName www.your-url.test
ServerAlias your-url.test
ServerAdmin webmaster@localhost
DocumentRoot /your-path/your-project/public
<Directory /your-path/your-project>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Проблема может быть в вашей версии PHP. В нашей машине есть два php:
1. For CLI(command line interface) 2. For apache server
Вашему приложению laravel может потребоваться более высокая или более низкая версия php на сервере apache. Чтобы исправить это, либо обновите версию php на сервере apache до требуемой версии, либо настройте fpm для своих проектов. Тогда ваш локальный хост начнет работать.
В вашем приложении laravel может быть ошибка. Для проверки используйте команду: sudo tail -f /var/log/apache2/error.log
После нажатия этой команды вы увидите ошибки, которые выдает ваше приложение laravel.
Но поскольку ваше приложение laravel работает нормально с помощью команды serve, поэтому, скорее всего, проблема в вашем случае будет из-за разных версий PHP в CLI и сервере apache (интерфейс). Поэтому вам следует либо настроить fpm, либо обновить или понизить версию php сервера apache.
У меня была такая же проблема, и я исправил ее, настроив fpm для своих проектов. Благодарность