ijd8.COM

A simple blog for an old Ma Nong.

在OpenShift 上DIY 一个PHP运行环境:Nginx+MYSQL+PHP+php-fpm

Permalink

上次已经在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

openshift-php-nginx.gif

Demo OpenShift PHP nginx demo

-END-

Write a Comment

Submit Comment Login
Based on Golang + fastHTTP + sdb | go1.16.7 Processed in 0ms