LAMP環境構築、Composer&CakePHP導入まで
今週は仕事から帰ったらPHPのフレームワークを使うために四苦八苦しておりました。
Laravelを入れたくてLaravel Homesteadについて調べていましたが、どこをどう触ればいいのかがなかなかわからず…。並行して調べていたCakePHP導入の方がうまくいったので、今回はその方法についてまとめていきます。
基礎となるLAMP環境構築のうちCentOSについて、コマンドプロンプトを管理者として実行し、下記のコマンドを実行していく。この手順ではCentOS7.2を導入する。
- cdで仮想マシンのVagrantFileを置くフォルダまで移動
- vagrant init "bento/centos-7.2"を実行し、VagrantFileを作成
- VagrantFileを開き(自分の場合はAtomで開いている)、IPのコメントアウトを外して任意のIPに書き換える。初期値は192.168.33.10になっているので、自分は他の仮想マシンと被らないよう192.168.33.30に書き換えている。
- VagrantFileについて、config.ssh.insert_key=falseを加筆する。デフォルトだと仮想マシンごとにsshの鍵が作られるので、同じ鍵を使うようにしたいため。鍵そのものは~\.vagrant.d\insecure_private_key(Windowsのユーザーフォルダ)に作成される。
- ここでコマンドプロンプトに戻り、vagrant upを実行する。おそらく共有フォルダのマウントに関するエラーを出すが、起動そのものはできるはず。
- vagrantの起動を行った状態でvagrant sshを実行。仮想マシンにログインする。仮想マシンに対してコマンドプロンプト越しにいろいろなコマンドを打っていくが、これから実行するのはほとんどが管理者権限が必要になるコマンドとなる。なのでsuと入力し、root権限を取得しておく(パスワードを求められるが、この手順通り作業しているならパスワードはvagrantなはず)。rootになるとコマンドプロンプトの頭に付く$が#に変わる。
Apacheをインストールして起動するため、以下のコマンドを実行。
- yum -y install httpdと入力し、Apacheをインストール。インストールが終わったらhttpd -vでバージョン確認、その後systemctl start httpdと入力してApacheを起動させる。
MySQLをインストールするため、以下のコマンドを実行
- CentOSにはMariadbが最初から入っているため、yum -y remove mariadb-libs.x86_64を実行してこれのアンインストールを行う。
- yum -y install http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpmを実行、リポジトリを追加。
- yum -y install mysql-community-serverを実行し、MySQLをインストール。終わったらmysqld --versionでバージョンの確認を行い、systemctl start mysqldで起動。
以下のコマンドでPHPをインストールする。下記の手順ではPHP7がインストールされる。
- yum -y install epel-releaseとrpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-7.rpmを実行し、リポジトリを追加。
- yum -y install --enablerepo=remi,epel,remi-php70 php php-devel php-intl php-mbstring php-pdo php-gd php-mysqlndを実行し、PHPをインストール。その後php -vでバージョンの確認。
LAMP環境構築(その他)
他にも必要なものがあるので、下記のコマンドをそれぞれ実行。
- yum -y install gitを実行し、Gitをインストール。
- CakePHPをインストールする際にzipファイルの解凍が必要となるが、今回の手順ではzip解凍に必要な機能がCentOSにインストールされていない。yum insatall -y zip unzipを実行し、その機能をインストールしておく。
composerインストール
ライブラリの依存管理ツールであるcomposerをインストールする。これによりCakePHPのインストールがコマンド一発で行える。Laravelなどでも使われる。
- php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"を実行し、セットアップスクリプトとなるPHPファイルをダウンロードする。これはhome\vagrantの直下に置かれる。ls -lを実行すれば現在のフォルダにどんなファイルがあるのかをコマンドプロンプト上で確認できる。
- ダウンロードしたPHPファイルをphp composer-setup.phpで実行し、composerの本体であるcomposer.pharを入手。php -r "unlink('composer-setup.php');"を実行し、セットアップスクリプトは削除しておく。
- これまではvagrantにroot権限でログインしているが、composerを使うときはroot権限を持っていると逆にエラーの原因となってしまう場合がある。exitと入力し、通常のユーザーとしてログインしている状態(コマンドプロンプトの先頭が$)の状態に戻しておく。
- ./composer.phar -vを実行し、派手なアスキーアートが出ればセットアップが完了している。
- CentOSのどこからでもcomposerコマンドが実行できるよう、本体を別のフォルダへ移しておく。再び管理者権限でログインし、mv composer.phar /usr/local/bin/composerを実行すればよい。その後は一度通常ユーザーに戻り、composerと入力するだけであの派手なアスキーアートが表示される。
CakePHPインストール
いよいよCakePHPの導入を行う。以下のコマンドを実行。
- composer self-update && composer create-project --prefer-dist cakephp/app 〇〇を実行。〇〇には任意のフォルダ名を入れる(cakephpなど)。指定したフォルダの下にCakePHPに関するファイルがダウンロードされる。
手順は以上となる。
インストールできたはいいが、CakePHPどころかApacheの使い方や設定がわからないので随時勉強していこう。
…やっぱりエラーが出た。たぶんPHPのインストールで何か問題がありそう