DigitalOceanのUbuntu 14.04やUbuntu 16.04でphp5.6のphp-fpmをインストールするときの備忘録。
DigitalOceanのUbuntu 16.04でphp5-fpmをインストールしようとすると、
Package php5-fpm is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'php5-fpm' has no installation candidate
と言われ、php-fpmをインストールしようとすると
The following additional packages will be installed:
php-common php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-opcache php7.0-readline
Suggested packages:
php-pear
The following NEW packages will be installed:
php-common php-fpm php7.0-cli php7.0-common php7.0-fpm php7.0-json php7.0-opcache php7.0-readline
0 upgraded, 8 newly installed, 0 to remove and 11 not upgraded.
とphp7がインストールされちゃいます。DigitalOceanのUbuntu14.04でもphp5-fpmをインストールすると以下のバージョンでインストールされちゃうようです。
PHP 5.5.9-1ubuntu4.20 (fpm-fcgi)
インストール方法
PPAのリポジトリを追加してインストールすればOK$ LC_ALL=C.UTF-8 add-apt-repository -y ppa:ondrej/php
$ sudo apt-get update && sudo apt-get upgrade
$ sudo apt-get install php5.6-cli php5.6-fpm php5.6-mysql \
php5.6-sqlite3 php5.6-curl php5.6-gd php5.6-mcrypt
リポジトリが正常に追加されているかどうかの確認は以下のコマンドで可能
$ sudo apt-cache policy php5.6-fpm
php5.6-fpm:
Installed: (none)
Candidate: 5.6.27-1+deb.sury.org~xenial+1
Version table:
5.6.27-1+deb.sury.org~xenial+1 500
500 http://ppa.launchpad.net/ondrej/php/ubuntu xenial/main amd64 Packages
LC_ALLでエンコーディングを指定しないと以下のエラーが発生します。
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc5
in position 92: ordinal not in range(128)