AmazonEC2「CentOS7」でDockerコンテナ起動後、Laravel6をインストールしてみる

AmazonEC2「CentOS7」でDockerコンテナ起動後、Laravel6をインストールしてみます。

前回、AmazonEC2「CentOS7」でDockerコンテナ起動(CentOS)という記事を公開しましたが、Dockerコンテナを起動した後、Laravel6をインストールしてみます。

Laravelとは、PHPで書かれたWebアプリケーションフレームワーク(ひな形)である。

今回主に参考にしたURL:https://www.geekfeed.co.jp/geekblog/laravel6_docker

Amazonマシンイメージ

「CentOS 7 (x86_64) – with Updates HVM」

AmazonEC2で作成した「CentOS7」でDockerコンテナ起動

AmazonEC2で作成した「CentOS7」にPuTTYを使用し接続。ターミナルウインドウを表示。

一般ユーザーからroot権限に切り替えて作業を行う。

[root@localhost ~]# docker run -p 8443:443 --rm --privileged -d -it centos:centos7 /sbin/init

上記のコマンドを入力し、ENTERキーを押す。コマンドの「-p」でオプションを付けて、ホストサーバの”8443”ポートへの通信をコンテナの”443”ポートへフォワードさせます。これは、今後SSL化を行ってみるためです。他にも「–rm」でクリーンアップ、コンテナ終了時にファイルシステムから削除。「-d」でデタッチモードで起動、ルートプロセス終了時にコンテナも終了。「-it」でコンテナの標準出力に入るiと、疑似ターミナルを割り当てるtオプションの混合となります。

9cb10e27809036a575e4a0f9ea669d0d0e0871498c590483e90e5eaeedd6a0co

押すと、上記の英字と数字が混ざったものが出力されます。これで新しいコンテナが作られて起動されます。

ちゃんとコンテナを起動できているかを確認します。

[root@localhost ~]# docker ps

上記のコマンドを入力し、ENTERキーを押します。

「9cb10e27809c centos:centos7 “/sbin/init” About a minute ago」

ENTERキーを押すと、CONTAINER IDに今回起動した「9cb10e27809c」のID名が追加されていることが確認できました。

[root@localhost ~]# docker exec -it {CONTAINER_ID} /bin/bash

確認ができましたので、今回起動したコンテナに接続して操作を行いますので、上記のコマンドを入力し、ENTERキーを押します。

ENTERを押すと、今回起動したコンテナID「9cb10e27809c」が「root@」の右側につきます。この状態になると、コンテナへの接続は完了です。

PHP7.3のインストール

接続が完了後、Laravel 6をインストールするためには、PHP7.2以上が必要となりますので、PHP7.3をインストールします。それと関連して必要なモジュールも合わせてインストールしてきます。

[root@9cb10e27809c /]# yum -y install epel-release

まずは、epel-release のパッケージをダウンロード、インストール。

[root@9cb10e27809c /]# yum -y install http://rpms.famillecollet.com/enterprise/remi-release-7.rpm

次に、Remiのリポジトリ設定パッケージをダウンロード、インストール。

[root@9cb10e27809c /]# yum -y install --enablerepo=remi,remi-php73 php php-devel php-mbstring php-pdo php-gd php-xml php-mcrypt php-fpm php-zip

次に、必要なモジュールをインストールをダウンロード、インストール。

それぞれ、ダウンロードとインストールを行いますが「Complete!」と表示されればインストールは問題なく完了となります。

Laravel 6のインストール

PHP7.3のインストールと、それと関連して必要なモジュールも合わせてインストールが完了しましたので、いよいよ本題のLaravel 6のインストールとなります。

Laravel 6のインストールには、composerと呼ばれるPHPのパッケージ管理システムをインストールします。ライブラリやパッケージを管理し、それをもとにインストールできますので、管理している中に、Laravel 6が入っています。

インストールの進め方は、Composerの「Download Composer」ページ(英語版)を参考にします。

