架設於 OpenShift

OpenShift 是 RedHat 公司推出的平台即服務 (PaaS) 的一個網站,提供免費額度可以自由使用。可以在上面新增已經預先提供好的套裝平台 (例如 PHP),再將程式上傳於其上便可以上線。

本頁面著重在解釋 8th.Release 如何修改以適用在 OpenShift 上。本頁面假設您已經熟悉如何於 OpenShift 建立虛擬機器、Git 操作等相關知識。

Git clone

請先將機器上的設定跟環境先下載下來。

上傳 code

將程式解壓到 php 目錄即可。

修改 config

因為 OpenShift 的特性,需要特別修改 config 的一些設定:

<?php
// 只有 OPENSHIFT_DATA_DIR 才可以寫入,其他地方皆為唯讀
define("STORAGE_PATH", $_ENV['OPENSHIFT_DATA_DIR']);
 
// 建議使用 local 或 normal
define("FILEIO_BACKEND", 'local');
 
// 建議使用 SQLite3,資料庫檔案及資料表名稱則可以自訂
define("CONNECTION_STRING", 'sqlite3://'.STORAGE_PATH.'pixmicat.db3/imglog/'); 
 
// 改為0可以只產生 index.htm 檔案,對建立連結比較簡單
define("STATIC_HTML_UNTIL", 0);
?>

增加 action hook

因為 OPENSHIFT_DATA_DIR 並無法直接被公開存取,因此需要建立連結。底下提供簡單的作法:

.openshift/action_hooks/post_deploy

#!/bin/bash

echo "Post deploy: Create static links"
ln -s ${OPENSHIFT_DATA_DIR}src ${OPENSHIFT_REPO_DIR}php/src
ln -s ${OPENSHIFT_DATA_DIR}thumb ${OPENSHIFT_REPO_DIR}php/thumb
ln -s ${OPENSHIFT_DATA_DIR}index.htm ${OPENSHIFT_REPO_DIR}php/index.htm

這個檔案必須要以 Unix 換行格式 (+LF) 儲存,並且要給予對應權限。參考 OpenShift 手冊: OpenShift Origin Cartridge Developer’s Guide 8.1. Notes on Script Execution

給予權限

git update-index —chmod=+x .openshift/action_hooks/post_deploy

或者 TortoiseGit 對 post_deploy 按右鍵,也有對應設定。

git_chmod.png

Git push

將修改推到遠端 Git,瀏覽 default.php 初始化,再將 default.php 刪除,Git push。

參見

討論

新增一則回應
登入為 Wikidot 使用者
(將不會發佈)
- +
除非特別註明,本頁內容採用以下授權方式: Creative Commons Attribution-Noncommercial-Share Alike 2.5 License.