上次已经在OpenShift 上DIY 一个Tornado 程序了,OpenShift 上的php 环境默认是Apache,个人更喜欢Nginx,没有什么特别理由。
安装Nginx
注意,路径一定要在$OPENSHIFT_DATA_DIR下,否则安装时会有权限问题或安装后莫名丢失情况。
1
2
3
4
5
6
7
8
9
10
11
cd $OPENSHIFT_DATA_DIR
wget http://nginx.org/download/nginx-1.4.3.tar.gz
tar zxf nginx-1.4.3.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
cd nginx-1.4.3
./configure --prefix=$OPENSHIFT_DATA_DIR --with-pcre=$OPENSHIFT_DATA_DIR/pcre-8.31
make && make install
配置Nginx
找到nginx.conf 文件,$OPENSHIFT_DATA_DIR/conf/nginx.conf
需要修改的地方:
1
listen 127.6.1.1:8080;
改为你 $OPENSHIFT_DIY_IP 的值。还有静态文件要设置,如网页调用的静态文件和用户上传的静态文件,设置root 要写上具体值。
添加:
1
2
3
4
5
6
7
location ~ \.php$ {
root $OPENSHIFT_DATA_DIR/html;
fastcgi_pass $OPENSHIFT_DIY_IP:15678;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $OPENSHIFT_REPO_DIR/diy$fastcgi_script_name;
include fastcgi_params;
}
其中 $OPENSHIFT_DATA_DIR,$OPENSHIFT_DIY_IP, $OPENSHIFT_REPO_DIR都要填写自己的具体值。
15678 是一个端口,足够大就可以。
安裝PHP
这里编译花的时间较长,估计20分钟。
1
2
3
4
5
6
7
8
9
10
cd $OPENSHIFT_DATA_DIR
wget http://www.php.net/distributions/php-5.5.5.tar.gz
tar zxf php-5.5.5.tar.gz
mkdir $OPENSHIFT_DATA_DIR/PHP5.5
cd php-5.5.5
./configure --with-mysql=mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --prefix=$OPENSHIFT_DATA_DIR/PHP5.5 --enable-fpm --with-zlib --enable-xml --enable-bcmath --with-curl --with-gd --enable-zip --enable-sockets
make
make install
cp $OPENSHIFT_TMP_DIR/php-5.5.5/php.ini-production $OPENSHIFT_DATA_DIR/PHP5.5/lib/php.ini
vi $OPENSHIFT_DATA_DIR/PHP5.5/lib/php.ini
把
1
2
user = nobody
group = nobody
改为
1
2
;user = nobody
;group = nobody
把listen =127.0.0.1:9000 改为listen =$OPENSHIFT_DIY_IP:15678 其中$OPENSHIFT_DIY_IP 是自己的ip,15678是上面在nginx.conf 里设置的端口。
修改启动文件
start,$OPENSHIFT_REPO_DIR$/.openshift/action_hooks/start
1
2
$OPENSHIFT_DATA_DIR/sbin/nginx
$OPENSHIFT_DATA_DIR/PHP5.5/sbin/php-fpm
stop,$OPENSHIFT_REPO_DIR$/.openshift/action_hooks/stop
1
2
killall nginx
killall php-fpm
Mysql 安装
在openshift web页面安装或在git 里通过rhc 安装即可。
最后看图片
图片:openshift-php-nginx.gif
-END-