Openshift使用DIY安装部署LNMP运行环境

知识点:
OpenShift是redhat公司推出的平台即服务(PaaS)云计算服务平台,Openshift面向开源开发人员,使开发人员可以构建、测试、运行和管理他们的应用。广泛支持多种编程语言和框架,包括Java PHP Ruby Python Node.js Drupal WordPress等。还可使用Do-It-Yourself框架,自己安装部署所需的运行环境。
DIY安装部署 Nginx/Tengine + PHP + MYSQL 运行环境
1. 首先注册 Openshift 账号;
2. 然后在控制面板中的 Applications 标签点击 Add Application;
3. 选择 Do-It-Yourself 0.1 创建新应用;
4. 进入新建的应用,添加MySQL;
5. SSH连接到Openshift;
6. 运行 env 命令,查看环境变量:
$OPENSHIFT_DIY_IP
$OPENSHIFT_DIY_PORT
$OPENSHIFT_MYSQL_DB_HOST
$OPENSHIFT_MYSQL_DB_USERNAME
$OPENSHIFT_MYSQL_DB_PASSWORD
$OPENSHIFT_MYSQL_DB_URL
$OPENSHIFT_DATA_DIR
$OPENSHIFT_REPO_DIR
7. 下载相关软件并解压缩,以及编译安装:
cd $OPENSHIFT_DATA_DIR
# 下载jemalloc用于内存管理,Nginx/Tengine编译需要
wget http://www.canonware.com/download/jemalloc/jemalloc-3.6.0.tar.bz2
tar -xjf jemalloc-3.6.0.tar.bz2
rm -rf jemalloc-3.6.0.tar.bz2
# 下载pcre,Nginx/Tengine编译需要
ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
wget -c ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.38.tar.gz
tar -zxvf pcre-8.38.tar.gz
rm -rf pcre-8.38.tar.gz
# 下载Tengine并编译安装
git clone git://github.com/alibaba/tengine.git
cd tengine
./configure \
--prefix=$OPENSHIFT_DATA_DIR/nginx \
--with-pcre=$OPENSHIFT_DATA_DIR/pcre-8.38 \
--with-jemalloc=$OPENSHIFT_DATA_DIR/jemalloc-3.6.0 \
--with-ipv6 \
--with-http_v2_module \
--with-http_realip_module \
--with-http_addition_module=shared \
--with-http_sysguard_module=shared \
--with-http_image_filter_module=shared \
--with-http_footer_filter_module=shared \
--with-http_trim_filter_module=shared \
--with-http_memcached_module=shared \
--with-http_empty_gif_module=shared

# if jemalloc >=4, then add -lrt FLAG to Makefile, Link against librt for clock_gettime(2) if glibc < 2.17

make
make dso_install
make install
# 修改 Tengine 配置文件 nginx.conf 的参数:
cd $OPENSHIFT_DATA_DIR/nginx/conf
vi nginx.conf
---------------------
worker_processes  2;
pid        logs/nginx.pid;
listen     $OPENSHIFT_DIY_IP:$OPENSHIFT_DIY_PORT;
root       $OPENSHIFT_REPO_DIR;
fastcgi_pass   unix:$OPENSHIFT_DATA_DIR/php/var/run/php-cgi.sock;
———————
注:$OPENSHIFT_DIY_IP,$OPENSHIFT_DIY_PORT,$OPENSHIFT_DATA_DIR,$OPENSHIFT_REPO_DIR 修改为上述 env 命令查看的值。
# 下载所需的 PHP 版本,编译安装。例如: PHP 5.6.5
wget -c -O php-5.6.5.tar.gz http://php.net/get/php-5.6.5.tar.gz/from/this/mirror
tar -zxvf php-5.6.5.tar.gz
cd php-5.6.5
./configure \
--prefix=$OPENSHIFT_DATA_DIR/php \
--with-config-file-path=$OPENSHIFT_DATA_DIR/php/etc \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-embedded-mysqli=shared \
--enable-pdo \
--enable-fpm \
--with-zlib \
--enable-xml \
--enable-bcmath \
--with-curl \
--with-gd \
--enable-zip \
--enable-mbstring \
--enable-sockets \
--enable-ftp \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-libxml-dir=/usr \
--disable-rpath \
--enable-shmop \
--enable-sysvsem \
--enable-sysvshm \
--enable-sysvmsg \
--enable-inline-optimization \
--enable-mbregex \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--enable-ftp \
--enable-calendar \
--enable-exif \
--enable-zip \
--with-gettext \
--with-xmlrpc \
--with-xsl \
--with-bz2 \
--enable-wddx \
--enable-opcache \
--without-pear 

