头图 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,晚上不抽风,网站基本可以保证能顺畅打开。

那么,只要你的网站没有太大的错误,拥抱一下最新的技术,保证你能感觉到世界的爱还是存在的!

分享一下我的心得

Nginx配置

我这里选择的是改良版的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

⇑复制上面一段回车就好了!

加入没有错误对吧,接下来就容易许多了

PHP配置

复制一下的代码,不用有所顾忌–没问题的

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环境搭建并不是很难,对不对?

 

 
         

在nginx上安装ModSecurity和 OWASP CRS(debian9)

心血来潮,想在nginx上配置个WAF,经多方搜索,最终选择ModSecurity.选择这个,一方面是因为开源,二方面是官方更新比较勤,而这类应用拼的就是防护规则~好吧,话不...

给Linux VPS折腾上totp(两步验证)用于登录验证

之前提到过使用密钥登录SSH,这种方式禁用了密码,安全性上是没问题的。。。除非,你的私钥也泄露啦~不怕,为了应对这种极端情况,我们不妨弄个2FA组成“多重...

用Telegram 搭建图床?这个可以有

万物皆可图床!今天来介绍用利用Telegram搭建网盘的开源项目:tgfilestream 。我这里用的是fork版,这里推荐使用这个或者这个。这里推荐“TG-Files-to-Link”这...

推荐几个2020年可用的免费SSL证书

推荐几个2020年可用的免费ssl证书,现在给网站上小绿锁是大势所趋,SSL证书一般价格都不菲,如果非特殊需求用免费的SSL证书就够用了~ 亚洲诚信一年域名 网...

自建密码管理器:强烈推荐bitwarden_rs

今天推荐个密码管理程序bitwarden的第三方版bitwarden_rs,是时候抛弃chrome自带的密码管理啦~要问我为什么转投bitwarden的怀抱?其实很简单,chrome浏览器自...

吃螃蟹~试着在debian上使用xanmod内核,

听说升级linux内核会有安全和性能上的加成,目前小鸡用的是Linux version 4.9.0-12-amd64内核,本着“吃螃蟹”的态度,今天试试更新到5.6.14版本的内核,看看有...