Centos下升级php5.2到php5.4全记录(编译安装)_PHP
升级
目前php最新版虽然是php5.5,但出于各种考虑,还是先升到php5.4比较靠谱。
原php使用的是php5.2.10,已经运行了4~5年了,是时候升级了。
5.4最新稳定版是5.4.21(14 Nov 2013发布了5.4.22...)
代码如下:
wget http://cn2.php.net/get/php-5.4.21.tar.gz/from/this/mirror
tar zxf php-5.4.21.tar.gz
cd php-5.4.21
修改源码,如果程序编码是utf-8的,跳过此步骤。
如果你的程序默认是GBK,而且程序中有不少使用htmlspecialchars的,建议直接修改源码,因为5.4默认为utf-8了。用htmlspecialchars输出的都会是空。
代码如下:
ext/standard/html.c
line 372
/* Default is now UTF-8 */
if (charset_hint == NULL)
return cs_utf_8;
--->
/* Default is now UTF-8 */
if (charset_hint == NULL)
return cs_8859_1;
解决htmlspecialchars默认UTF-8的问题。
代码如下:
./configure --prefix=/usr/local/php5.4 --with-zlib --enable-bcmath --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-mysql --with-mysqli --with-pdo-mysql --enable-ftp --with-jpeg-dir --with-freetype-dir --with-png-dir --enable-fpm --with-fpm-user=www --with-fpm-group=www
较精简的安装参数:
代码如下:
./configure --prefix=/usr/local/php5.4 --enable-fpm --with-mysql
make ZEND_EXTRA_LIBS='-liconv'
make install
-----------------------
把两个默认文件移到正确的地方,php.ini-development或php.ini-production看情况。
代码如下:
cd /usr/local/php5.4/etc/
cp php-fpm.conf.default php-fpm.conf
cp /www/soft/php-5.4.21/php.ini-development /usr/local/php5.4/lib/php.ini
------------------------------
php-fpm.conf中
listen.allowed_clients = 127.0.0.1前面的;去掉
---------------------
php.ini中
代码如下:
short_open_tag = Off
改为
代码如下:
short_open_tag = On
代码如下:
;date.timezone =
改为
代码如下:
date.timezone = "Asia/Shanghai"
代码如下:
error_reporting = E_ALL
改为
代码如下:
error_reporting = E_ALL & ~E_NOTICE
添加到开机服务列表
代码如下:
cp -f /www/soft/php-5.4.21/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod 755 /etc/init.d/php-fpm
chkconfig --add php-fpm
chkconfig php-fpm on
启动php-fpm:
代码如下:
service php-fpm start
php升级完成!
------------------------------------------------------
装ZendOpcache,据维护者Laruence称,Zend Opcache, 它是一个以扩展形式提供的PHP的Optmizer, 也会做很多编译优化, 也没有兼容性问题. 相比APC, 也要快7%以上. 不过它不提供apc_store用户数据Cache。如要使用apc的user cache,可以考虑使用APCU或者Laruence的Yac一起搭配使用。
代码如下:
wget http://pecl.php.net/get/ZendOpcache
tar zxf ZendOpcache
cd zendopcache-7.0.2/
/usr/local/php5.4/bin/phpize
./configure --with-php-config=/usr/local/php5.4/bin/php-config
make
make install
Installing shared extensions: /usr/local/php5.4/lib/php/extensions/no-debug-non-zts-20100525/
php.ini里直接加到底部,官方建议参数
代码如下:
zend_extension= /usr/local/php5.4/lib/php/extensions/no-debug-non-zts-20100525/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
opcache.save_comments=0
opcache.enable_file_override=1
service php-fpm reload
这里phpinfo()里就有with Zend OPcache v7.0.2,以及不少相关的参数了。
这样php5.4就算升级完了。
--------------------------------
可能碰到的错误:
启动php-fpm失败
代码如下:
Starting php-fpm /etc/init.d/php-fpm: line 53: 12483 Segmentation fault $php_fpm_BIN --daemonize $php_opts
failed
同时安装了APC和Zend opcache导致冲突,有了Zend opcache,可以不用装APC了。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

CentOS 中使用中文输入的方法包括:使用 fcitx 输入法:安装并启用 fcitx,设置快捷键,按下快捷键切换输入法,输入拼音即可生成候选词。使用 iBus 输入法:安装并启用 iBus,设置快捷键,按下快捷键切换输入法,输入拼音即可生成候选词。

在 CentOS 7 中读取 U 盘文件,需要先连接 U 盘并确认其设备名称。然后,使用以下步骤读取文件:挂载 U 盘:mount /dev/sdb1 /media/sdb1(替换 "/dev/sdb1" 为实际设备名称)浏览 U 盘文件:ls /media/sdb1;cd /media/sdb1/目录;cat 文件名

进入 CentOS 7 的 root 权限有两种方法:使用 sudo 命令:终端输入 sudo su -,输入当前用户密码。直接登录 root 用户:登录屏幕选择 "Other",输入 "root" 和 root 密码。注意:在 root 权限下谨慎操作,以 sudo 权限执行任务,定期更改 root 密码。

人们可以使用scp命令在网络主机之间安全地复制文件。它使用ssh进行数据传输和身份验证。典型的语法是:scpfile1user@host:/path/to/dest/scp-r/path/to/source/user@host:/path/to/dest/scp排除文件我不认为你可以在使用scp命令时过滤或排除文件。但是,有一个很好的解决方法来排除文件并使用ssh安全地复制它。本页面说明如何在使用scp递归复制目录时过滤或排除文件。如何使用rsync命令排除文件语法是:rsyncav-essh-

忘记 CentOS 密码的解决方案包括:单用户模式:进入单用户模式,使用 passwd root 重置密码。救援模式:使用 CentOS Live CD/USB 启动,挂载根分区并重置密码。远程访问:使用 SSH 远程连接,用 sudo passwd root 重置密码。

忘记 CentOS 用户名和密码后,有两种恢复访问权限的方法:重置 root 密码:重启服务器,在 GRUB 菜单中编辑内核命令行,添加“rw init=/sysroot/bin/sh”并按 Ctrl+x;单用户模式下挂载根文件系统并重置密码。使用救援模式:从 CentOS 安装 ISO 映像启动服务器,选择救援模式;挂载根文件系统,从 ISO 映像复制 chroot 环境,重置密码,退出 chroot 环境并重新启动服务器。

CentOS 7 默认禁用 root 权限,可按以下步骤开启:临时开启:终端输入 "su root",输入 root 密码。永久开启:编辑 "/etc/ssh/sshd_config",将 "PermitRootLogin no" 更改为 "yes",重启 SSH 服务。

CentOS 7 忘记密码的三种解决方法:单用户模式:重启系统,编辑内核选项,将 ro 更改为 rw init=/sysroot/bin/sh,使用 passwd 命令重置 root 密码。救援模式:从安装媒体启动,选择救援模式,挂载根文件系统,chroot 到根文件系统,使用 passwd 命令重置 root 密码。Grub2 命令行:重启系统,按 c 进入命令行,加载内核,挂载根文件系统,chroot 到根文件系统,使用 passwd 命令重置 root 密码。
