12月12日, 2015 830 views


头图 http://www.pixiv.net/member_illust.php?mode=medium&illust_id=53962670
没错!经过几天的不懈努力(折腾),Tengine+php7.00 的最新组合新鲜出炉了!
这次采用了Nginx的Fastcgi cache—理论上全站缓存,nginx处理静态文件有多块,打开你的网站就有多块!不信,我的网站现在就是最佳的例子!
同时,由于缓存的存在,后台没有必要的各种缓存都可以歇歇了:什么memcache redis什么的都不用了,毕竟再快也没有打开一张图的速度快吧!
然后听取了建议开启了php-opcache,让本来就很快的php运行速度再上一层楼///
理论上,只要小红帽的(cpu)负载不过5,晚上不抽风,网站基本可以保证能顺畅打开。
那么,只要你的网站没有太大的错误,拥抱一下最新的技术,保证你能感觉到世界的爱还是存在的!
分享一下我的心得
我这里选择的是改良版的Tengine,选择的理由因为可以编译jemalloc
进入
cd $OPENSHIFT_DATA_DIR wget http://www.canonware.com/download/jemalloc/jemalloc-4.0.4.tar.bz2 tar -xjf jemalloc-4.0.4.tar.bz2 rm -rf jemalloc-4.0.4.tar.bz2 wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.37.tar.gz tar -zxvf pcre-8.37.tar.gz rm -rf pcre-8.37.tar.gz wget https://github.com/FRiCKLE/ngx_cache_purge/archive/master.zip unzip master.zip rm -rf master.zip git clone git://github.com/alibaba/tengine.git
然后分享下Nginx配置参数
cd tengine ./configure --prefix=$OPENSHIFT_DATA_DIR/nginx --with-pcre=$OPENSHIFT_DATA_DIR/pcre-8.37 --with-jemalloc=$OPENSHIFT_DATA_DIR/jemalloc-4.0.4 --add-module=$OPENSHIFT_DATA_DIR/ngx_cache_purge-master --with-ipv6 --with-http_v2_module --with-http_realip_module --with-http_mp4_module --with-http_flv_module --with-http_geoip_module --with-http_gzip_static_module --with-http_sub_module --with-http_ssl_module --with-http_stub_status_module --with-http_concat_module --with-http_auth_request_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_memcached_module=shared --with-http_trim_filter_module=shared --with-http_empty_gif_module=shared make make dso_install make install
⇑复制上面一段回车就好了!
加入没有错误对吧,接下来就容易许多了
复制一下的代码,不用有所顾忌–没问题的
cd /tmp
wget -O libmcrypt-2.5.8.tar.gz http://downloads.sourceforge.net/mcrypt/libmcrypt-2.5.8.tar.gz?big_mirror=0
tar zxf libmcrypt-2.5.8.tar.gz
cd libmcrypt-2.5.8
./configure --prefix=${OPENSHIFT_DATA_DIR}usr/local
make -j4 && make install
cd libltdl
./configure --prefix=${OPENSHIFT_DATA_DIR}usr/local --enable-ltdl-install
make -j4 && make install
cd ../..
wget -O mhash-0.9.9.9.tar.gz http://downloads.sourceforge.net/mhash/mhash-0.9.9.9.tar.gz?big_mirror=0
tar zxvf mhash-0.9.9.9.tar.gz
cd mhash-0.9.9.9
./configure --prefix=${OPENSHIFT_DATA_DIR}usr/local
make -j4 && make install
cd ..
wget -O mcrypt-2.6.8.tar.gz http://downloads.sourceforge.net/mcrypt/mcrypt-2.6.8.tar.gz?big_mirror=0
tar zxf mcrypt-2.6.8.tar.gz
cd mcrypt-2.6.8
export LDFLAGS="-L${OPENSHIFT_DATA_DIR}usr/local/lib -L/usr/lib"
export CFLAGS="-I${OPENSHIFT_DATA_DIR}usr/local/include -I/usr/include"
export LD_LIBRARY_PATH="/usr/lib/:${OPENSHIFT_DATA_DIR}usr/local/lib"
export PATH="/bin:/usr/bin:/usr/sbin:${OPENSHIFT_DATA_DIR}usr/local/bin:${OPENSHIFT_DATA_DIR}bin:${OPENSHIFT_DATA_DIR}sbin"
touch malloc.h
./configure --prefix=${OPENSHIFT_DATA_DIR}usr/local --with-libmcrypt-prefix=${OPENSHIFT_DATA_DIR}usr/local
make -j4 && make install
cd ..
wget http://php.net/distributions/php-7.0.0.tar.gz
tar -zxvf php-7.0.0.tar.gz
cd php-7.0.0
./configure --prefix=${OPENSHIFT_DATA_DIR}php --with-config-file-path=${OPENSHIFT_DATA_DIR}php/etc --with-mcrypt=${OPENSHIFT_DATA_DIR}usr/local
--with-fpm-user=www --with-fpm-group=www --enable-fpm --enable-opcache
--disable-fileinfo --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-jpeg-dir
--with-iconv-dir=/usr/local --with-freetype-dir --with-png-dir --with-zlib --disable-rpath
--with-libxml-dir=/usr --enable-xml --enable-bcmath --enable-shmop --enable-exif --with-curl
--enable-sysvsem --enable-inline-optimization --enable-mbregex --enable-inline-optimization
--enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl
--with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-ftp
--with-gettext --enable-zip --enable-soap --disable-ipv6 --disable-debug
make -j4
make install
编译完成,请执行${OPENSHIFT_DATA_DIR}php/bin/php -v
回馈信息应该类似这个样子
PHP 7.0.1 (cli) Copyright (c) 1997-2015 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2015, by Zend Technologies
不出意外的话,你一定觉得太顺利了,居然没有中途停止编译什么的,恭喜你
可是,编译完并不代表万事大吉了,请跟上脚步,好戏才刚开始
特呈上蜜汁配方,你一定喜欢
下载以下文件
cd $OPENSHIFT_DATA_DIR
wget http://acfun.webcrow.jp/php/nginx.conf.erb
wget http://acfun.webcrow.jp/php/php.ini.erb
wget http://acfun.webcrow.jp/php/php-fpm.conf
wget http://acfun.webcrow.jp/php/www-facgi.conf.erb
wget http://acfun.webcrow.jp/php/wordpress.conf
erb ./nginx.conf.erb >${OPENSHIFT_DATA_DIR}nginx/conf/nginx.conf
erb ./php.ini.erb >${OPENSHIFT_DATA_DIR}php/etc/php.ini
mkdir ${OPENSHIFT_DATA_DIR}nginx/run
erb ./www-facgi.conf.erb >${OPENSHIFT_DATA_DIR}nginx/run/www-facgi.conf
cp ./php-fpm.conf ${OPENSHIFT_DATA_DIR}nginx/conf
mv ./wordpress.conf ${OPENSHIFT_DATA_DIR}nginx/run
mkdir /tmp/cache/wpcache/temp
mkdr ${OPENSHIFT_HOMEDIR}app-root/runtime/repo/www
rm -rf nginx.conf.erb php.ini.erb php-fpm.conf www-facgi.conf.erb wordpress.conf
编辑启动文件(建议一步一步复制!)
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 & vi $OPENSHIFT_REPO_DIR/.openshift/action_hooks/stop killall nginx killall php-fpm ctl_all restart
有点基础应该都明白搭建Linux下php环境搭建并不是很难,对不对?