ホームページ バックエンド開発 PHPチュートリアル Centos下升级php5.2到php5.4全记录(编译安装)_PHP

Centos下升级php5.2到php5.4全记录(编译安装)_PHP

May 30, 2016 pm 02:59 PM
centos php5.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了。
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Centosで中国語を入力する方法 Centosで中国語を入力する方法 Apr 07, 2024 pm 08:21 PM

CentOS で中国語入力を使用する方法には、次のものが含まれます。 fcitx 入力方法を使用する: fcitx をインストールして有効にし、ショートカット キーを設定し、ショートカット キーを押して入力方法を切り替え、ピンインを入力して候補単語を生成します。 iBus 入力方法を使用する: iBus をインストールして有効にし、ショートカット キーを設定し、ショートカット キーを押して入力方法を切り替え、ピンインを入力して候補単語を生成します。

CentOS7でUSBディスクファイルを読み取る方法 CentOS7でUSBディスクファイルを読み取る方法 Apr 07, 2024 pm 08:18 PM

CentOS 7 で U ディスク ファイルを読み取るには、まず U ディスクを接続し、そのデバイス名を確認する必要があります。次に、次の手順に従ってファイルを読み取ります。 USB フラッシュ ドライブをマウントします: mount /dev/sdb1 /media/sdb1 (「/dev/sdb1」を実際のデバイス名に置き換えます) USB フラッシュ ドライブ ファイルを参照します: ls /media /sdb1; cd /media /sdb1/ディレクトリ; cat ファイル名

CentOS7でroot権限を入力する方法 CentOS7でroot権限を入力する方法 Apr 02, 2024 pm 08:57 PM

CentOS 7 の root 権限に入る方法は 2 つあります。 sudo コマンドを使用します。ターミナルで sudo su - と入力し、現在のユーザー パスワードを入力します。 root ユーザーとして直接ログインします。ログイン画面で「その他」を選択し、「root」と root パスワードを入力します。注: root 権限で慎重に操作し、sudo 権限でタスクを実行し、root パスワードを定期的に変更してください。

centos にログインするためのパスワードを忘れた場合の対処方法 centos にログインするためのパスワードを忘れた場合の対処方法 Apr 07, 2024 pm 07:33 PM

CentOS パスワードを忘れた場合の解決策は次のとおりです。 シングルユーザー モード: シングルユーザー モードに入り、passwd root を使用してパスワードをリセットします。レスキュー モード: CentOS Live CD/USB から起動し、ルート パーティションをマウントし、パスワードをリセットします。リモート アクセス: SSH を使用してリモートに接続し、sudo passwd root でパスワードをリセットします。

SCP 使用法のヒント - ファイルを再帰的に除外する SCP 使用法のヒント - ファイルを再帰的に除外する Apr 22, 2024 am 09:04 AM

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 のユーザー名とパスワードを忘れた場合はどうすればよいですか? Centos のユーザー名とパスワードを忘れた場合はどうすればよいですか? Apr 02, 2024 pm 08:54 PM

CentOS ユーザー名とパスワードを忘れた場合、アクセスを復元するには 2 つの方法があります。 root パスワードをリセットします。サーバーを再起動し、GRUB メニューでカーネル コマンド ラインを編集し、「rw init=/sysroot/bin/sh」を追加して Ctrl キーを押します。 +x ;ルート ファイル システムをマウントし、シングル ユーザー モードでパスワードをリセットします。レスキュー モードを使用する: CentOS インストール ISO イメージからサーバーを起動し、レスキュー モードを選択します。ルート ファイル システムをマウントし、ISO イメージから chroot 環境をコピーし、パスワードをリセットし、chroot 環境を終了してサーバーを再起動します。

CentOS7でroot権限を有効にする方法 CentOS7でroot権限を有効にする方法 Apr 07, 2024 pm 08:03 PM

CentOS 7 では root 権限がデフォルトで無効になっていますが、次の手順で有効にできます: 一時的に有効にする: ターミナルで「su root」と入力し、root パスワードを入力します。永続的に有効にする: 「/etc/ssh/sshd_config」を編集し、「PermitRootLogin no」を「yes」に変更し、SSH サービスを再起動します。

centos7 のパスワードを忘れた場合はどうすればよいですか? centos7 のパスワードを忘れた場合はどうすればよいですか? Apr 02, 2024 pm 08:51 PM

CentOS 7 でパスワードを忘れた場合の 3 つの解決策: シングルユーザー モード: システムを再起動し、カーネル オプションを編集し、ro を rw init=/sysroot/bin/sh に変更し、passwd コマンドを使用して root パスワードをリセットします。レスキュー モード: インストール メディアから起動し、レスキュー モードを選択し、ルート ファイル システムをマウントし、ルート ファイル システムに chroot し、passwd コマンドを使用して root パスワードをリセットします。 Grub2 コマンド ライン: システムを再起動し、c を押してコマンド ラインに入り、カーネルをロードし、ルート ファイル システムをマウントし、ルート ファイル システムに chroot を実行して、passwd コマンドを使用して root パスワードをリセットします。

See all articles