自宅サーバを新調して、旧自鯖の必要なデータは全て新鯖に移行した。
Debianもwheezyからjessieになった。
Debian jessieでもaptでphpをインストールすると5.6が入るが、php5.6のサポート期限は2017年8月となっており、あと1年も無いのは微妙。
それならいっそ、早いと巷で噂のphp7を入れてやろうじゃないか。
前提:Debian jessie , Apache2インストール済み
※Apacheで使う前提の手順
php7のインストールと設定
php7のインストール方法は謎のリポジトリを追加する方法も知られているが、GitHubから簡単にインストールできたのでそちらでいく。
php7のインストール
1.gitが入ってない場合はインストールしておく
[bash]
$ sudo apt-get install git
[/bash]
2.適当なディレクトリでクローンを作成
[bash]
$ git clone https://github.com/kasparsd/php-7-debian.git
[/bash]
3.build.shを編集
マニュアルにはそのままbuild.shを実行しろとあるが、そのまま実行するとApache用のモジュールを生成してくれない。
CONFIGURE_STRING=””の中に「–with-apxs2=/usr/bin/apxs」「–with-apxs2=/usr/bin/apxs2」を追加して上書きしてやる必要がある。
※apxsがインストールされていない場合apache2-devもインストールする必要がある(と思う)
2017/05/09追記
apxs2が存在しない場合、以下をインストールする。
preforkならapache2-prefork-dev
workerならapache2-threaded-dev
[bash]
$ cd php-7-debian
$ sudo vi build.sh
–with-curl \
–enable-fpm \
–with-fpm-user=www-data \
–with-apxs2=/usr/bin/apxs2 \ #適当な場所に追加
–with-fpm-group=www-data"
[/bash]
※–enable-fpmやその他fpm周りのオプションはApache2で使うだけであれば不要なので削除してもよい気がする。
4.インストール
[bash]
$ ./build.sh
$ sudo ./install.sh
[/bash]
正常に完了すると、/usr/lib/apache2/modules/libphp7.soが生成されている。
また、/etc/apache2/mods-available/php7.confが生成されている。
php.iniの設定
memory_limitがデフォルトで128MBになっていて「おおっ」となったが、post_max_sizeとupload_max_filesizeは物足りなかったので必要なら。
どちらかの値が128MBを超えるならmemory_limitも合わせて調整しないといけないよ。
[bash]
$ sudo vi /usr/local/php7/lib/php.ini
post_max_size = 32M
upload_max_filesize = 32M
[/bash]
Apache2の設定
apache2.confを編集する
最下行にでも以下を追加する。
[bash]
$ sudo vi /etc/apache2/apache2.conf
<IfModule php7_module>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
[/bash]
php7_moduleを有効にする
[bash]
$ sudo a2enmod php7
$ sudo systemctl restart apache2
[/bash]
動いているか確認する
phpinfoで確認しよう。
[php]
<?php phpinfo(); ?>
[/php]
aptでphpmyadminなどを先に入れてしまっていた場合
apt-get install phpmyadminなどすると、依存パッケージとしてphp5.6が入る。
その場合、a2dismod php5などしてphp5を外しておかないといけない。
php7を入れた後にphpmyadminを入れたらどうなるかは知らない。
コメント
[…] 1.Raspbianで公式php7をビルド & インストールする2.Debian8(jessie)にphp7をインストールしてApache2.4で動かす […]