為什么要寫(xiě)這篇文章也是源于我犯了一個(gè)錯(cuò)誤,還是今天發(fā)現(xiàn)的。
今天我嘗試想把 php的redis 擴(kuò)展升級(jí)為最新的
創(chuàng)新互聯(lián)是一家專業(yè)提供天津企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站建設(shè)、HTML5、小程序制作等業(yè)務(wù)。10年已為天津眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)的建站公司優(yōu)惠進(jìn)行中。
然后為了不影響本地開(kāi)發(fā)環(huán)境的影響我傻傻的復(fù)制了一份 如圖所示
[root@localhost php]# ll
total 16
drwxr-xr-x 9 root root 4096 Nov 10 2015 5.4.45
drwxr-xr-x 9 root root 4096 Aug 3 10:37 5.4.45.bak
drwxr-xr-x 9 root root 4096 Aug 3 09:52 7.0.2
drwxr-xr-x 9 root root 4096 Jan 28 2016 7.0.2.bak
lrwxrwxrwx 1 root root 21 May 16 21:02 php -> /usr/local/php/5.4.45
[root@localhost php]#
在這里說(shuō)明一下 對(duì)于php 的版本我采用的是軟連接
[root@localhost php]# which php
/usr/bin/php
[root@localhost php]# ll /usr/bin/php
lrwxrwxrwx 1 root root 26 Jan 29 2016 /usr/bin/php -> /usr/local/php/php/bin/php
[root@localhost php]#
為了靈活的更新php 使用ln 一直只對(duì)/usr/local/php/php 這個(gè)文件做軟連接 這樣我想切換7.0.2
只需要 ln -snf /usr/local/php/7.0.2 /usr/local/php/php 即可
[root@localhost php]# ln -snf /usr/local/php/7.0.2 /usr/local/php/php
[root@localhost php]# php --version
PHP 7.0.2 (cli) (built: Jan 29 2016 01:31:08) ( NTS )
Copyright (c) 1997-2015 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2015 Zend Technologies
[root@localhost php]#
回到主題
我傻傻的復(fù)制了一份出來(lái) 本來(lái)想先升級(jí) 5.4.45.bak 但是不然。
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Installing shared extensions: /usr/local/php/5.4.45/lib/php/extensions/no-debug-non-zts-20100525/
[root@localhost redis-2.2.8]#
不管是我定義 php-config phpize 這兩個(gè)文件在/usr/local/php/5.4.45.bak/bin下 依然更新到了 /usr/local/php/5.4.45
然后進(jìn)行測(cè)試 干掉/usr/local/php/5.4.45
后來(lái)就開(kāi)始出問(wèn)題了
[root@localhost redis-2.2.8]# /usr/local/php/5.4.45.bak/bin/phpize
Cannot find build files at '/usr/local/php/5.4.45/lib/php/build'. Please check your PHP installation.
[root@localhost redis-2.2.8]#
第一反應(yīng)就是/usr/local/php/5.4.45.bak/bin/phpize 這個(gè)腳本有問(wèn)題
[root@localhost redis-2.2.8]# cat /usr/local/php/5.4.45.bak/bin/phpize|less
#!/bin/sh
# Variable declaration
prefix='/usr/local/php/5.4.45'
datarootdir='/usr/local/php/5.4.45/php'
exec_prefix="`eval echo ${prefix}`"
phpdir="`eval echo ${exec_prefix}/lib/php`/build"
includedir="`eval echo ${prefix}/include`/php"
builddir="`pwd`"
SED="/bin/sed"
果然 他在開(kāi)始就定義了路徑 然后繼續(xù)測(cè)試 改路徑
我使用替換但是提示我有 3列被修改了
$SED \
-e "s#/usr/local/php/5.4.45.bak#$prefix#" \
< "$phpdir/phpize.m4" > configure.in
}
phpize_autotools()
{
$PHP_AUTOCONF || exit 1
$PHP_AUTOHEADER || exit 1
}
# Main script
case "$1" in
# Cleanup
--clean)
3 substitutions on 3 lines
然后我搜索了一下 帶這個(gè)路徑的到底有多少
[root@localhost 5.4.45.bak]# grep -rl "5.4.45" .
./php/man/man8/php-fpm.8
./php/man/man1/php.1
./php/man/man1/phpize.1
./php/man/man1/php-config.1
./php/man/man1/phar.1
./bin/php
./bin/pear
./bin/phpize
grep: ./bin/phar: No such file or directory
./bin/php-config
./bin/pecl
./bin/phar.phar
./bin/php-cgi
./bin/peardev
./sbin/php-fpm
./include/php/main/php_version.h
./include/php/main/build-defs.h
./etc/php-fpm.conf.default
./etc/pear.conf
./lib/php/extensions/no-debug-non-zts-20100525/redis.so
./lib/php/extensions/no-debug-non-zts-20100525/libevent.so
./lib/php/extensions/no-debug-non-zts-20100525/swoole.so
./lib/php/pearcmd.php
./lib/php/peclcmd.php
./lib/php/.registry/console_getopt.reg
./lib/php/.registry/pear.reg
./lib/php/.registry/xml_util.reg
./lib/php/.registry/archive_tar.reg
./lib/php/.registry/structures_graph.reg
[root@localhost 5.4.45.bak]#
我的天還有些多。。 我也只是個(gè)維護(hù)者 難道批量替換? 但是我覺(jué)得 還是老實(shí) 在安裝一套吧。。