OpenShift為近年來免費主機的熱門選項
雖然免費規格漸漸縮水,卻依然保持一定的運行水準,
不會恣意刪除帳戶,系統穩定性十分良好,
從探針檢測免費版的系統負載約15%左右,
如果是成功綁定Visa卡片可以免費開通Bronze方案,
系統負載約10%以下,並能開通SSL功能,
不須搭配CloudFlareSSL功能即可搭建https站點。
由於OpenShift目前只提供PHP5.3~5.4的版本,
若需要運行其他版本需要另行編譯,
kooker.jp站長提供一鍵安裝Nginx+PHP7腳本,
省去費神的安裝步驟。
由於系統為Nginx,
需將nginx.conf進一步配置方能使用WordPress固定網址、瀏覽器快取、Gzip壓縮等功能。
OpenShift官網 https://www.openshift.com
1.申請OpenShift服務並新增應用
請先註冊/ 登入OpenShift控制台
新增應用(下圖為已新增應用的介面示範),點選Add Application…
搜尋DIY,點選Do-It-Yourself 0.1
鍵入欲使用的網址
點選Create Application
顯示OpenShift的連線資訊
ssh://帳戶ID@您應用的網域.rhcloud.com
2.連線到OpenShift主機
為了便於管理OpenShift伺服器文件,
推薦使用WinSCP程序 http://www.azofreeware.com/2008/03/winscp-41-beta.html
請依序輸入到您使用的SSH連線系統,
由於OpenShift僅能透過金鑰進行交談式驗證,請先接續以下操作
點選Settings
請透過PuTTy Key Generator程序生成公鑰與私鑰
http://the.earth.li/~sgtatham/putty/latest/x86/puttygen.exe
詳細操作請參考 https://sofree.cc/openshift-teach-3/
到您的SSH連線程式加入.ppk私鑰用來驗證
https://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
3.執行Nginx與PHP7安裝腳本與後續配置
透過SSH連上的終端介面輸入
cd /tmp wget --no-check-certificate https://www.kooker.jp/p7.sh chmod 755 p7.sh ./p7.sh
腳本內容請參考 http://www.32.tf/176.html
大約半小時安裝完成,終端介面閒置一段時間將會自動斷開,即可開始配置站點。
編輯nginx.conf
位置 /var/lib/openshift/帳戶ID/app-root/data/conf/nginx.conf
以下配置用於WordPress固定網址,請置於sever{裡面}
if (-f $request_filename/index.html){ rewrite (.*) $1/index.html break; }
if (-f $request_filename/index.php){ rewrite (.*) $1/index.php; }
if (!-f $request_filename){ rewrite (.*) /index.php; }
以下配置用於瀏覽器快取+CORS(上半)與Gzip壓縮(下半),請置於sever{裡面}
location ~* \.(css|js|jpg|jpeg|gif|ico|png|bmp|pict|csv|doc|pdf|pls|ppt|tif|tiff|eps|ejs|swf|midi|mid|ttf|eot|woff|otf|svg|svgz|webp|docx|xlsx|xls|pptx|ps|class|jar)$ { expires 1y; } location ~* \.(eot|ttf|woff|woff2)$ { add_header Access-Control-Allow-Origin *; }
快取檔案格式參考 https://support.cloudflare.com/
gzip on; gzip_min_length 1k; gzip_buffers 4 16k; #gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml text/javascript application/x-httpd-php image/svg+xml; gzip_vary off; gzip_disable "MSIE [1-6]\.";
如果文件不存在,則禁止Nginx 將發送請求到後端PHP-FPM,避免主機受到惡意注入腳本攻擊,
方法如下:
開啟檔案app-root/data/etc/php.ini編輯
cgi.fix_pathinfo=0
安裝應用可能會遇到資料庫無法連線的問題,
務必留意資料庫位置並不在localhost,
可進入phpMyAdmin進行查詢資料庫IP,
寫入wp-config.php即可。
上方顯示伺服器: 資料庫IP:連接埠
由於OpenShift系統的SSL應在console進行配置,
如果是Bronze方案請直接將網域憑證domain.crt跟中間憑證root.crt合併後,
再一同與.key上傳到console的網域配置即可。
(若使用OpenShift原本提供的網域並不需要安裝SSL即可將站點轉成https,或透過CloudFlareSSL均可處理憑證問題)
請勿將WordPress一般設定直接啟用https連線,
容易出現無窮迴圈的問題,
建議安裝Really Simple SSL外掛,
透過該外掛修改站點與資料庫的https,
並將外來素材轉換成https,避免站點出現混和http的問題,
請留意該外掛的配置,應勾選stop .htaccess編輯,由外掛修改頁面內容到https即可。
Really Simple SSL 外掛頁面 https://wordpress.org/plugins/really-simple-ssl/