Centos下升级php5.2到php5.4全记录(编译安装),php5.2php5.4_PHP教程
Centos下升级php5.2到php5.4全记录(编译安装),php5.2php5.4
升级
目前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了。

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

Zu den Methoden zur Verwendung chinesischer Eingaben in CentOS gehören: Verwenden der fcitx-Eingabemethode: Installieren und aktivieren Sie fcitx, legen Sie Tastenkombinationen fest, drücken Sie die Tastenkombinationen, um die Eingabemethoden zu wechseln, und geben Sie Pinyin ein, um Kandidatenwörter zu generieren. Verwenden Sie die iBus-Eingabemethode: Installieren und aktivieren Sie iBus, legen Sie Tastenkombinationen fest, drücken Sie die Tastenkombinationen, um die Eingabemethoden zu wechseln, und geben Sie Pinyin ein, um Kandidatenwörter zu generieren.

Um U-Disk-Dateien in CentOS 7 zu lesen, müssen Sie zuerst die U-Disk anschließen und ihren Gerätenamen bestätigen. Führen Sie dann die folgenden Schritte aus, um die Datei zu lesen: Mounten Sie das USB-Flash-Laufwerk: mount /dev/sdb1 /media/sdb1 (ersetzen Sie „/dev/sdb1“ durch den tatsächlichen Gerätenamen). Durchsuchen Sie die Datei des USB-Flash-Laufwerks: ls /media /sdb1; cd /media /sdb1/directory; cat-Dateiname

Es gibt zwei Möglichkeiten, die Root-Autorität von CentOS 7 einzugeben: Verwenden Sie den Befehl sudo: Geben Sie im Terminal sudo su - ein und geben Sie das aktuelle Benutzerkennwort ein. Melden Sie sich direkt als Root-Benutzer an: Wählen Sie auf dem Anmeldebildschirm „Andere“, geben Sie „root“ und das Root-Passwort ein. Hinweis: Gehen Sie vorsichtig mit Root-Rechten um, führen Sie Aufgaben mit Sudo-Rechten aus und ändern Sie das Root-Passwort regelmäßig.

Mit dem Befehl scp können Dateien sicher zwischen Netzwerkhosts kopiert werden. Es verwendet SSH für die Datenübertragung und Authentifizierung. Die typische Syntax lautet: scpfile1user@host:/path/to/dest/scp -r/path/to/source/user@host:/path/to/dest/scp Dateien ausschließen. Ich glaube nicht, dass Sie das können, wenn Sie den scp-Befehl verwenden Dateien filtern oder ausschließen. Es gibt jedoch einen guten Workaround, die Datei auszuschließen und sie sicher per SSH zu kopieren. Auf dieser Seite wird erläutert, wie Sie Dateien filtern oder ausschließen, wenn Sie Verzeichnisse mit scp rekursiv kopieren. So verwenden Sie den Befehl rsync, um Dateien auszuschließen. Die Syntax lautet: rsyncav-essh-

Zu den Lösungen für vergessene CentOS-Passwörter gehören: Einzelbenutzermodus: Wechseln Sie in den Einzelbenutzermodus und setzen Sie das Passwort mit passwd root zurück. Rettungsmodus: Booten Sie von CentOS Live CD/USB, mounten Sie die Root-Partition und setzen Sie das Passwort zurück. Fernzugriff: Verwenden Sie SSH, um eine Fernverbindung herzustellen und das Kennwort mit sudo passwd root zurückzusetzen.

Nachdem Sie Ihren CentOS-Benutzernamen und Ihr Passwort vergessen haben, gibt es zwei Möglichkeiten, den Zugriff wiederherzustellen: Setzen Sie das Root-Passwort zurück: Starten Sie den Server neu, bearbeiten Sie die Kernel-Befehlszeile im GRUB-Menü, fügen Sie „rw init=/sysroot/bin/sh“ hinzu und drücken Sie Strg +x ;Mounten Sie das Root-Dateisystem und setzen Sie das Passwort im Einzelbenutzermodus zurück. Rettungsmodus verwenden: Starten Sie den Server vom CentOS-Installations-ISO-Image, wählen Sie den Rettungsmodus; mounten Sie das Root-Dateisystem, kopieren Sie die Chroot-Umgebung vom ISO-Image, setzen Sie das Passwort zurück, verlassen Sie die Chroot-Umgebung und starten Sie den Server neu.

CentOS 7 deaktiviert standardmäßig die Root-Berechtigungen. Sie können sie aktivieren, indem Sie die folgenden Schritte ausführen: Vorübergehend aktivieren: Geben Sie „su root“ auf dem Terminal ein und geben Sie das Root-Passwort ein. Dauerhaft aktiviert: Bearbeiten Sie „/etc/ssh/sshd_config“, ändern Sie „PermitRootLogin no“ in „yes“ und starten Sie den SSH-Dienst neu.

Es gibt zwei Möglichkeiten, Aufgaben mit Root-Rechten in CentOS auszuführen: 1) Verwenden Sie den Befehl sudo, um vorübergehend Root-Rechte zu erhalten. 2) Melden Sie sich direkt mit dem Root-Benutzerkennwort an. Bei der Verwendung von Root-Rechten ist äußerste Vorsicht geboten und es wird empfohlen, diese nur bei Bedarf zu verwenden.
