Home >Backend Development >PHP Tutorial >Full record of upgrading php5.2 to php5.4 under Centos (compile and install), php5.2php5.4_PHP tutorial
Upgrade
Although the latest version of php is currently php5.5, due to various considerations, it is more reliable to upgrade to php5.4 first.
The original PHP uses php5.2.10, which has been running for 4 to 5 years. It is time to upgrade.
The latest stable version of 5.4 is 5.4.21 (5.4.22 was released on 14 Nov 2013...)
Copy code The code is as follows:
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
Modify the source code. If the program encoding is UTF-8, skip this step.
If your program defaults to GBK, and many of the programs use htmlspecialchars, it is recommended to modify the source code directly, because 5.4 defaults to utf-8. The output using htmlspecialchars will be empty.
Copy code The code is as follows:
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;
Solve the problem of htmlspecialchars defaulting to UTF-8.
Copy code The code is as follows:
./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
Simpler installation parameters:
Copy code The code is as follows:
./configure --prefix=/usr/local/php5.4 --enable-fpm --with-mysql
make ZEND_EXTRA_LIBS='-liconv'
make install
-----------------------
Move the two default files to the correct location, php.ini-development or php.ini-production as appropriate.
Copy code The code is as follows:
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; remove
--------------------------
php.ini
Copy code The code is as follows:
short_open_tag = Off
Change to
Copy code The code is as follows:
short_open_tag = On
Copy code The code is as follows:
;date.timezone =
Change to
Copy code The code is as follows:
date.timezone = "Asia/Shanghai"
Copy code The code is as follows:
error_reporting = E_ALL
Change to
Copy code The code is as follows:
error_reporting = E_ALL & ~E_NOTICE
Add to boot service list
Copy code The code is as follows:
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
Start php-fpm:
Copy code The code is as follows:
service php-fpm start
PHP upgrade completed!
-------------------------------------------------- ----
Install ZendOpcache. According to maintainer Laruence, Zend Opcache, which is an Optmizer for PHP provided in an extended form, will also do a lot of compilation optimization and has no compatibility issues. Compared with APC, it is more than 7% faster. But it The apc_store user data cache is not provided. If you want to use apc's user cache, you can consider using APCU or Laruence's Yac together.
Copy code The code is as follows:
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/
Add it directly to the bottom of php.ini, official recommended parameters
Copy code The code is as follows:
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
There is with Zend OPcache v7.0.2 in phpinfo() here, as well as many related parameters.
In this way, php5.4 will be upgraded.
--------------------------------
Errors you may encounter:
Failed to start php-fpm
Copy code The code is as follows:
Starting php-fpm /etc/init.d/php-fpm: line 53: 12483 Segmentation fault $php_fpm_BIN --daemonize $php_opts
failed
Installing APC and Zend opcache at the same time will cause conflicts. With Zend opcache, there is no need to install APC.