[root@9cb10e27809c /]#php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
[root@9cb10e27809c /]#php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
[root@9cb10e27809c /]#php composer-setup.php
[root@9cb10e27809c /]#php -r "unlink('composer-setup.php');"

この順番でコマンドを入力していきます。入力していきますが、「php -r “if (hash_file(‘sha384’, ‘composer-setup.php’) === ‘e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a’) { echo ‘Installer verified’; } else { echo ‘Installer corrupt’; unlink(‘composer-setup.php’); } echo PHP_EOL;”」と入力しENTERキーを押すと、「Installer corrupt」と表示され、このまま進めていいのかわからないので、調べてみると、「Installer corrupt」と表示された場合は、Composerのバージョンが更新された可能性もあり、その時はComposerの「Download Composer」ページ(英語版)で新しい文字列を確認する必要があるということだったのですが、何度も「Installer corrupt」と表示され、とりあえず次のコマンドで「php composer-setup.php」と入力すると、

All settings correct for using Composer Downloading…
Composer (version 1.10.7) successfully installed to: //composer.phar Use it: php composer.phar

上記のメッセージが表示されたので、このメッセージが表示されれば、問題ないということだったので、安心できました。

表示された後は、「php -r “unlink(‘composer-setup.php’);”」のコマンドで「composer-setup.php」ファイルはいらないので削除します。

[root@9cb10e27809c /]# mv composer.phar /usr/local/bin/composer

削除後は、上記のコマンドでcomposer.pharを「/usr/local/bin/composer」のディレクトリを移動します。

これで、composerのインストール作業はほぼ完了となります。あとはちゃんとインストールされたか確認します。

[root@9cb10e27809c /]# composer -v

上記のコマンドを入力し、ENTERキーを押します。

ENTERキーを押すと、上記のように表示されます。これでちゃんとインストールがされていることが確認できました。

インストールの確認後は、Composerへのパスを通しますので、

[root@9cb10e27809c /]# export PATH=$PATH:$HOME/.composer/vendor/bin

上記のコマンドを入力し、ENTERキーを押します。

[root@9cb10e27809c /]# composer global require laravel/installer

ENTERキーを押した後は、Composerを使ってLaravelのインストーラをダウンロードを行いますので、上記のコマンドを入力し、ENTERキーを押します。

ダウンロードを行った後は、Laravelの新しいプロジェクトを開発する場所に移動するために、

[root@9cb10e27809c /]# cd /var/www/

上記のコマンドを入力、ENTERキーを押します。

[root@9cb10e27809c /]# laravel new blog

ENTERキーを押した後は、Laravelの新しいプロジェクトを作成します。今回は「blog」というプロジェクトを作成しますので、「laravel new blog」としてます。入力後、ENTERキーを押します。

Package manifest generated successfully.
Application ready! Build something amazing.

ENTERキーを押した後、上記のメッセージが表示されますので、これで「blog」というプロジェクトを作成されました。このプロジェクトの中に、「Laravel 6」がインストールされて入っています。

プロジェクトを作成中に、

As there is no ‘unzip’ command installed zip files are being unpacked using the PHP zip extension.
This may cause invalid reports of corrupted archives. Besides, any UNIX permissions (e.g. executable) defined in the archives will be lost.
Installing ‘unzip’ may remediate them.

上記のようなメッセージが表示されたので、心配になり調べてみると、unzipのインストールが行われていないことが原因のようだったので、「yum install unzip -y」で、unzipのインストールを行いました。

「blog」というプロジェクトを作成された後は、ログやキャッシュの書き込みでPermission Deniedとなることを防ぐために、パーミッションの変更を行います。

[root@9cb10e27809c /]# cd /var/www/blog
[root@9cb10e27809c blog]# find ./ -type d -exec chmod 755 {} \;
[root@9cb10e27809c blog]# find ./ -type f -exec chmod 644 {} \;

これでLaravel 6のインストール、新しいプロジェクトの作成や設定などが完了しました。

コメント

タイトルとURLをコピーしました