by Devin Yang

建立於: 8年前 ( 更新: 8年前 )

前言

在智邦的Linux 7.0平台安裝Laravel 5.4,成功執行案例分享,
因為原本是舊版的PHP執行環境,第一次可以免費轉移至新版本,
因此開了一個測試的php 7.0環境給我們測試,小調整後,
Laravel的環境確實可在智邦的代管php 7.0.x主機上執行,
本文介紹,我如何在智邦成功的執行Laravel的網站過程。

以下內容僅供參考

請一定要求試用,我無法保證您的環境是可正常執行的。
 

上傳

一、透過FTP上傳Laravel整個Project到主機商,原智邦上面的www更名為www_old,上傳完成後將Laravel的public資料夾更名為www。


設定與調整

二、智邦使用的是Apache伺服器,.htaccess檔不可以用預設的。
使用官網提供的簡易的版本,確認您的public/.htaccess的檔案像下方這樣:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

三、強制轉換成SSL(非必要),如果您的網站有使用HTTPS。
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]


四、這裡要修正public_path();讓他印出正確的路徑,

舉例: 智邦的網站根目錄是/raid/vhost/example.com.tw/www (用echo __DIR__;顯示時),
但是Laravel的public_path();會變成.../raid/vhost/example.com.tw/public, 不正確,
因此可透過下方的設定,讓public_path()顯示為/raid/vhost/example.com.tw/www,
智邦Apache主機所設定的網站根目錄。

我們可透過調整public/index.php的內容,來修正上述的問題。
$app = require_once __DIR__.'/../bootstrap/app.php';
//  設定public資料夾返回目前的目錄(即是www)
$app->bind('path.public', function() {
return __DIR__;
});

其他需注意的可能是filessystem的目錄要調整。
.env資料庫連線等相關調整。

 

Tags: web-hosting laravel

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


dlaravel

使用docker in docker建立D-Laravel測試環境。

D-Laravel是一個極易使用並且極有彈性的Laravel開發環境,只要您是Mac的使用者,就算不懂Docker也可以透過他來建立Laravel的專案,進行開發,由於最近加入.env的功能新功能時,急者push,卻沒有完整測試,搞出了一堆新的Bug,所以,這次新增了一個新的dlaravel_test,bash的測試工具,透過doceker in docker的方式來跑測試。確保D-Laravel的每一次釋出都能是一個穩定的版本。

dlaravel

哈,我成功讓D-Larave在樹莓派ARM的環境執行囉

這次買樹莓派是覺的這個東西很好玩,另外就是我家中的Mac環境太新了,無法正常編譯Line Simple Beacon, 透過樹莓派,輕鬆易用,環境上也不會有什麼問題,當然還有更多更多的運用。 但身為D-Laravel的作者,當然要來順便試試看.....

laravel,dotenv,seo

我如何依子域名動態載入Laravel不同的dotenv檔

開始前先來抱怨一下,本來我的網站可以依使用者的瀏覽器自動顯示不同的語系的。這有何不可,但Google的SEO似乎不喜歡這麼搞,他建議每種語言使用不同的網址,不要用cookie或瀏覽器設定來調整網頁內容,好吧那我只能乖乖就範了。他的建議作法,第一種方案:依國家區分,像是example.tw或example.de這真的天方夜譚怎麼可能,要嘛收購被註冊的域名,要不然取個全球沒人會取的怪域名還比較有機會。第二種方案:用子域名區分,這正式我準備要做的,等等來說明在Laravel中怎麼弄。第三種方案:example.com/tw/ 之類的,Apple好像就這麼弄的。第四種方案:site.com?loc=tw之類,不建議使用,確實我也覺的這個不是一個好主意。