首页 > 代码库 > discuz的php7版本号

discuz的php7版本号

php7的安装

wget http://am1.php.net/get/php-7.0.4.tar.gz/from/this/mirror
tar zvxf php-7.0.4.tar.gz
cd php-7.0.4


./configure --prefix=/data/php7 --with-config-file-path=/data/php7/etc --with-icu-dir=/usr --with-xsl --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-mysqlnd --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-iconv-dir --with-freetype-dir=/usr/local/freetype --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-mbstring --enable-intl --enable-pcntl --with-mcrypt --enable-ftp --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --with-gettext --enable-fileinfo --enable-opcache --with-xsl


1、出现错误:
Unable to detect ICU prefix or no failed. Please verify ICU install prefix and make sure icu-config works.

解决方法:

yum install -y icu libicu libicu-devel   configure參数添加 --with-icu-dir=/usr

2、出现故障:

configure: error: mcrypt.h not found. Please reinstall libmcrypt.

解决方法:
wget http://softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8.tar.gz
tar -zxvf libmcrypt-2.5.8.tar.gz
cd /usr/local/src/libmcrypt-2.5.8
./configure 
make
make install

3问题:
configure: error: xslt-config not found. Please reinstall the libxslt >= 1.1.0 distribution

解决:
yum install -y libxslt libxslt-devel libxml2 libxml2-devel  configure加上--with-xsl


出问题解决站点:https://teddysun.com/363.html(非广告哈,确实帮我大忙了)

假设make时候出现liconv相关错误。可进行一下操作

vim Makefile 找到 EXTRA_LIBS 添加 -liconv


最后进行编译安装


make && make install



php.ini文件和php-fpm.conf文件生成。

cp php.ini-production /usr/local/php7/etc/php.ini
cd /usr/src/php-7.0.4/sapi/fpm
cp init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on


为了php7性能再次提升,能够參考鸟哥博客http://www.laruence.com/2015/12/04/3086.html


discuz的php7版本号,由于博主第一次做开源。所以里面的redme文档没有写。

代码地址:https://code.csdn.net/zzh787272581/dz-yboard-cn/tree/master(代码仅仅能在php7同意,原因在后面有说明)


里面主要改动点:

1、将eval去掉。这里不针对php7去改动,仅仅是博主认为这个函数在线上server不安全。

2、将preg_replace带有/e 修饰符所有替换成preg_replace_callback 函数,将preg_replace里面数组形式替换成preg_replace_callback_array;这里由于用了preg_replace_callback_array,仅仅能在php7下执行。

3、有一些地方写死了mysql的函数,这里将所有替换成mysqli的函数进行书写。


最后贴一张php5.4和php7以下dz首页的ab压測图。机器不好。所以qps不是非常好看。

都是用 ab -n 500 -c http://dz.yboard.cn/

php7


C:\Users\Administrator>ab -n 100 -c 100 http://dz.yboard.cn/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking dz.yboard.cn (be patient).....done


Server Software:        nginx
Server Hostname:        dz.yboard.cn
Server Port:            80

Document Path:          /
Document Length:        0 bytes

Concurrency Level:      100
Time taken for tests:   0.182 seconds
Complete requests:      100
Failed requests:        0
Non-2xx responses:      100
Total transferred:      19100 bytes
HTML transferred:       0 bytes
Requests per second:    550.36 [#/sec] (mean)
Time per request:       181.700 [ms] (mean)
Time per request:       1.817 [ms] (mean, across all concurrent requests)
Transfer rate:          102.65 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   1.0      1       5
Processing:    11  100  52.8    107     168
Waiting:        3   96  54.5    102     167
Total:         12  102  52.4    109     168

Percentage of the requests served within a certain time (ms)
  50%    109
  66%    147
  75%    153
  80%    155
  90%    162
  95%    165
  98%    167
  99%    168
 100%    168 (longest request)


php5.4.45


C:\Users\Administrator>ab -n 100 -c 100 http://dz-php5.yboard.cn/
This is ApacheBench, Version 2.3 <$Revision: 1604373 $>
Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Licensed to The Apache Software Foundation, http://www.apache.org/

Benchmarking dz-php5.yboard.cn (be patient).....done


Server Software:        nginx
Server Hostname:        dz-php5.yboard.cn
Server Port:            80

Document Path:          /
Document Length:        0 bytes

Concurrency Level:      100
Time taken for tests:   0.222 seconds
Complete requests:      100
Failed requests:        0
Non-2xx responses:      100
Total transferred:      17700 bytes
HTML transferred:       0 bytes
Requests per second:    450.15 [#/sec] (mean)
Time per request:       222.150 [ms] (mean)
Time per request:       2.221 [ms] (mean, across all concurrent requests)
Transfer rate:          77.81 [Kbytes/sec] received

Connection Times (ms)
              min  mean[+/-sd] median   max
Connect:        0    1   1.4      1       5
Processing:    76  122  16.8    127     145
Waiting:       76  121  16.6    127     144
Total:         77  123  16.2    129     145

Percentage of the requests served within a certain time (ms)
  50%    129
  66%    132
  75%    134
  80%    135
  90%    140
  95%    143
  98%    145
  99%    145
 100%    145 (longest request)

总的来说,性能还是有非常大提升的。


欢迎各位同学直接拿来測试使用。假设有问题欢迎提出,我会一直维护这个php7版本号,可私下联系我QQ:787272581

discuz的php7版本号