這是我第一次嘗試將Laravel應用程序從本地環境遷移到遠程服務器。爲什麼在我的遠程服務器上遷移Laravel應用程序後,此路線不起作用?
所以基本上我已經上傳我的本地Laravel 5.4應用程序的全部內容在我的遠程服務器上的這個文件夾:
/var/www/html/HotelRegistration
然後我試圖打開此網址到瀏覽器(我的遠程服務器):
http://89.36.211.48/HotelRegistration/public/
以及如何看到標準的Laravel主頁出現(這是預期的,但我必須用自定義的頁面替換此頁面)。
的問題是,在我的的web.xml文件我已經把這些路線:
Route::get('/', function() {
return view('welcome');
});
Route::get('contact', function() {
return View::make('contact');
});
Route::post('contact', '[email protected]');
Route::resource('/registration', 'RegistrationController');
第一個是一個相關標準Laravel頁面正常工作,最後一項是:
Route::resource('/registration', 'RegistrationController');
和它應該處理HTTP GET朝向/註冊請求由這個RegistrationController類,該C ontroller類包含此指數()方法:
/**
* Metodo che mostra la pagina di registrazione di un nuovo utente albergatore.
* @return \Illuminate\Contracts\View\Factory|\Illuminate\View\View
*/
public function index(){
Log::info('index() START');
return view('/registration/index');
}
在打開該URL:
http://89.36.211.48/HotelRegistration/public/registration
應顯示一個註冊頁面。但是,正如您所看到的打開它,我獲得了未找到錯誤消息。
進入/var/www/html/HotelRegistration/storage/logs/laravel.log文件沒有什麼,我預計將在以前的方法控制的開始推杆日誌的輸出,所以它似乎它不會輸入這個方法。
奇怪的是,在我的本地主機系統上打開相同的URL(http://localhost/HotelRegistration/public/registration)它工作正常。
我想,也許它可能是一個路線問題(也許有些航線丟失),如果我在我的當地環境執行此statment:
php artisan route:list
我獲得:
+--------+-----------+----------------------------------+----------------------+------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+----------------------------------+----------------------+------------------------------------------------------+--------------+
| | GET|HEAD |/ | | Closure | web |
| | GET|HEAD | activate | | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | contact | | Closure | web |
| | POST | contact | | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | errors | errors | Closure | web |
| | POST | registration | registration.store | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | registration | registration.index | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | registration/create | registration.create | App\Http\Controllers\[email protected] | web |
| | DELETE | registration/{registration} | registration.destroy | App\Http\Controllers\[email protected] | web |
| | PUT|PATCH | registration/{registration} | registration.update | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | registration/{registration} | registration.show | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | registration/{registration}/edit | registration.edit | App\Http\Controllers\[email protected] | web |
+--------+-----------+----------------------------------+----------------------+------------------------------------------------------+--------------+
包含此路線:
| | GET|HEAD | registration | registration.index | App\Http\Controllers\[email protected] | web |
這應該是與我以前的索引()我的控制器的方法有關的路由。
但我發現它也對我遠程環境執行相同statment:
[email protected]:/var/www/html/HotelRegistration# php artisan route:list
+--------+-----------+----------------------------------+----------------------+------------------------------------------------------+--------------+
| Domain | Method | URI | Name | Action | Middleware |
+--------+-----------+----------------------------------+----------------------+------------------------------------------------------+--------------+
| | GET|HEAD |/ | | Closure | web |
| | GET|HEAD | activate | | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | api/user | | Closure | api,auth:api |
| | GET|HEAD | contact | | Closure | web |
| | POST | contact | | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | errors | errors | Closure | web |
| | GET|HEAD | registration | registration.index | App\Http\Controllers\[email protected] | web |
| | POST | registration | registration.store | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | registration/create | registration.create | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | registration/{registration} | registration.show | App\Http\Controllers\[email protected] | web |
| | PUT|PATCH | registration/{registration} | registration.update | App\Http\Controllers\[email protected] | web |
| | DELETE | registration/{registration} | registration.destroy | App\Http\Controllers\[email protected] | web |
| | GET|HEAD | registration/{registration}/edit | registration.edit | App\Http\Controllers\[email protected] | web |
+--------+-----------+----------------------------------+----------------------+------------------------------------------------------+--------------+
那麼可能是什麼問題呢?爲什麼在我的遠程環境下,這個URL(http://89.36.211.48/HotelRegistration/public/registration)似乎沒有像在本地那樣干擾?
可能是什麼問題?我錯過了什麼?我怎樣才能解決它?
試圖讓laravel工作在非虛擬主機設置只是浪費你的時間。 – apokryfos
@apokryfos問題是:我如何在我的遠程服務器上有一個虛擬主機?我的網址類似於89.36.211.48 – AndreaNobili
您需要一個DNS條目並將該條目映射到您的主機IP。這不是免費的,但你的時間可能不是免費的,所以這是一個折衷。 – apokryfos