LoginSignup
8
13

More than 3 years have passed since last update.

CentOS7にyumでPHP7とパッケージを気軽に何度も入れなおす。

Last updated at Posted at 2016-04-29

今回のプロジェクトでは、導入しやすいKey-Value-Storeを用いたいので、Redisを選択。

>redis-cli ping
PONG

これはいけたので(また別件でハマってたんですけどね)、PHPで動くようにredisパッケージをインストールして動くようにしたい。

しかしここで大ハマリ。その顛末と解決策まとめ…

欲しい情報は顛末の経緯じゃなくて、解決策!それさえあれば快傑ズバット。「ヒュ〜ゥ、チッチッチ」のあの名シーンのように。

まずは、こんな感じでハマったんでしょ?

ウェブ上にアップされているいろいろな情報を模索して、いろんなリポジトリを設定して放り込んでいくうちに、
パッケージの相互の整合性がとれなくなってくるのでしょうか?インストールできない状態になりがち。

そこで無理やりやろうとして

>sudo yum -y install php70-php-pecl-redis.x86_64

これを実行して、インストールできた気になって、php.ini の最後の行にこれ書いて

/etc/php.ini
extension=redis.so

サービスをリスタートして

>sudo systemctl restart httpd.service

これで解決しめしめと思って、

index.php
<?=phpinfo()?>

これで確認しても「redisがない。」とすっかりハマってませんでしたか?

なぜそうなるか正確には僕にはわかりませんが、redis.soがうまく認識されないからだと予測をたてました。
モダンなPHPはパッケージを読み込むファイルを
/etc/php.d/.にまとめています。だからといって、そこにredis.iniファイルを置いてその中に先ほどの1行を記載しても解決しない。

それではってことでPHP7とパッケージ一式全てを再インストールすれば美しく解決します。
これはPHP5.6でハマった方々も同じように解決できるのでは。

これで解決!

まずは、何がインストールされているか確認しましょう。
このコマンドでPHPに関連する一覧が確認できます。

>rpm -qa | grep php

これらを全て削除します。このコマンドはphpにワイルドカードつけてます。自己責任で。自己責任とは「書いている僕は責任負いません。読んでる君が責任負うよ」ってことです。

>sudo yum -y remove php*

これでphpはあっさり消えました。

続いてPHP7とredis含むパッケージをインストール。その前に、リポジトリーの向き先だけ整えておきましょう。

yumのアップデートと必要なパッケージのインストール
sudo yum -y update
sudo yum -y install yum-plugin-priorities
EPELリポジトリ追加
sudo yum -y install epel-release
Remiリポジトリ追加
sudo rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

「終了のお知らせ」

RPMforgeリポジトリ追加
sudo yum -y install http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.3-1.el7.rf.x86_64.rpm

途中、エラーメッセージ「既にインストールされてます」ってが出るかもしれませんが、そういうことです。
そしてPHP7と関連パッケージをインストール

PHPインストール
sudo yum install --enablerepo=remi-php74 -y php php-mbstring php-pear php-fpm php-pdo php-intl php-mysqlnd php-pecl-redis php-xml php-gd php-json

インストールしたいものを並べておきましょう。
今回はRedisがきっかけでハマりこの現象の解決策に行き着きましたが、他のパッケージも同様のことが起こりそうなので、そのときここに行き着いたら試してみてください。最初はどきどきですが意外とあっさりですので。

参考記事

http://www.unionnet.jp/develop/php7/
http://qiita.com/pakiln/items/e3351ade2bb5aeb198dc
http://qiita.com/shinofara/items/9476cee35cfac1b7ee50

8
13
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
13