Я довольно новичок в PHP и, кроме того, в Laravel, и я довольно отчаянно пытаюсь развернуть приложение Laravel 5.4, которое отлично работает на моей локальной среде на моем удаленном сервере Linux.
Поэтому я думаю, что это связано с конфигурацией виртуального хоста или чем-то вроде этого (возможно, также связано с файлом .htaccess )
В моей локальной среде (я использую XAMPP в Windows) я установил этот виртуальный хост в файл C: \ xampp \ apache \ conf \ extra \ httpd-vhosts.conf :
<VirtualHost *:80> DocumentRoot "C:/xampp/htdocs/HotelRegistration/public" ServerName laravel.dev </VirtualHost>
Поэтому, открыв URL-адрес laravel.dev, я получаю стандартную домашнюю страницу Laravel (я еще не заменил ее целевой страницей).
Затем, если я открою этот URL-адрес: http://laravel.dev/registration
Я получаю страницу регистрации пользователя, разработанную мной, потому что у меня есть этот маршрут в моем файле web.php в моем проекте:
Route::resource('/registration', 'RegistrationController');
Затем в мой RegistrationController.php есть этот метод, показывающий представление ресурсов / views / registration / index.blade.php
public function index(){ return view('/registration/index'); }
Все работает нормально.
Теперь я загрузил этот веб-сайт Laravel на мой удаленный Linux-сервер в эту папку: / var / www / html / HotelRegistration
Но теперь моя проблема в том, что в этой удаленной среде у меня нет виртуального хоста (исправьте меня, если я делаю неправильное утверждение: из того, что я понял, виртуальный хост используется в локальной среде для имитации домена, который Laravel должен указывать на общедоступная папка, правильно ли это рассуждение?)
Во всяком случае, это URL-адрес общей папки моего развернутого веб-сайта на моем удаленном сервере:
http://89.36.211.48/HotelRegistration/public/
Как вы можете увидеть, открывая страницу назначения Laravel правильно, проблема в том, что я могу получить доступ к предыдущей странице регистрации , единственный способ, который я нашел, – открыть этот URL:
http://89.36.211.48/HotelRegistration/public/index.php/registration
но это довольно ужасно и, прежде всего, при регистрации регистрационной формы, он генерирует запрос POST по этому URL-адресу http://89.36.211.48/registration, который заканчивается ошибкой 404 Not Found .
Поэтому я думаю, что это зависит от того, что на этом удаленном сервере я не могу использовать виртуальный хост, который имитирует домен (как у меня есть в моей локальной среде), но я не уверен в этом.
Что я могу сделать, чтобы решить эту ситуацию? Считаете ли вы, что использование эффективного домена (что-то вроде www.myregistration.com) указывает на этот каталог моего удаленного сервера. Http://89.36.211.48/HotelRegistration/public/ Я могу решить эту проблему?