# if memory<1G, then add --disable-fileinfo
# if php>=7 delete --with-mysql=mysqlnd

make
make install

cp -f php.ini-production $OPENSHIFT_DATA_DIR/php/etc/php.ini
cp -f $OPENSHIFT_DATA_DIR/php/etc/php-fpm.conf.default OPENSHIFT_DATA_DIR/php/etc/php-fpm.conf
# 修改 php-fpm.conf 下面的参数
cd $OPENSHIFT_DATA_DIR/php/etc
vi php-fpm.conf
---------------------
pid = run/php-fpm.pid
listen = var/run/php-cgi.sock
pm = ondemand
;user = nobody
;group = nobody
---------------------
# 修改 php.ini 下面参数:
vi php.ini
---------------------
cgi.fix_pathinfo=0
zend_extension=$OPENSHIFT_DATA_DIR/php/lib/php/extensions/no-debug-non-zts-20131226/opcache.so
opcache.enable=1
opcache.memory_consumption=64
opcache.interned_strings_buffer=4
opcache.max_accelerated_files=2000
---------------------
注:$OPENSHIFT_DATA_DIR,替换为env显示的值
# 修改开机启动 tengine 和 php-fpm
vi $OPENSHIFT_REPO_DIR/.openshift/action_hooks/start
---------------------
nohup $OPENSHIFT_DATA_DIR/nginx/sbin/nginx > $OPENSHIFT_DIY_LOG_DIR/server.log 2>&1 &
nohup $OPENSHIFT_DATA_DIR/php/sbin/php-fpm > $OPENSHIFT_DIY_LOG_DIR/server.log 2>&1 &
---------------------
# 修改关机文件,关闭 tengine 和 php-fpm
vi $OPENSHIFT_REPO_DIR/.openshift/action_hooks/stop
---------------------
killall nginx
killall php-fpm
---------------------
注:如果应用项目已经使用git clone到本地,则修改本地的 .openshift/action_hooks/ 目录中相关文件,然后git add -all, git commit -m ‘change hooks’, git push 。
# 重启应用使修改生效
ctl_all restart
8. 其他模块安装
# Phalcon 框架 PHP 模块安装
# 下载 phalcon
cd $OPENSHIFT_DATA_DIR
git clone --depth=1 git://github.com/phalcon/cphalcon.git
cd cphalcon/build
# 修改安装文件
vi install
———————
# phpize 替换成$OPENSHIFT_DATA_DIR/php/bin/phpize
./configure 添加 --with-php-config=$OPENSHIFT_DATA_DIR/php/bin/php-config
———————
# 安装
./install
# 更改php.ini配置
cd $OPENSHIFT_DATA_DIR/php/etc
# php.ini 添加
vi php.ini
———————
extension=$OPENSHIFT_DATA_DIR/php/lib/php/extensions/no-debug-non-zts-20131226/phalcon.so
———————
注:$OPENSHIFT_DATA_DIR 修改为 env 命令显示的值。
9. 添加环境变量
export PATH=$HOME/app-root/data/nginx/sbin:$HOME/app-root/data/php/bin:$HOME/app-root/data/apache/bin:$PATH
export SCREENDIR=$HOME/app-root/data/.screen
export PTOOLSPATH=$HOME/app-root/data/phalcon-devtools/

评论

此博客中的热门博文

部署 shadowsocks-manager

如何讓 Firefox 有不同的設定檔,並讓它們能同時執行,實現帳號多開、區隔不同用途的瀏覽環境?

使用 shadowsocks Manager 搭建 SS 多人管理平台 Debian/Ubuntu