


Full record of upgrading php5.2 to php5.4 under Centos (compile and install), php5.2php5.4_PHP tutorial
Full record of upgrading php5.2 to php5.4 under Centos (compile and install), php5.2php5.4
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.

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics

Methods for using Chinese input in CentOS include: using the fcitx input method: install and enable fcitx, set shortcut keys, press the shortcut keys to switch input methods, and input pinyin to generate candidate words. Use iBus input method: Install and enable iBus, set shortcut keys, press the shortcut keys to switch input methods, and input pinyin to generate candidate words.

To read U disk files in CentOS 7, you need to first connect the U disk and confirm its device name. Then, use the following steps to read the file: Mount the USB flash drive: mount /dev/sdb1 /media/sdb1 (replace "/dev/sdb1" with the actual device name) Browse the USB flash drive file: ls /media/sdb1; cd /media /sdb1/directory; cat file name

There are two ways to enter the root authority of CentOS 7: use the sudo command: enter sudo su - in the terminal and enter the current user password. Log in directly as the root user: Select "Other" on the login screen, enter "root" and the root password. Note: Operate carefully with root privileges, perform tasks with sudo privileges, and change the root password regularly.

Solutions for forgotten CentOS passwords include: Single-user mode: Enter single-user mode and reset the password using passwd root. Rescue Mode: Boot from CentOS Live CD/USB, mount root partition and reset password. Remote access: Use SSH to connect remotely and reset the password with sudo passwd root.

One can use the scp command to securely copy files between network hosts. It uses ssh for data transfer and authentication. Typical syntax is: scpfile1user@host:/path/to/dest/scp -r/path/to/source/user@host:/path/to/dest/scp exclude files I don't think you can when using scp command Filter or exclude files. However, there is a good workaround to exclude the file and copy it securely using ssh. This page explains how to filter or exclude files when copying directories recursively using scp. How to use rsync command to exclude files The syntax is: rsyncav-essh-

After forgetting your CentOS username and password, there are two ways to restore access: Reset the root password: Restart the server, edit the kernel command line in the GRUB menu, add "rw init=/sysroot/bin/sh" and press Ctrl+x ;Mount the root file system and reset the password in single-user mode. Use rescue mode: Start the server from the CentOS installation ISO image, select rescue mode; mount the root file system, copy the chroot environment from the ISO image, reset the password, exit the chroot environment and restart the server.

CentOS 7 disables root permissions by default. You can enable it by following the following steps: Temporarily enable it: Enter "su root" on the terminal and enter the root password. Permanently enabled: Edit "/etc/ssh/sshd_config", change "PermitRootLogin no" to "yes", and restart the SSH service.

Three solutions for forgotten passwords in CentOS 7: Single-user mode: Restart the system, edit the kernel options, change ro to rw init=/sysroot/bin/sh, and use the passwd command to reset the root password. Rescue mode: Boot from the installation media, select rescue mode, mount the root file system, chroot to the root file system, and use the passwd command to reset the root password. Grub2 command line: Restart the system, press c to enter the command line, load the kernel, mount the root file system, chroot to the root file system, and use the passwd command to reset the root password.
