在工作中有可能需要多版本的支持,本教程已经安装了lnmp的php5.6版本。再安装php7.1.2
1.安装更新包
yum install epel-release //扩展包更新包
yum update //更新yum源

2.安装mcrypt

yum install -y libmcrypt libmcrypt-devel

3.下载php并安装(下载略)

./configure –prefix=/usr/local/php7 –with-config-file-path=/usr/local/php7/etc –enable-fpm –with-fpm-user=www –with-fpm-group=www –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 –disable-fileinfo –enable-opcache –with-xsl

3.1编译出现错误
/root/php-7.1.2/ext/xmlrpc/libxmlrpc/encodings.c:102: undefined reference to `libiconv_close’
collect2: error: ld returned 1 exit status
make: *** [sapi/cli/php] 错误 1
解决办法
vi Makefile

找到下面这行:

EXTRA_LIBS = -lcrypt …

在最后添加-liconv
4.配置

cp php.ini-production /usr/local/php7/etc/php.ini
cp sapi/fpm/init.d.php-fpm /etc/init.d/php7-fpm
chmod +x /etc/init.d/php7-fpm
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf

5.配置opcache
vim /usr/local/php7/etc/php.ini
zend_extension=/usr/local/php7/lib/php/extensions/no-debug-non-zts-20160303/opcache.so

6.因为之前以及有php5.6已经监听了9000,那么php7就监听9001端口
vi /usr/local/php7/etc/php-fpm.d/php-fpm.conf
listen = 127.0.0.1:9001

7.启动
/etc/init.d/php7-fpm start
8.查看PHP版本
cp /usr/local/php7/bin/php /usr/bin/php7
php7 -v

PHP 7.1.2 (cli) (built: Mar 5 2017 15:43:51) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.1.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.1.2, Copyright (c) 1999-2017, by Zend Technologies

php7install安装说明

Linux下PHP已经编译,如何新增so扩展。

PHP下载地址:http://cl1.php.net/distributions/php-5.5.14.tar.gz

用到的一个sh:/usr/local/php/bin/phpize

原理:用phpize在压缩包里面找到对应的对应的扩展文件夹,在里面执行phpize,具体步骤:

PHP安装路径:/usr/local/php

PHP源码路径:/root/php-5.5.14

扩展假设zlib:/root/php-5.5.14/ext/bz2

执行代码:

ln -s /usr/local/php/bin/phpize /usr/bin/phpize

cd /root/php-5.5.14/ext/bz2

phpize

//这里提示报错,安装bzip2,bzip2-devel configure: error: Please reinstall the BZip2 distribution

//yum install -y bzip2 bzip2-devel

./configure –with-php-config=/usr/local/php/bin/php-config

make

make test

make install

vim /etc/php.ini ##加入extension=bz2.so

打开版本库根目录
增加tmp用来保存更新记录
进入hooks目录
复制post-commit.tmpl 文件,新文件名称为post-commit 不需要后缀。
打开文件,注释文件内所有内容,增加以下内容
export LANG=zh_CN.UTF-8
REPOS=”$1″
REV=”$2″

SVN_PATH=svn://172.246.164.41/yiicms
WEB_PATH=/www/web/yiicms/public_html
LOG_PATH=/www/svn/storage/tmp/svn_update.log

echo “\n\n\n########## start commit ” ` date “+%Y-%m-%d %H:%M:%S”` ‘##################’ >> $LOG_PATH
echo `whoami`,$REPOS,$REV >> $LOG_PATH
svn update /www/web/yiicms/public_html/
$SVN_PATH update –username dreamzml –password 421126 $WEB_PATH –no-auth-cache >> $LOG_PATH
chown -R www:www $WEB_PATH

#mailer.py commit “$REPOS” “$REV” /path/to/mailer.conf
来源:http://blog.csdn.net/dreamzml/article/details/12856965

同步

有时候你发现svn add后,这个提交的数据又不需要了。这时候需要有svn revert来处理了。

比如

A testcase/perday.php

如何取消呢?

svn revert testcase/perday.php

会出现下面的提示:

已恢复“testcase/perday.php”

说明脚本已经恢复了到原来的状态,不受SVN 版本控制了。

如何恢复整个目录??有时候你将整个目录都svn add了,整个目录有不同深度的文件夹,这时候你需要用其他方式来解决
svn revert –depth=infinity .

注意:上面一条语句后面的.绝对不能少,否则你不会操作成功。这条语句也要在svn 目录的外层执行。不能跑到svn add后的目录里面去执行。

执行完以后出现“Reverted ‘library/Cmsbase/phpmailer’”
表示将phpmailer目录整个恢复到svn版本控制前了