
CentOSにPHPのパッケージをインストールする
2019/03/04
PHPを利用したサイトを作成し、某社で用意した専用サーバ(rootがもらえるプラン)へアップロードしたら、
Fatal error: Call to undefined function mb_detect_encoding()
というエラーが出ました。
php.ini の mbstring が未設定なのかと思い設定しても、エラーは出たまま。
次に phpinfo でサーバ情報を見てみると、なぜか mbstring の項目が無い。
もしやと思い、ターミナルでインストール済みのモジュールを検索してみると・・・
[default]
[root@sv ~]# rpm -qa | grep php
php-pecl-apc-3.1.9-2.el6.x86_64
php-5.3.3-14.el6_3.x86_64
php-xml-5.3.3-14.el6_3.x86_64
php-gd-5.3.3-14.el6_3.x86_64
php-ldap-5.3.3-14.el6_3.x86_64
php-mysql-5.3.3-14.el6_3.x86_64
php-xmlrpc-5.3.3-14.el6_3.x86_64
php-pdo-5.3.3-14.el6_3.x86_64
php-pgsql-5.3.3-14.el6_3.x86_64
php-common-5.3.3-14.el6_3.x86_64
php-odbc-5.3.3-14.el6_3.x86_64
php-pecl-memcache-3.0.5-4.el6.x86_64
php-cli-5.3.3-14.el6_3.x86_64
php-pear-1.9.4-4.el6.noarch
php-soap-5.3.3-14.el6_3.x86_64
[/default]
おお、インストールされていないとは! マジかよ・・・。
ということで、モジュールをインストールしてみることとします。
とりあえずは、パッケージの検索から。
[default mark="26"]
[homepage@sv ~]$ yum list | grep php
php.x86_64 5.3.3-14.el6_3 @updates
php-cli.x86_64 5.3.3-14.el6_3 @updates
php-common.x86_64 5.3.3-14.el6_3 @updates
php-gd.x86_64 5.3.3-14.el6_3 @updates
php-ldap.x86_64 5.3.3-14.el6_3 @updates
php-mysql.x86_64 5.3.3-14.el6_3 @updates
php-odbc.x86_64 5.3.3-14.el6_3 @updates
php-pdo.x86_64 5.3.3-14.el6_3 @updates
php-pear.noarch 1:1.9.4-4.el6 @UIedited_0/6.2
php-pecl-apc.x86_64 3.1.9-2.el6 @base
php-pecl-memcache.x86_64 3.0.5-4.el6 @base
php-pgsql.x86_64 5.3.3-14.el6_3 @updates
php-soap.x86_64 5.3.3-14.el6_3 @updates
php-xml.x86_64 5.3.3-14.el6_3 @updates
php-xmlrpc.x86_64 5.3.3-14.el6_3 @updates
cups-php.x86_64 1:1.4.2-48.el6_3.3 updates
graphviz-php.x86_64 2.26.0-7.el6 base
php-bcmath.x86_64 5.3.3-14.el6_3 updates
php-dba.x86_64 5.3.3-14.el6_3 updates
php-devel.x86_64 5.3.3-14.el6_3 updates
php-embedded.x86_64 5.3.3-14.el6_3 updates
php-enchant.x86_64 5.3.3-14.el6_3 updates
php-imap.x86_64 5.3.3-14.el6_3 updates
php-intl.x86_64 5.3.3-14.el6_3 updates
php-mbstring.x86_64 5.3.3-14.el6_3 updates ←★これっぽい
php-pecl-apc-devel.x86_64 3.1.9-2.el6 base
php-process.x86_64 5.3.3-14.el6_3 updates
php-pspell.x86_64 5.3.3-14.el6_3 updates
php-recode.x86_64 5.3.3-14.el6_3 updates
php-snmp.x86_64 5.3.3-14.el6_3 updates
php-tidy.x86_64 5.3.3-14.el6_3 updates
php-zts.x86_64 5.3.3-14.el6_3 updates
rrdtool-php.x86_64 1.3.8-6.el6 base
uuid-php.x86_64 1.6.1-10.el6 base
[/default]
欲しいパッケージがみつかったので、yum コマンドでインストールしてみます。
[default]
[root@sv homepage]# yum install php-mbstring
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
* base: www.ftp.ne.jp
* extras: www.ftp.ne.jp
* updates: www.ftp.ne.jp
Setting up Install Process
Resolving Dependencies
--> Running transaction check
---> Package php-mbstring.x86_64 0:5.3.3-14.el6_3 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
========================================================================================
Package Arch Version Repository Size
========================================================================================
Installing:
php-mbstring x86_64 5.3.3-14.el6_3 updates 453 k
Transaction Summary
========================================================================================
Install 1 Package(s)
Total download size: 453 k
Installed size: 2.1 M
Is this ok [y/N]: y ←★一旦聞かれるので、yを入れる
Downloading Packages:
php-mbstring-5.3.3-14.el6_3.x86_64.rpm | 453 kB 00:00
Running rpm_check_debug
Running Transaction Test
Transaction Test Succeeded
Running Transaction
Warning: RPMDB altered outside of yum.
Installing : php-mbstring-5.3.3-14.el6_3.x86_64 1/1
Verifying : php-mbstring-5.3.3-14.el6_3.x86_64 1/1
Installed:
php-mbstring.x86_64 0:5.3.3-14.el6_3
Complete!
[root@sv homepage]#
[/default]
無事、「Complete!」が表示されたので、インストールは成功したようです。
今回は先に行いましたが、確認のため php.ini の設定で、mbstring を有効にして、最後に、apache の再起動。
[default]
[root@sv homepage]# apachectl restart
[/default]
確認したら、きちんと php が動きました。
やったね!