Openshift使用DIY安装部署LNMP运行环境
- 获取链接
- X
- 电子邮件
- 其他应用
知识点:
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
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编译需要
# 下载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/
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 命令查看的值。
注:$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
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
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
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
ctl_all restart
8. 其他模块安装
# Phalcon 框架 PHP 模块安装
# 下载 phalcon
# 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
vi install
———————
# phpize 替换成$OPENSHIFT_DATA_DIR/php/bin/phpize
./configure 添加 --with-php-config=$OPENSHIFT_DATA_DIR/php/bin/php-config
———————
# 安装
./install
./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 命令显示的值。
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/
- 获取链接
- X
- 电子邮件
- 其他应用
评论
发表评论