Vagrant + Ubuntu 14.04にLAMP環境を積んでCakePHP 2を動かすまでの顛末
サラの Vagrant + Ubuntu 環境から CakePHP 2 を動かすまでの顛末を、記憶が新しいうちにまとめておきます。
Vagrant + Ubuntu 14.04 を準備
既に Vagrant が動く前提で話します。(以下、全て先頭の$
を省略します)
vagrant box add ubuntu14 http://cloud-images.ubuntu.com/vagrant/trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box
- http://www.vagrantbox.es/
- box の参照元は例を使わず、ここで最新版を確認してください。
mkdir vagrant/ubuntu14
cd vagrant/ubuntu14
vagrant init
VagrantFile を編集
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
# 略
config.vm.box = "ubuntu14"
# 略
config.vm.network :private_network, ip: "192.168.33.10"
# 略
config.vm.synced_folder "/Applications/MAMP/htdocs/my-app-folder", "/var/www/html/my-app-folder"
# 以下略
end
- config.vm.synced_folder によってシンボリックリンクが作成されます。私は今まで MAMP 環境だったので、
htdocs
から動かさずにそのまま適用させています。 - 細かい部分は私も始めたばかりでよく判っていないので、最低限のものです。
VM を起動
cd vagrant/ubuntu14
vagrant up
vagrant ssh
スナップショットを作成
この段階でスナップショットを撮っておくといいかもしれません。
- Qiita | Vagrant にスナップショット機能を加える plugin、vagrant-vbox-snapshot の紹介
- [Vagrant] 仮想マシンのスナップショットとるなら vagrant-vbox-snapshot が便利
- こちらの記事を参考にさせてもらいました。
PHP 5.5 系をインストール
sudo apt-get install python-software-properties
sudo add-apt-repository ppa:ondrej/php5
sudo apt-get update
sudo apt-get install php5 php5-cli
$ php -v
PHP 5.5.11-3+deb.sury.org~trusty+1 (cli) (built: Apr 23 2014 12:15:16)
Apache2 を確認
sudo service apache2 start
ps aux | grep apache2
- 数行いろいろ表示されたら OK(らしい)
- ここでローカルのブラウザから以下を確認してみる。
- http://192.168.33.10/
- 表示される(はず)
cd /var/www/html
- 'It works!'の中身はここ。
CakePHP2 を動かすために
CakePHP のパーミッションを設定
http://192.168.33.10/my-app-folder/
で繋がるようになるものの、いろいろ怒られます。なのでパーミッションを変更します。Ubuntu 上ではchmod
がなぜか効かなかったので、今回 Mac 側で設定しました。設定の過程は省略。
lib/Cake/Cache/
app/tmp/
app/webroot/
この辺りをすべて777
にしました。今回はとにかく動くことだけを目指したので、現段階でセキュリティ面は配慮していません。
PHPUnit 3.7 をインストール
「PHPUnit が無い」と怒られるのでインストールしたいのですが、CakePHP 2 は PHPUnit 4 系に対応していないので、あえて 3.7 をインストールする必要があります。
MySQL Server をインストール
おっと、まだ MySQL も入っていません。
sudo apt-get install mysql-server
動作確認。
mysql -u username -p’pass’ -D mysql -e "SELECT version()"
phpMyAdmin をインストール
phpMyAdmin も入れておきます。
sudo apt-get install phpmyadmin
ここで-y
オプションを付けると怒られるので付けないように。途中いろいろ聞かれます。OK
やらYes
を選んだ記憶があるのですが、ちょっと忘れました。
このあとhttp://192.168.33.10/phpMyAdmin/
に繋いでも 404 エラーとなり、しばらくハマってしまったんですが、単にインストール先が違っていただけでした。
sudo ln -s /usr/share/phpmyadmin /var/www/html
シンボリックリンクを作成して解決。phpMyAdmin では、MAMP 環境でのユーザー設定などを色々再設定しています。データベースは、今はお遊びなので永続化は考えておらず、簡単にインポートしただけです。
Apache の mod_rewrite を有効にする
最後に一番ハマってしまった箇所を記します。CakePHP のルーティングが全く働かず 404 を連発したのですが、原因は mod_rewrite が無効になっていたせいでした。
sudo a2enmod rewrite
sudo vi /etc/apache2/apache2.conf
<Directory /var/www/>
Options Indexes FollowSymLinks
# AllowOverride None
# 以下に変更
AllowOverride All
Require all granted
</Directory>
sudo service apache2 restart
これで(恐らく)完了
http://192.168.33.10/my-app-folder/
につなぐと MAMP 環境での動作時と同じように動きました! 記憶が残っているうちに本記事を書き殴っているため、記憶に抜けがあったり手順が不足していたりするかもしれませんが、ご容赦下さい。
また、人によって環境が微妙に異なるかもしれません。手順の参考ということでお願いします。それでは。
Discussion