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了。

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Les méthodes d'utilisation de la saisie chinoise dans CentOS incluent : l'utilisation de la méthode de saisie fcitx : installez et activez fcitx, définissez les touches de raccourci, appuyez sur les touches de raccourci pour changer de méthode de saisie et saisissez le pinyin pour générer des mots candidats. Utiliser la méthode de saisie iBus : installez et activez iBus, définissez les touches de raccourci, appuyez sur les touches de raccourci pour changer de méthode de saisie et saisissez le pinyin pour générer des mots candidats.

Pour lire les fichiers du disque U dans CentOS 7, vous devez d'abord connecter le disque U et confirmer son nom de périphérique. Ensuite, suivez les étapes suivantes pour lire le fichier : Montez la clé USB : mount /dev/sdb1 /media/sdb1 (remplacez "/dev/sdb1" par le nom réel du périphérique) Parcourez le fichier de la clé USB : ls /media /sdb1; cd /media /sdb1/répertoire; nom du fichier cat

Il existe deux manières de saisir l'autorité racine de CentOS 7 : utilisez la commande sudo : saisissez sudo su - dans le terminal et saisissez le mot de passe de l'utilisateur actuel. Connectez-vous directement en tant qu'utilisateur root : sélectionnez "Autre" sur l'écran de connexion, saisissez "root" et le mot de passe root. Remarque : agissez avec précaution avec les privilèges root, effectuez des tâches avec les privilèges sudo et modifiez régulièrement le mot de passe root.

On peut utiliser la commande scp pour copier en toute sécurité des fichiers entre les hôtes du réseau. Il utilise ssh pour le transfert de données et l'authentification. La syntaxe typique est la suivante : scpfile1user@host:/path/to/dest/scp -r/path/to/source/user@host:/path/to/dest/scp exclure les fichiers. Je ne pense pas que vous puissiez le faire lorsque vous utilisez la commande scp. Filtrez ou excluez des fichiers. Cependant, il existe une bonne solution pour exclure le fichier et le copier en toute sécurité à l'aide de ssh. Cette page explique comment filtrer ou exclure des fichiers lors de la copie récursive de répertoires à l'aide de scp. Comment utiliser la commande rsync pour exclure des fichiers La syntaxe est : rsyncav-essh-

Les solutions pour les mots de passe CentOS oubliés incluent : Mode mono-utilisateur : entrez en mode mono-utilisateur et réinitialisez le mot de passe à l'aide de passwd root. Mode de secours : démarrez à partir de CentOS Live CD/USB, montez la partition racine et réinitialisez le mot de passe. Accès à distance : utilisez SSH pour vous connecter à distance et réinitialisez le mot de passe avec sudo passwd root.

Après avoir oublié votre nom d'utilisateur et votre mot de passe CentOS, il existe deux manières de restaurer l'accès : Réinitialiser le mot de passe root : Redémarrez le serveur, modifiez la ligne de commande du noyau dans le menu GRUB, ajoutez « rw init=/sysroot/bin/sh » et appuyez sur Ctrl. +x ;Montez le système de fichiers racine et réinitialisez le mot de passe en mode mono-utilisateur. Utiliser le mode de secours : démarrez le serveur à partir de l'image ISO d'installation CentOS, sélectionnez le mode de secours ; montez le système de fichiers racine, copiez l'environnement chroot à partir de l'image ISO, réinitialisez le mot de passe, quittez l'environnement chroot et redémarrez le serveur.

CentOS 7 désactive les autorisations root par défaut. Vous pouvez l'activer en suivant les étapes suivantes : Activez-le temporairement : saisissez « su root » sur le terminal et saisissez le mot de passe root. Activé en permanence : modifiez "/etc/ssh/sshd_config", remplacez "PermitRootLogin no" par "yes" et redémarrez le service SSH.

Trois solutions pour les mots de passe oubliés dans CentOS 7 : Mode mono-utilisateur : redémarrez le système, modifiez les options du noyau, remplacez ro par rw init=/sysroot/bin/sh et utilisez la commande passwd pour réinitialiser le mot de passe root. Mode de secours : démarrez à partir du support d'installation, sélectionnez le mode de secours, montez le système de fichiers racine, effectuez un chroot sur le système de fichiers racine et utilisez la commande passwd pour réinitialiser le mot de passe root. Ligne de commande Grub2 : redémarrez le système, appuyez sur c pour accéder à la ligne de commande, chargez le noyau, montez le système de fichiers racine, chrootez sur le système de fichiers racine et utilisez la commande passwd pour réinitialiser le mot de passe root.
