前置き
前回、Laravelの動作が確認できるところまで行いました。
前回は、
Laravelの構築としては終わりですが、私個人は元々読んでた書籍でLaravelがサンプルだったのでやってきたので、そちらの学習を進めます。
なんて最後に書いていましたが、いざ書籍を読み直してみるとPHPとLaravelのバージョンが厳密に指定してあり、バージョンが違うと動かないかもしれない旨まで記載してあるではありませんか。
多少のバージョン違いなら何とかなるかもとも思ったのですが、巷の噂(いわゆるTwitter)でPHPはバージョンが違うとまともに動かなくなるような機能も多いとも聞いたことがあります。
書籍の指定するPHPのバージョンは7.2で自身の入れたPHPは8.1、メジャーバージョンすら違うのでこのまま進めるのは結構怖いです。
というわけで、PHPなどのバージョンを揃えて環境構築を行うことを決心しました。
ただXAMPPでPHPのバージョンを切り替えるのは面倒臭そうなことも分かってきたので、Linuxの仮想マシンでやってしまおうと方向転換をすることにしました。
そんなわけて、Laravelの環境構築 ~VirtualBox + Vagrant の仮想Linux環境への構築編~ が始まったわけです。
とりあえず本記事では、WindowsでのLaravel導入第1段階目と同じ、Apache と PHPを使えるようにするところまで行います。
↓ 参考書籍です
手順
仮想マシンの準備
書籍ではAWSのEC2を用いて説明がなされていましたが、AWSはまだ契約する気が無いので、Amazon Linux 2のディストリビュージョンと同じ(と推定される)ものであるCentOSの仮想マシンを立てることにします。(使ったこと無いです・・・)
過去記事の仮想マシンの環境構築を行っている想定ですすめます。
同期時の動作確認の項での作業をUbuntuではなくCentOSで行います。
- 上記の通りやっていれば、Documents\Vagrant\のフォルダがあるかと思いますので、そこにlaravel_sampleというフォルダを作成します
mkdir laravel_sample
- 作成したフォルダに入ります
cd laravel_sample
- CentOSのVagrant Boxを落としてVagrantfileを作成します
vagrant init centos/7
- Vagrantfileの下記設定をコメントアウトから復活させておくと後々、接続しに行く時にアクセスしやすいです
config.vm.network "forwarded_port", guest: 80, host: 8080, host_ip: "127.0.0.1"
- 起動します
vagrant up
VS CodeとVagrantの接続
通常はこの後、vagrant sshを使ってCentOSに接続していきますが、Laravelの開発を行うことを考えるとIDEを使ってリモートSSHをやったほうが都合が良さそうなので、そのあたりの設定を行いながら進めていきます。
- VS Codeの拡張機能で、[Remote Development]をインストール
- [リモートエクスプローラ]というアイコンがサイドバーに追加されるので開き、ドロップダウンで[SSHターゲット]を選択する
- 歯車アイコン(構成する)をクリックすると、Configファイルを作る場所を聞かれるので、[<ユーザーディレクトリ>\.ssh\config]を選択
- SSH接続のために必要な情報を入力するが、Vagrantにおいては、ターミナルに以下のコマンドを入力すると、その仮想マシンの接続情報を表示してくれる
vagrant ssh-config
- 表示情報の中から、[HostName], [User], [Port], [IdentityFile]の情報をそれぞれコピペする([Host]はリモートエクスプローラの表記なので、なんでもOK)
- 保存するとリモートエクスプローラにターゲットが表示されるので、現行IDEか新規IDEの好きな方で接続を開始する
- [linux] → [続行する]
- 接続が完了すれば、VS CodeでのCentOS編集が可能になる
- ディレクトリを視覚的に見れるので便利
- 内部ターミナルもそのまま使える
Apacheのインストール
Linuxなので、難しいことは考えずにガンガンインストールしていきます。
- Apacheをyumでインストール
sudo yum -y install httpd
- インストールされたかをチェック
sudo yum list installed | grep httpd
- インストールパスを確認(恐らく[/usr/sbin/httpd])
which httpd
- Apacheの起動
sudo systemctl start httpd
- 接続確認のため、ブラウザで[localhost:8080]にアクセス
- 次からは、仮想マシン起動時に自動起動したいので以下のコマンドを入力
sudo systemctl enable httpd
Git, MySQL, Vimのインストール
仮想環境のLinuxですし、書籍でDBの接続等もサンプルがあるようなので、ついでにこれらもインストールします。
Git
sudo yum -y install git
MySQL
sudo yum -y install mysql
クライアント側のMySQLパッケージです。
MySQL本体は、別途用意するか下記の記事のように同じ仮想マシンにインストールしても構いません。
※ 記事が完成したらリンクします。
Vim
sudo yum -y install vim
PHP7.2のインストール
CentOSにバージョンを指定しながらPHPをインストールするためのポピュラーな方法には、Remiという方が提供するRemiリポジトリからインストールすると良いそうです。
普通にインストールすると、PHP 5.4とかが入るらしいです
EPEL
Remiリポジトリをインストールするために必要なリポジトリ(面倒だな・・・)
sudo yum -y install epel-release
Remi
Remiリポジトリのインストール
sudo yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
リポジトリの確認
ls -l /etc/yum.repos.d/
以下のものがPHP7.2
-rw-r–r–. 1 root root 1314 Sep 2 09:05 remi-php72.repo
PHP
インストール
sudo yum -y install --enablerepo=remi,remi-php72 php
そしてバージョン確認
php -v
7.2ならOK
最後に
行ったり来たりするのもソフトウェア開発の醍醐味ですよね
少なくとも知識はつくはず