近日申請了openshift的paas空間,很霸氣的支持n種語言,至於用不用得上就是兩說了,空間申請的教程不在本文之列,有興趣的同志可以再本站稍後放出的另一篇文章中給出詳細介紹,本文是建立在你已經取得openshift賬號以及空間權限的基礎上,並且已經完成openshift管理軟件的下載和安裝,好了,廢話不多說,好戲開場。
本文其實集合了若干關於建立openshift的博文,再集合了本人一些特殊的需求,比如zend支持,和php版本此次為5.2.17,5.3版本的不用討論直接一條命令就可建立,在命令提示符cmd窗口輸入:rhc app create php5.3 name,其中name為你想建立的應用名稱,以後域名就會以此開頭,之後進入web管理界面添加mysql數據庫。
首先搭建nginx1.2服務器,以下操作均在ssh命令窗口下執行:
cd $OPENSHIFT_DATA_DIR
wget http://nginx.org/download/nginx-1.2.2.tar.gz
tar zxf nginx-1.2.2.tar.gz
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.31.tar.bz2
tar jxf pcre-8.31.tar.bz2
#開始編譯nginx
makedir nginx1.2
cd nginx-1.2.2
./configure --with-pcre=$OPENSHIFT_DATA_DIR/pcre-8.31 --prefix=$OPENSHIFT_DATA_DIR/nginx1.2
make
make install
cd $OPENSHIFT_DATA_DIR
#配置NGINX
vim nginx1.2/conf/nginx.conf
編輯下端內容:
http { …
server {
listen 127.7.192.129:8080;
server_name 127.7.192.129;
…
}
…
}
listen和server_name的IP和端口分別由echo $OPENSHIFT_DIY_IP、echo $OPENSHIFT_DIY_PORT
得到
location / {
root html;
index index.php index.html index.htm;
}
要更改網站根目錄請修改root html(html為網站根目錄路徑,修改為實際路徑即可),並在index中添加index.php,服務器就會自動識別以php結尾的主頁,不然有可能會出現404錯誤,其中html由$OPENSHIFT_REPO_DIR/diy得到;
要啟用nginx對php的支持去掉以下片段的注釋,並
location ~ .php$ {
root $OPENSHIFT_REPO_DIR/diy;
fastcgi_pass $OPENSHIFT_DIY_IP:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
$OPENSHIFT_REPO_DIR, $OPENSHIFT_DIY_IP都要填寫自己的具體值,端口號默認9000也可任意指定,夠大即可,不過要記住哦,下面的配置會用到。
另外在啟動NGINX前 請killall ruby,不然會因端口占用而失敗
首先在$OPENSHIFT_DATA_DIR/nginx.1.2目錄中建立start.sh和restart.sh,使用命令
vim start.sh #輸入以下內容後,esc鍵退出編輯,輸入:wq即可保存退出(包含冒號)。
start.sh 內容為
#!/bin/bash
# start nginx
killall ruby
$OPENSHIFT_DATA_DIR/nginx1.2/sbin/nginx
Start.sh建立完畢後,
vim restart.sh #輸入以下內容,esc鍵退出編輯,輸入:wq即可保存退出(包含冒號)。
restart.sh 內容為
#!/bin/bash
# restart nginx
killall ruby
killall nginx
$OPENSHIFT_DATA_DIR/nginx1.2/sbin/nginx
千萬別忘記賦予start.sh和restart.sh可執行權限:
chmod +x start.sh restart.sh
在~/app-root/repo/.openshift/action_hooks目錄中的start末尾加入
$OPENSHIFT_DATA_DIR/nginx1.2/start.sh
至此nginx搭建完畢,在nginx1.2路徑輸入命令restart.sh,輸入一個不存在url,如果看到nginx的404頁面說明你成功了。
本文鏈接:http://www.kxzhp.com/info/2013/11/26/9.html
下面開始編譯php5.2.17,至於5.2詳細版本隨各位取捨了,17是5.2的最後一個版本。
wget http://museum.php.net/php5/php-5.2.17.tar.gz
wget http://php-fpm.org/downloads/php-5.2.17-fpm-0.5.14.diff.gz
mkdir PHP5.2
tar zxf php-5.2.17.tar.gz
gzip -cd php-5.2.17-fpm-0.5.14.diff.gz | patch -d php-5.2.17 -p1
cd php-5.2.17
./configure --with-mysql=/var/lib/openshift/user/mysql --prefix=$OPENSHIFT_DATA_DIR/PHP5.2 --enable-fpm
--enable-mbstring --with-zlib --enabl
e-xml --enable-bcmath --with-curl --with-gd --enable-zip --enable-sockets --with-libdir=lib64 --with-png
-dir=/usr --with-jpeg-dir=/usr --with-config-file-path=$OPENSHIFT_DATA_DIR/PHP5.5/etc --with-pcre --enable-fastcgi
#要將mysql中的user換成自己的id!編譯大概需要半小時左右時間,取決於你的網速
make
make install
#又是半小時 到一個小時不等 = = ,下面是將文件php.ini-dist文件拷貝並重命名為php.ini文件
cp php.ini-dist $OPENSHIFT_DATA_DIR/PHP5.2/etc/php.ini
下面要配置php-fpm,本文鏈接:http://www.kxzhp.com/info/2013/11/26/9.html
vim $OPENSHIFT_DATA_DIR/PHP5.2/etc/php-fpm.conf
標簽listen_address是配置fastcgi進程監聽的IP地址以及端口,默認是127.0.0.1:9000。
$OPENSHIFT_DIY_IP:9000 ,$OPENSHIFT_DIY_IP要填自己的具體值,端口要跟在nginx中配置php的端口一致。
標簽allowed_clients用於設置允許訪問FastCGI進程解析器的IP地址。如果不在這裡指定IP地址,Nginx轉發過來的PHP解析請求將無法被接受。
127.0.0.1,$OPENSHIFT_IP_DIY,$OPENSHIFT_IP_DIY填寫自己的具體值,一定要添加自己的ip值,不然還是會無法解析php腳本,出現404錯誤。
並在$OPENSHIFT_DATA_DIR/nginx1.2/restart.sh中加入
$OPENSHIFT_DATA_DIR /PHP5.5/sbin/php-fpm restart
執行 restart.sh,nginx+php配置大功告成。
最後要加入Zend optimizer擴展,以支持用Zend加密過的程序,
cd $OPENSHIFT_DATA_DIR
wget http://downloads.zend.com/optimizer/3.3.9/ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
tar zxf ZendOptimizer-3.3.9-linux-glibc23-x86_64.tar.gz
cp ZendOptimizer-3.3.9-linux-glibc23-x86_64/data/5_2_x_comp/ZendOptimizer.so $OPENSHIFT_DATA_DIR/PHP5.2/ZendOptimizer.so
vi $OPENSHIFT_DATA_DIR/PHP5.2/etc/php.ini
在文件末尾添加
[ZendOptimizer]
zend_optimizer.optimization_level=1
zend_extension="$OPENSHIFT_DATA_DIR/PHP5.5/ZendOptimizer.so"
這裡的$OPENSHIFT_DATA_DIR要填寫自己具體的路徑,執行nginx1.2中的restart.sh,上傳探針驗證zend optimizer安裝是否
成功,本文探針地址http://diy11-kxzhp.rhcloud.com/tz.php