Install iLyricsCloud on OpenShift
- tutorials
- (Updated at )
在 OpenShift 上建立 iLyricsCloud
首先您需要有 OpenShift 的帳號,以及已設定好 SSH Key 以能夠進行遠端登入。
過程中更新檔案會使用到 git,如果不想使用 git 仍是可以使用 FTP 的方式存取檔案,但皆不包含在本篇內容中,關於 OpenShift SSH, Git 請參考官方網站。
https://www.openshift.com/developers/remote-access
http://git-scm.com
建立 Application
在 OpenShift 中,您可以簡單的把 Application 當做是一個獨立的 Web server,而我們要在這個空的 Web server 上建立 PHP5/MySQL 的環境。
Applications Panel 中選擇 Add Application 來開始建立。
步驟 1,請選擇平台 PHP 5.4 或任何 PHP 5 以上版本皆可。
步驟 2,app 的基本設定。Public URL 會是這個 app 的名稱,也會是 OpenShift 產生的網址,填上想要的名字即可, 圖例建立的名稱是 ilyrics。OpenShift 可直接幫你將原始碼從 Git repo 拉一份過來,所以這邊接直貼上 iLyricsCloud 位於 Github 的網址 https://github.com/ethanliu/iLyricsCloud.git 可以省下一些下載上傳的動作。
步驟3,即 app 建立完成,會顯示這個 app 相關的 git 簡易入門,這些指令待會我們也會用到,但這裡可以先不予理會,直接往下進到 application overview page。
接著要安裝的是 MySQL 所以請點選 Add MySQL 5.5 進行安裝。
安裝完成將會看到 MySQL 的連線資訊,包括資料庫名稱、帳號、密碼等,一般狀況下你會需要先記下這些資料,不過配合 OpenShift 我們有更便利的使用方式,可以先不需要記下這些資料。
回到 overview 查看一下,確認有我們要的 PHP 及 MySQL 的環境了,請複製右上 Source Code 裡面的那一長串 ssh://xxxxx 的網址,至此我們已經完成 OpenShift 端的工作。
設定 iLyricsCloud
接下來便是 iLyricsCloud 的相關設定,首先我們需要將剛剛建立好的 app 的原始碼拉回到我們的電腦中,開啟命令列視窗,執行以下指令,即步驟 3 提示的內容。
# git clone [OpenShift Source Code 網址] [目的資料夾] > git clone ssh://5389bc7c5973...rhcloud.com/~/git/ilyrics.git/ ~/Documents/ilyrics-demo
這表示將 OpenShift 上的原始碼下載到 ~/Documents/ilyrics-demo 這個資料夾,如果不設定則會建立 APPNAME 資料夾,依設定的名稱而定,執行過程中會看到如下的訊息。
Cloning into 'ilyrics-demo'... remote: Counting objects: 425, done. remote: Compressing objects: 100% (171/171), done. remote: Total 425 (delta 242), reused 425 (delta 242) Receiving objects: 100% (425/425), 181.18 KiB | 177.00 KiB/s, done. Resolving deltas: 100% (242/242), done.
完成後,開啟 ~/Documents/ilyrics-demo 資料夾,就會看到 iLyricsCloud 的程式碼,與直接從 Github 上下載的版本相同。
在這個資料夾中,將 config.sample.php 更名,或是複製並命名為 config.php,接著開啟 config.php 進行編輯,安全起見,我們先把預設的 iLyricsCloud 帳號密碼做更換
define('ADMIN_USER', 'admin'); define('ADMIN_PASS', 'admin');
將兩個 "admin" 更改為其他內容。再來更新資料庫的設定,請找到下面這兩行
define('DATABASE_DSN', 'sqlite:' . dirname(__FILE__) . '/cache/cache.db'); // define('DATABASE_DSN', 'mysql:host=127.0.0.1;port=3306;dbname=;user=;password=;');
更換成下面的內容,直接複製則上即可。這裡會看到我們改使用 mysql 而不是使用 sqlite,並且使用 OpenShift 的環境便數來取得資料庫的帳號資料,而並非直接設定。
// define('DATABASE_DSN', 'sqlite:' . dirname(__FILE__) . '/cache/cache.db'); $host = getenv('OPENSHIFT_MYSQL_DB_HOST'); $port = getenv('OPENSHIFT_MYSQL_DB_PORT'); $dbname = getenv('OPENSHIFT_APP_NAME'); $user = getenv('OPENSHIFT_MYSQL_DB_USERNAME'); $passwd = getenv('OPENSHIFT_MYSQL_DB_PASSWORD'); define('DATABASE_DSN', "mysql:host={$host};port={$port};dbname={$dbname};user={$user};password={$passwd};");
{$host} 等 5 項也可以直接填入實際的內容。存檔後,我們要準備把更改過的檔案再上傳回 OpenShift,請再回到剛剛的命令視窗。
> git add config.php -f > git commit -m "my config.php" [master 8a05599] my config.php 1 file changed, 46 insertions(+) create mode 100644 config.php > git push Counting objects: 4, done. Delta compression using up to 2 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 824 bytes | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: Stopping MySQL 5.5 cartridge remote: Stopping PHP 5.4 cartridge (Apache+mod_php) remote: Waiting for stop to finish remote: Waiting for stop to finish remote: Building git ref 'master', commit 8a05599 remote: Preparing build for deployment remote: Deployment id is 5a066d98 remote: Activating deployment remote: Starting MySQL 5.5 cartridge remote: Starting PHP 5.4 cartridge (Apache+mod_php) remote: Application directory "/" selected as DocumentRoot remote: ------------------------- remote: Git Post-Receive Result: success remote: Activation status: success remote: Deployment completed with status: success To ssh://[email protected]/~/git/ilyrics.git/ ceb7691..8a05599 master -> master
更新完成之後,我們就可以打開 http://ilyrics-creativecrap.rhcloud.com/admin/ 也就是一開始建立的 Public URL 然後使用剛剛更改後的帳號密碼登入 iLyricsCloud 的管理界面,此時會看到 Install database 的提示字樣,如果沒有看到的話,可能是上面更改的內容有錯,請再重複上述的動作確認修改的內容正確,點擊 Install 後,成功則會看到 Install success 就完成了。可以點選單的 Search 打開搜尋界面,試試看搜尋應該就會顯示找到的歌詞或專輯圖片網站。
iLyricsWidget 設定的 iLyricsCloud 網址填入 http://ilyrics-creativecrap.rhcloud.com/q.php 就可以開始使用自動搜尋的功能了。
Summary
本篇因為是偵對在架在 OpenShift 上所以有些設定作業,實際上安裝 iLyricsCloud 僅需要更改資料庫設定的部份。文中的 ilyrics-creativecrap.rhcloud.com 及 app 名稱 ilyrics,請替換成您的資料不要直接使用。
若不想使用 Git 在步驟 2 的 Source Code 即可不用填寫,但需自行至 https://github.com/ethanliu/iLyricsCloud 下載原始碼,並透過 FTP 或其他方式上傳,包含後續更新檔案等等。