この記事を三行にまとめると
PHPの7をインストールしたい場合はどうするかlistというオプションを使うと簡単に調べられます
パッケージ? モジュール?
ApacheやPHPをサーバーにインストールしたい場合、yumでインストールするなら一行で簡単にできます。
ただしこれだと自分の望むバージョンをインストールできないかもしれない。例えばAWSのEC2の場合、この記事を書いている時点では、上記のコマンドでインストールを実行すると、Apacheは2.2、PHPは5.3がイントールされます。
じゃあここで、Apacheの2.4やPHPの7をインストールしたい場合はどうするか。
そういう時は明示的にバージョンを指定してやむることでインストールできます。
「httpd」を「httpd24」、「php」を「php70」に変えています。「httpd2.4」みたいにピリオドはつけない。
PHPの本体をインストールできたら次の手順としてはPHP関連のパッケージのインストールになると思いますが、それらもやむれるものは同様のやり方でできます。
例えばこんな風にPEARやmbstringなどをインストールできます。
ただしPHPの本体をバージョン指定でインストールした場合、パッケージも互換性のあるバージョンを入れないと正しく動かない場合があります。あるいはインストール時に「このバージョンではダメだ」みたいなエラーが出ます。
今回はPHP7.0をインストールしたので、他もそれに対応したものを入れる。
考え方はさっきと同じです。パッケージ名にバージョンをつければいい。「php-gd70」ではなく、「php70-gd」という書き方になります。PEARの場合は「pear70-pear」ではなく「php7-pear」になります。0がない。
書き方を知っていれば特に迷うことはないのですが、知らないと「他と同じでphp70-pearじゃねえのか?」とか思いたくなっちゃいますよね。僕も実際にそうだろうと思ってやむろうとしたら「そんなパッケージはねえ!」ってLinuxに怒られてしまいました。
バージョンをつける時、関連したパッケージはどういう風に書けば良いのか調べるには、yumコマンドでlistというオプションを使うと簡単に調べられます。
これでやむれるパッケージの一覧が表示される。ただし単純にリストを使うと全パッケージが表示されるので、膨大な量の一覧になってしまう。なのでPHPに関連したものだけを表示したい場合はgrepを使うと良いです。
こんな感じのリストが出てきます。パッケージ名の横にバージョンが表示されます。phpやphp-gdの場合はバージョンが5.3.29であることが分かりますね。「amzn-main」の前に「@」がついているのはサーバーにインストール済みの状態を表します。
ちなみに現時点でもPHP7.1以降のバージョンが出てはいるのですが、そっちは単純にやむって入れることができないので今回はパスします。
ところでパッケージって言い方で良いんですかね? パッケージ? モジュール? あなたが知識の泉に落とすならどっち?
//Apache
# yum install httpd
//PHP
# yum install php
ただしこれだと自分の望むバージョンをインストールできないかもしれない。例えばAWSのEC2の場合、この記事を書いている時点では、上記のコマンドでインストールを実行すると、Apacheは2.2、PHPは5.3がイントールされます。
じゃあここで、Apacheの2.4やPHPの7をインストールしたい場合はどうするか。
そういう時は明示的にバージョンを指定してやむることでインストールできます。
//Apache2.4
# yum install httpd24
//PHP7.0
# yum install php70
「httpd」を「httpd24」、「php」を「php70」に変えています。「httpd2.4」みたいにピリオドはつけない。
PHPの本体をインストールできたら次の手順としてはPHP関連のパッケージのインストールになると思いますが、それらもやむれるものは同様のやり方でできます。
# yum install php-pear
# yum install php-gd
# yum install php-mbstring
# yum install php-mysqlnd
例えばこんな風にPEARやmbstringなどをインストールできます。
ただしPHPの本体をバージョン指定でインストールした場合、パッケージも互換性のあるバージョンを入れないと正しく動かない場合があります。あるいはインストール時に「このバージョンではダメだ」みたいなエラーが出ます。
今回はPHP7.0をインストールしたので、他もそれに対応したものを入れる。
# yum install php7-pear
# yum install php70-gd
# yum install php70-mbstring
# yum install php70-mysqlnd
考え方はさっきと同じです。パッケージ名にバージョンをつければいい。「php-gd70」ではなく、「php70-gd」という書き方になります。PEARの場合は「pear70-pear」ではなく「php7-pear」になります。0がない。
書き方を知っていれば特に迷うことはないのですが、知らないと「他と同じでphp70-pearじゃねえのか?」とか思いたくなっちゃいますよね。僕も実際にそうだろうと思ってやむろうとしたら「そんなパッケージはねえ!」ってLinuxに怒られてしまいました。
バージョンをつける時、関連したパッケージはどういう風に書けば良いのか調べるには、yumコマンドでlistというオプションを使うと簡単に調べられます。
# yum list
これでやむれるパッケージの一覧が表示される。ただし単純にリストを使うと全パッケージが表示されるので、膨大な量の一覧になってしまう。なのでPHPに関連したものだけを表示したい場合はgrepを使うと良いです。
# yum list | grep php
//結果の一部
php7-pear.noarch 1:1.10.1-1.24.amzn1 @amzn-main
php70.x86_64 7.0.16-1.21.amzn1 @amzn-main
php70-gd.x86_64 7.0.16-1.21.amzn1 @amzn-main
php-pear.noarch 1:1.9.5-2.17.amzn1 amzn-main
php.x86_64 5.3.29-1.8.amzn1 amzn-main
php-gd.x86_64 5.3.29-1.8.amzn1 amzn-main
こんな感じのリストが出てきます。パッケージ名の横にバージョンが表示されます。phpやphp-gdの場合はバージョンが5.3.29であることが分かりますね。「amzn-main」の前に「@」がついているのはサーバーにインストール済みの状態を表します。
ちなみに現時点でもPHP7.1以降のバージョンが出てはいるのですが、そっちは単純にやむって入れることができないので今回はパスします。
ところでパッケージって言い方で良いんですかね? パッケージ? モジュール? あなたが知識の泉に落とすならどっち?