Ubuntuにphpenvで複数バージョンのphpをいれる

諸事情で古めのphpが必要になったので、phpenvを試してみました
エラーでまくりでかなり時間かかりましたが、手順をまとめておきます

必要なものをいれます
$ sudo aptitude install -y libxml2 re2c autoconf bison libxml2-dev libcurl4-dev libjpeg62 libjpeg62-dev libreadline6-dev libpng12-0 libpng12-dev libtidy-dev libxslt-dev libltdl-dev libltdl7 libltdl7-dev libmcrypt-dev openssl libcurl4-openssl-dev

phpenv、php-buildを落としてきます

$ curl -L https://raw.github.com/CHH/phpenv/master/bin/phpenv-install.sh | bash
$ git clone git://github.com/CHH/php-build.git ~/.phpenv/plugins/php-build
$ echo ‘export PATH=”$HOME/.phpenv/bin:$PATH”‘ >> ~/.bashrc
$ echo ‘eval “$(phpenv init -)”‘ >> ~/.bashrc
$ exec $SHELL -l

configureのオプションを修正
$ vim ~/.phpenv/plugins/php-build/share/php-build/default_configure_options

enable-fpm
を消して
–with-apxs2=/usr/sbin/apxs
を追記

$ phpenv install -l
でバージョンを確認

$ phpenv install 5.3.29
でだめだったので

rootになって試しました(phpenvを入れなおしたかも)
$ sudo -s
$ phpenv install 5.3.29
で入りました

php.iniが
~/.phpenv/versions/5.3.29/etc/php.ini
にあります

date.timezone = Asia/Tokyo
pdo_mysql.default_socket=/var/run/mysqld/mysqld.sock
mysql.default_socket = /var/run/mysqld/mysqld.sock
mysqli.default_socket = /var/run/mysqld/mysqld.sock

を追記

phpenv-apache-versionをいれます
$ git clone https://github.com/garamon/phpenv-apache-version ~/.phpenv/plugins/phpenv-apache-version

バージョンセット
$ phpenv apache-version 5.3.29

apache再起動して完了

苦労しました..

(参考)
ubuntuにphp-buildでphp5.5を入れるためにシェルスクリプトと格闘した記録 | hirobanex.net
phpenvの導入して複数バージョンのPHPを管理する – Qiita
Hunting Field: もう一度php-5.3.8を入れる
ubuntuにphp-buildでphp5.5を入れるためにシェルスクリプトと格闘した記録 | hirobanex.net

apt-get updateとupgradeの違い

忘れそうになるのでメモ

apt-get update データベースの更新
apt-get upgrade ソフトウェアの更新

ざっくりこんな感じ
updateでリポジトリのデータを最新にして、実際いれるのはupgrade

apt-get dist-upgrade
はカーネルが変わるのにも対応したupgrade

とざっくり理解

UbuntuでApacheの実行ユーザーを調べる

Apacheが動いているときに簡単に見るには

$ ps aux | grep apache2

www-data 10153  0.0  0.5 276228  5828 ?        S    16:40   0:00 /usr/sbin/apache2 -k start
www-data 10154  0.0  0.5 276228  5828 ?        S    16:40   0:00 /usr/sbin/apache2 -k start
www-data 10155  0.0  0.5 276228  5828 ?        S    16:40   0:00 /usr/sbin/apache2 -k start
www-data 10156  0.0  0.5 276244  6072 ?        S    16:40   0:00 /usr/sbin/apache2 -k start
www-data 10157  0.0  0.6 276464  6740 ?        S    16:40   0:00 /usr/sbin/apache2 -k start
www-data 10260  0.0  0.5 276228  5828 ?        S    16:41   0:00 /usr/sbin/apache2 -k start

こんな感じで確認できます

phpのビルトインサーバーで簡単に動作確認

昔はWebサーバーにphpを使って確認しようとしたら
ApacheとかNginxとかWebサーバーが必要でしたが
php 5.4からはphpにサーバーがついています

php -S localhost:8000

とかすればWebサーバーが起動します
起動したディレクトリのファイルにアクセスできるので
ブラウザで

http://localhost:8000/sample.php

とかでアクセスできます
(index.phpを用意してればhttp://localhost:8000/だけでOK)

php -S 0.0.0.0:8000

としてあげれば、ネットワークがつながっている違うPCからもアクセスできます

アクセスするときは、

http://立ち上げたPCのIPアドレス:8000/sample.php
でアクセスできます

つながらないときは、ネットワークがつながってないか、ファイアーウォールなどで弾かれてるかだと思います