Linux编译升级php的详细方法
发布时间:2020-12-12 19:56:58 所属栏目:PHP教程 来源:网络整理
导读:服务器环境:CentOS – 5.4 php升级:5.4.14 - 5.5.0 升级心得:比较顺利,但是有一点需要说明:eaccelerator无法兼容php5.5.0,好在php在5.5.0默认提供了Zend OPcache,所以一直习惯eaccelerator的朋友如果要升级到php5.5.0的话,可能要暂时和eaccelerator
服务器环境:CentOS – 5.4 1、安装php5.5.0下载php安装包:http://www.php.net/get/php-5.5.0.tar.gz/from/a/mirror<div class="codetitle"><a style="CURSOR: pointer" data="54305" class="copybut" id="copybut54305" onclick="doCopy('code54305')"> 代码如下:<div class="codebody" id="code54305"> # 解压缩安装包 tar zxvf php-5.5.0.tar.gz# 进入目录 cd php-5.5.0# 编译安装 ./configure --prefix=/usr/local/webserver/php-d/php-5.5.0 --with-config-file-path=/usr/local/webserver/php-d/php-5.5.0/etc --with-config-file-scan-dir=/usr/local/webserver/php-d/php-5.5.0/etc/php.d --with-curl=/usr/local/lib --with-freetype-dir=/usr/lib64 --with-gd --with-gettext --with-iconv-dir=/usr/local/lib --with-jpeg-dir=/usr/lib64 --with-kerberos --with-ldap --with-ldap-sasl --with-libdir=lib64 --with-libxml-dir=/usr/lib64 --with-mcrypt --with-mhash --with-mysql --with-mysqli --with-openssl --with-pcre-regex=/usr --with-pdo-mysql=shared --with-pdo-sqlite=shared --with-pear=/usr/local/lib/php --with-png-dir=/usr/lib64 --with-xmlrpc --with-xsl --with-zlib --enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-gd-native-ttf --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip --disable-rpathmake ZEND_EXTRA_LIBS='liconv' make install cp php.ini-production /usr/local/webserver/php-d/php-5.5.0/etc/php.ini 这里有几个地方需要说明一下: 安装时,请根据自己的情况添加、删除附加组建,修改对应的目录路径 安装的时候别忘记了搭配opcache:–enable-opcache php-5.3.10编译时加了–enable-safe-mode选项,但是php-5.4.0已经去掉了该选项,编译时可以 ./configure –help | grep “safe-mode” 查看一下,没有信息输出,表示已经不支持! 同样去处的还有:'–enable-discard-path','–enable-fastcgi','–enable-force-cgi-redirect','–with-curlwrappers' 2.编译安装php5.5.0扩展模块:安装imagick安装这个模块需要服务器支持ImageMagick,这里和升级php无关,这部分省略,需要的请自行搜索 下载地址:http://pecl.php.net/package/imagick <div class="codetitle"><a style="CURSOR: pointer" data="46019" class="copybut" id="copybut46019" onclick="doCopy('code46019')"> 代码如下:<div class="codebody" id="code46019"> tar xvzf imagick-3.1.0RC2.tgz cd imagick-3.1.0RC2 /usr/local/webserver/php-d/php-5.5.0/bin/phpize export PKG_CONFIG_PATH=/usr/local/lib/pkgconfig/ ./configure --with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config make make install 注意: 避免兼容问题,请使用最新版本,请不要使用3.0.1之前的版本 如果安装的时候报错make: *** [imagick_file.lo] 错误 1,请调用pkgconfig 以上目录路径请根据个人情况进行修改 安装memcache: 安装这个模块需要服务器支持memcached,这里和升级php无关,这部分省略,需要的请自行搜索 下载地址:http://pecl.php.net/package/memcache <div class="codetitle"><a style="CURSOR: pointer" data="23993" class="copybut" id="copybut23993" onclick="doCopy('code23993')"> 代码如下:<div class="codebody" id="code23993"> tar xvzf memcache-3.0.tgz cd memcache-3.0.8 /usr/local/webserver/php-d/php-5.5.0/bin/phpize ./configure --enable-memcache --with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config make make install 注:请不要使用2.2.6及以下版本,不兼容 安装phpredis-master 安装这个模块需要服务器支持redis,这里和升级php无关,这部分省略,需要的请自行搜索 下载地址:https://github.com/nicolasff/phpredis <div class="codetitle"><a style="CURSOR: pointer" data="63514" class="copybut" id="copybut63514" onclick="doCopy('code63514')"> 代码如下:<div class="codebody" id="code63514"> unzip master cd phpredis-master /usr/local/webserver/php-d/php-5.5.0/bin/phpize ./configure --enable-redis --with-php-config=/usr/local/webserver/php-d/php-5.5.0/bin/php-config make make install 至此,所有需要的模块都安装完毕。 3.配置php.ini<div class="codetitle"><a style="CURSOR: pointer" data="44951" class="copybut" id="copybut44951" onclick="doCopy('code44951')"> 代码如下:<div class="codebody" id="code44951">vi /usr/local/webserver/php-d/php-5.5.0/etc/php.ini# 找到extension_dir extension_dir = "/usr/local/webserver/php-d/php-5.5.0/lib/php/extensions/no-debug-non-zts-20121212/"extension = "imagick.so" extension = "memcache.so" extension = "pdo_mysql.so" extension = "redis.so"# 找到date.timezone date.timezone = Asia/Shanghai# 找到session.save_handler session.save_handler = redis# 找到session.save_path session.save_path = "tcp://127.0.0.1:6379?weight=1" 配置Zend OPcache 一直以来都习惯用eAccelerator为php提供加速,但是目前有两个问题: eAccelerator暂时不兼容php5.5.0 eAccelerator和Zend Opcache冲突 好在php5.5.0默认提供了Zend Opcache为php加速,配置方法如下: <div class="codetitle"><a style="CURSOR: pointer" data="27197" class="copybut" id="copybut27197" onclick="doCopy('code27197')"> 代码如下:<div class="codebody" id="code27197"> zend_extension = /usr/local/webserver/php-d/php-5.5.0/lib/php/extensions/no-debug-non-zts-20121212/opcache.so ; 上面zend_extension路径为opcache.so的路径opcache.memory_consumption=128 opcache.interned_strings_buffer=8 opcache.max_accelerated_files=4000 opcache.revalidate_freq=60 opcache.fast_shutdown=1 opcache.enable_cli=1 注意:如果在您的php扩展模块找不到opcache.so说明没有安装成功,请重新安装 4.配置php-fpm.conf<div class="codetitle"><a style="CURSOR: pointer" data="53901" class="copybut" id="copybut53901" onclick="doCopy('code53901')"> 代码如下:<div class="codebody" id="code53901">pid = /usr/local/webserver/php-d/php-5.5.0/var/run/php-fpm.pid error_log = /usr/local/webserver/php-d/php-5.5.0/logs/php-fpm.loglog_level = noticeemergency_restart_threshold = 10 emergency_restart_interval = 60sprocess_control_timeout = 5s daemonize = yesrlimit_files = 65535 rlimit_core = 0user = www group = wwwlisten.backlog = -1 listen.owner = www listen.group = www listen.mode = 0666 listen.allowed_clients = 127.0.0.1pm = static pm.max_children = 64 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 1024ping.response = pong slowlog = /usr/local/webserver/php-d/php-5.5.0/logs/$pool.log.slow request_slowlog_timeout = 0 request_terminate_timeout = 0 catch_workers_output = yesenv[HOSTNAME] = $HOSTNAME env[PATH] = /usr/local/bin:/usr/bin:/bin env[TMP] = /tmp env[TMPDIR] = /tmp env[TEMP] = /tmpphp_admin_value[sendmail_path] = /usr/sbin/sendmail -t -i -f jht2718@163.com php_flag[display_errors] = on 备注:请根据自己的情况修改配置文件 5.修改启动项:<div class="codetitle"><a style="CURSOR: pointer" data="73791" class="copybut" id="copybut73791" onclick="doCopy('code73791')"> 代码如下:<div class="codebody" id="code73791">cp /usr/local/webserver/php-d/php-5.5.0/bin/php /etc/init.d/php (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |