目次
- 1.開発環境の構成
- 2.環境構築手順
- 3.VirtualBoxのインストール
- 4.仮想マシンの作成とUbuntu(Ubuntuディスクトップ環境)をインストール
- 5.Dockerインストール
- 6.Docker-Composeのインストール
- 7.SSHサービスのインストール
- 8.WinScp(FTPソフト)のインストール
- 9.Dockerコンテナの作成とLaravelプロジェクトの作成
- 10.ホストOS(windows)のブラウザからゲストOS(Ubuntu)にアクセスするポートを追加
- 11.Putty(SSH対応リモートターミナルクライアント)ソフトのインストール
- 12.WinScp(FTPソフト)をUbuntuに接続して、root権限で操作するための設定追加
1.開発環境の構成
Laravelの開発環境の構成をイメージ図に示します。
開発環境のイメージ図
![](https://region-sys.com/wp-content/uploads/2021/10/795316b92fc766b0181f6fef074f03fa.png)
2.環境構築手順
Laravelの開発環境の構成を以下の順で説明します。
(1)VirtualBoxのインストール
(2)仮想マシンの作成とUbuntu(Ubuntuディスクトップ環境)をインストール
(3)Dockerインストール
(4)Docker-Composeのインストール
(5)SSHサービスのインストール
ローカルと仮想マシン間でFTP通信ができるようにするため
(6)WinScp(FTPソフト)のインストール
(7)Dockerコンテナの作成とLaravelプロジェクトの作成
(8)ホストOS(windows)のブラウザからゲストOS(Ubuntu)にアクセスするポートを追加
(9)Putty(SSH対応リモートターミナルクライアント)ソフトのインストール
(10)WinScp(FTPソフト)をUbuntuに接続して、root権限で操作するための設定追加
3.VirtualBoxのインストール
https://www.virtualbox.org/wiki/Downloads
![](https://region-sys.com/wp-content/uploads/2021/10/c8856789ec11ab8b1013037cef6929f9-1.png)
4.仮想マシンの作成とUbuntu(Ubuntuディスクトップ環境)をインストール
4.1 64-bitPC(AMD64)desktop imageをダウンロードします。
http://www.releases.ubuntu.com/16.04/
![](https://region-sys.com/wp-content/uploads/2021/10/e2e1cd71f9fa79bfa335d13e3b722370.png)
上記サイトからダウンロードしたファイル
![](https://region-sys.com/wp-content/uploads/2021/10/8ca524f4fcc7efd5b63d7fc6fe130433.png)
4.2 仮想マシンの作成
①VirtualBoxを起動します。
![](https://region-sys.com/wp-content/uploads/2021/10/14cd37798113b7ec8744f7716c3fa1cb.png)
②「新規」を選択し、名前の入力とタイプ、バージョンの選択
![](https://region-sys.com/wp-content/uploads/2021/10/9b245e20f616b8c9562ffe85e12bc080.png)
③メモリサイズの設定
![](https://region-sys.com/wp-content/uploads/2021/10/569773fbb4806ecb4282f62d7ee66b5a.png)
④ハードディスクの選択
![](https://region-sys.com/wp-content/uploads/2021/10/d96527b714f6b755f6624e4d906bc415.png)
![](https://region-sys.com/wp-content/uploads/2021/10/f9937a2961c432e47e2ca1a6cca1ed19.png)
![](https://region-sys.com/wp-content/uploads/2021/10/78c5590309ff5ca134fdb5bffe23b011.png)
![](https://region-sys.com/wp-content/uploads/2021/10/5c7e7f25037b4a33691ca29c96d23234.png)
ここで仮想マシンが作成されます。
4.3 起動ハードディスクの設定
今回作成した仮想マシンを選択して、「起動」します。
![](https://region-sys.com/wp-content/uploads/2021/10/af4722c0be51fbd0a322d54e3d578672.png)
フォルダの釦を押します。
![](https://region-sys.com/wp-content/uploads/2021/10/696f74d418d2d0dd058d68a7a9d4a5f4.png)
「追加」釦押すとディレクトリが表示されるので、ダウンロードしたUbuntuのイメージファイルを選択し、「開く」釦を押すと、光学ディスク選択の選択肢にUbuntuが表示されるので、Ubuntuを選択して、「選択」釦を押します。
「起動ハードディスクを選択」の画面に移ります。
![](https://region-sys.com/wp-content/uploads/2021/10/2215c149a24adfd9006ef811995404ee.png)
![](https://region-sys.com/wp-content/uploads/2021/10/a87d991921a2a3b48b3d4a35ba527f45.png)
4.4 Ubuntuを選択して、起動します。
![](https://region-sys.com/wp-content/uploads/2021/10/4db87f2f3b18339664cc6ac59124260a.png)
「日本語」を選択して、「Ubuntuをインストール」を押します。
![](https://region-sys.com/wp-content/uploads/2021/10/8281df20f0fd200bc786cda01bee6cad.png)
![](https://region-sys.com/wp-content/uploads/2021/10/2e4632c6d85ded1b47516e8f1c072272.png)
![](https://region-sys.com/wp-content/uploads/2021/10/58de62354f190df8e26cba54c6f9073c.png)
![](https://region-sys.com/wp-content/uploads/2021/10/93c3aa3484148e92c3867b00b98552e3.png)
![](https://region-sys.com/wp-content/uploads/2021/10/a774e9a0898c6ba7943d1252aa1d7494.png)
名前、ユーザ名、パスワードを登録します。
![](https://region-sys.com/wp-content/uploads/2021/10/10abdd0a4bc001113dfbb294a18ccaed.png)
![](https://region-sys.com/wp-content/uploads/2021/10/3bf0121e7d9244271363c2d4e6febfbd.png)
しばらく待つ(本稿では約1時間)
![](https://region-sys.com/wp-content/uploads/2021/10/3224e373f2773ea4b8a55488628af6a5.png)
remove・・・がでたらリターン
マウス右ボタンでメニューが出て、「端末を開く」を選択するとコマンド入力画面が開きます。
![](https://region-sys.com/wp-content/uploads/2021/10/82032571805f62fc8b97ff8c392009af.png)
4.5 Ubuntuのバージョン確認
$ cd /etc
$ cat os-release
![](https://region-sys.com/wp-content/uploads/2021/10/7854dd8c28e417bbf6ec16d38b4aefd8.png)
5.Dockerインストール
$ sudo apt-get update
![](https://region-sys.com/wp-content/uploads/2021/10/930801b752175c60c877dba01db306ea.png)
$ sudo apt-get install docker.io
![](https://region-sys.com/wp-content/uploads/2021/10/a091d26f69192e29fd59a34966b849df.png)
$ docker –version
![](https://region-sys.com/wp-content/uploads/2021/10/06f433f46e4a8a28665560c36cfea48d.png)
6.Docker-Composeのインストール
![](https://region-sys.com/wp-content/uploads/2021/10/7be5d06f2b62a0043c4e3ee862bdcdf0.png)
(途中、省略)
![](https://region-sys.com/wp-content/uploads/2021/10/285bd76ebef54136f20fb0c9abf75c49.png)
Yを入力
![](https://region-sys.com/wp-content/uploads/2021/10/1f25981a781f50ea5fe3a6449324454f.png)
Docker-composeのバージョン確認
![](https://region-sys.com/wp-content/uploads/2021/10/387324a2672a6e133b6ab3d0282b4619.png)
sudoなしでもdockerを使えるようにするため、dockerグループを作ります。
$ sudo groupadd docker
ユーザをdockerグループに追加します。
$ sudo gpasswd -a $USER docker
![](https://region-sys.com/wp-content/uploads/2021/10/d7ab54c04e9d5cdb74364a1f09de3e36.png)
7.SSHサービスのインストール
ローカルと仮想マシン間でFTPでファイル転送ができるようにするため、SSHサービスを使えるようにします。
7.1 仮想マシンの設定
①仮想マシンを選択して、「設定」釦押下します。
![](https://region-sys.com/wp-content/uploads/2021/10/9227b259d3ff60da9509242697511cbb.png)
②ネットワーク>高度>ポートフォワーディングを選択
![](https://region-sys.com/wp-content/uploads/2021/10/ac6ab6bf9420f312efbeb5a5d253af24.png)
③「+」(追加)釦を押します。
![](https://region-sys.com/wp-content/uploads/2021/10/51392e88197b1ee57da2909de7431fcb.png)
④名前、プロトコル、ホストポート、ゲストポートを設定します。
![](https://region-sys.com/wp-content/uploads/2021/10/897565314a371e9928d68d174831f489.png)
ここではホストポート番号”2222”とした仮想マシンのUbntuにはローカルループバックアドレス127.0.0.1、ポート番号:2222で接続できます。
7.2 Ubuntuにopensshをインストールする
$ sudo apt-get install openssh-server
![](https://region-sys.com/wp-content/uploads/2021/10/224dfec343ac994689af605e3fabae57.png)
(途中、省略)
![](https://region-sys.com/wp-content/uploads/2021/10/bda00756beda6dcd37837d84b240726d.png)
8.WinScp(FTPソフト)のインストール
https://forest.watch.impress.co.jp/library/software/winscp/
![](https://region-sys.com/wp-content/uploads/2021/10/e5e4fd63502c37e2759b78c572a93d70.png)
![](https://region-sys.com/wp-content/uploads/2021/10/12cc425b5718002e3b2f63569d457870.png)
![](https://region-sys.com/wp-content/uploads/2021/10/9e005d873bb6d4b11d296dac922398bf.png)
![](https://region-sys.com/wp-content/uploads/2021/10/4157ef1fce251cb7048d591410ef6993.png)
![](https://region-sys.com/wp-content/uploads/2021/10/f8fbd262d685c3d24711515def5e8352.png)
![](https://region-sys.com/wp-content/uploads/2021/10/54bc1558f300c4f4fa54e2097c3dc09a.png)
WinScpを起動します。
![](https://region-sys.com/wp-content/uploads/2021/10/109fbb80ceb216e47e64e6139f3ccd37.png)
仮想マシンは起動されているものとします。
![](https://region-sys.com/wp-content/uploads/2021/10/a04e45ef8e648e13348434fb78840420.png)
![](https://region-sys.com/wp-content/uploads/2021/10/93bf90ea0d7cdbbe0ce6594b684a8cd9.png)
9.Dockerコンテナの作成とLaravelプロジェクトの作成
① /home/(ユーザ)配下にアプリケーションをおくフォルダを作成します。ここでは、”kadai”としました。
②”kadai”配下 にdockerフォルダとdocker-compose.ymlファイルを置きます。
![](https://region-sys.com/wp-content/uploads/2021/10/6afefa74750df53da1626a3bcd13da4b.png)
\kadai\docker\web\default.conf
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
server { listen 80; root /var/www/html/sample-app/public; index index.php index.html index.htm; access_log /var/log/nginx/access.log; error_log /var/log/nginx/error.log; location / { try_files $uri $uri/ /index.php$is_args$args; } location ~ \.php$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass app:9000; fastcgi_index index.php; include fastcgi_params; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; fastcgi_param PATH_INFO $fastcgi_path_info; } } |
\kadai\docker\phpdocker\Dockerfile
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
FROM php:7.2-fpm # install composer RUN cd /usr/bin && curl -s http://getcomposer.org/installer | php && ln -s /usr/bin/composer.phar /usr/bin/composer RUN apt-get update \ && apt-get install -y \ git \ zip \ unzip \ vim RUN apt-get update \ && apt-get install -y libpq-dev \ && docker-php-ext-install pdo_mysql pdo_pgsql WORKDIR /var/www/html |
\kadai\docker-compose.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
version: '3' services: web: image: nginx:1.15.6 ports: - "8000:80" depends_on: # 追加 - app volumes: - ./docker/web/default.conf:/etc/nginx/conf.d/default.conf - .:/var/www/html app: #image: php:7.2-fpm build: ./docker/php #定義したDockerfileを元にイメージを作るように変更 depends_on: - db volumes: - .:/var/www/html db: image: postgres:12.1-alpine volumes: - db-store:/var/lib/postgresql/data environment: - POSTGRES_DB=${DB_NAME} - POSTGRES_USER=${DB_USER} - POSTGRES_PASSWORD=${DB_PASS} - POSTGRES_ROOT_PASSWORD=${DB_ROOT_PASS} - TZ=${TZ} ports: - "5432:5432" volumes: db-store: |
③kadaiのディレクトリに移動して、下記のビルドコマンドを入力します。
$ sudo docker-compose up -d –build
![](https://region-sys.com/wp-content/uploads/2021/10/0333c912a06826db17f4b19407021051.png)
④web、app(php)、dbの3つのコンテナが起動されていることを確認します。
$ sudo docker ps
![](https://region-sys.com/wp-content/uploads/2021/10/fabbf214cb9b14ca507420d42de7e558.png)
⑤app(php)のコンテナに入り、Laravelプロジェクトを作成する
下記のコマンドでappコンテナに入ります。
$ sudo docker-compose exec app bash
![](https://region-sys.com/wp-content/uploads/2021/10/965d105c3e231f4e7d77b198b94e3b7f.png)
# composer create-project –prefer-dist laravel/laravel sample-app
※ここでLaravelプロジェクトのフォルダ名(sample-app)は任意、但し、webの”default.conf”のファイルの「root /var/www/html/sample-app/public;」の名前と一致させる必要があります。
Laravelプロジェクトの作成に成功したときは、⑥へ進む
Laravelプロジェクト作成に失敗したとき
Laravelプロジェクト作成中に下記のスワップメモリ不足のエラーが出て、Laravelプロジェクトの作成に失敗した場合は、スワップメモリ領域を拡張する必要があります。
![](https://region-sys.com/wp-content/uploads/2021/10/bc20749395c97162ca82ecf32cf7f1bd.png)
# exit
でコンテナから抜ける
SWAP領域用のファイルを作成
$ sudo /bin/dd if=/dev/zero of=/var/swap.1 bs=1M count=1024
SWAP領域作成
$ sudo /sbin/mkswap /var/swap.1
SWAP領域を有効化
$ sudo /sbin/swapon /var/swap.1
![](https://region-sys.com/wp-content/uploads/2021/10/b2b12c2a1653a8df37865c5ad6133d47.png)
コンテナを再起動します。
![](https://region-sys.com/wp-content/uploads/2021/10/0cc1a538a4eac7dacca75e5df6ac1395.png)
$ sudo docker-compose up -d
再度、appのコンテナに入り、Laraveプロジェクトを作成します。
※途中まで作成されたフォルダが残っていると失敗するため、フォルダ(sample-app)毎削除します。
appコンテナに入ります。
$ sudo docker-compose exec app bash
Laravelプロジェクトの作成
# composer create-project –prefer-dist laravel/laravel sample-app
![](https://region-sys.com/wp-content/uploads/2021/10/feff82585db195485f3d3dc45ad5d0c1.png)
(途中、省略)
![](https://region-sys.com/wp-content/uploads/2021/10/6003046376eb705971ae8e405380d1ed.png)
⑥”storage”フォルダのアクセス権限を変更する
下記のフォルダの権限を変える(chmod 777)
/var/www/html/sample-app/storage/logs
/var/www/html/sample-app/storage/framework
/var/www/html/sample-app/storage/framework/sessions
/var/www/html/sample-app/storage/framework/views
![](https://region-sys.com/wp-content/uploads/2021/10/f6dc00e41aaf39ee9930feaea39aaa14.png)
⑦ブラウザでローカルホスト(127.0.0.1)にアクセスする
Laravelの画面が出れば、Webサーバとアプリケーションサーバ(php)は動作しています
![](https://region-sys.com/wp-content/uploads/2021/10/19e408e1959ba71d4eba9bb1055c2d4f.png)
フォルダ構成
![](https://region-sys.com/wp-content/uploads/2021/10/e305b9ec5f4b4465f05d990c1d1d098f.png)
10.ホストOS(windows)のブラウザからゲストOS(Ubuntu)にアクセスするポートを追加
![](https://region-sys.com/wp-content/uploads/2021/10/6415f2cdfb3c13411c300b6f08b6a43d.png)
![](https://region-sys.com/wp-content/uploads/2021/10/cd20d632f733a339de5fe1aff721b66e.png)
TCP ホストポート:8080 ゲストポート:8000を追加
![](https://region-sys.com/wp-content/uploads/2021/10/996b3e81b0544b6e4b7231a96f004108.png)
Windowsのブラウザから、127.0.0.1:8080で、VirtualBoxのゲストOSのWebサーバにアクセスできます。
![](https://region-sys.com/wp-content/uploads/2021/10/16b02d3055977a51a39ef88c8797930f.png)
11.Putty(SSH対応リモートターミナルクライアント)ソフトのインストール
Puttyを起動し、接続先を設定
IP:127.0.0.1 ポート:2222
![](https://region-sys.com/wp-content/uploads/2021/10/4020bd35d21d034367ddc15b2f3e1272.png)
![](https://region-sys.com/wp-content/uploads/2021/10/3ed1640ac97b92e0bfc9ce13b653491b.png)
![](https://region-sys.com/wp-content/uploads/2021/10/943b24d006a5920de6ac8eab2ba78077.png)
文字コード、文字サイズの設定
![](https://region-sys.com/wp-content/uploads/2021/10/80c727ad50556f5eafefff0d020abdec.png)
![](https://region-sys.com/wp-content/uploads/2021/10/12e782c91c2107a0fef480769ecb4995.png)
UTF-8を選択
![](https://region-sys.com/wp-content/uploads/2021/10/65d364007dca6c0eca7e8449a21c3c95.png)
文字サイズの変更
![](https://region-sys.com/wp-content/uploads/2021/10/3f01a6b75f408e4c9f9dfc99ed288ced.png)
12.WinScp(FTPソフト)をUbuntuに接続して、root権限で操作するための設定追加
Ubuntu側のファイルの権限が”root”になっているときでも、WinScpを使って、Windows側とUbuntu間でファイルのコピーができる設定を追加します。
12.1 Ubuntu側の設定
Ubuntuの端末、又はputtyなどのターミナルから
$ cd /
$ sudo visudo
パスワード:
![](https://region-sys.com/wp-content/uploads/2021/10/2f2862207b573b5c3dd148489594d1c4.png)
/etc/sudoers.tmpファイルが開く、下記を最後の行に追加します。
[ユーザ名] ALL=NOPASSWD:/usr/lib/openssh/sftp-server
※このユーザ名はUbuntuをインストールしたときに設定したユーザ名
![](https://region-sys.com/wp-content/uploads/2021/10/595c79924083d81e98c95159a7fa3782.png)
Ctrl+Cで書込みされ、Ctrl+Xで終了し、コマンドプロンプトに戻ります。
12.2 WinScp側の設定
WinScpを起動し、「編集」選択
![](https://region-sys.com/wp-content/uploads/2021/10/a626fb269c311bbe33b1488682f23165.png)
「設定」選択
![](https://region-sys.com/wp-content/uploads/2021/10/609707a8c0579a0c35e0d6960c7d4af5.png)
SFTPサーバのところに下記を入力して、「OK」押します。
sudo /usr/lib/openssh/sftp-server
![](https://region-sys.com/wp-content/uploads/2021/10/ada6c2d08e3f0459f80c6a217d648f64.png)
「保存」を押して、「ログイン」します。
![](https://region-sys.com/wp-content/uploads/2021/10/6d887be0052deefe709d0a3500686c2a.png)
.envなど書込みがroot権限のみになっているファイルの変更ができれば、設定はOKです。
![](https://region-sys.com/wp-content/uploads/2021/10/a90f17d9a26358cd65f72f058ed09a05.png)
※接続できない場合は、Ubuntuの”sftp-server”のある場所を確認する
$cd /usr/lib
$ls -al
7.2項の「Ubuntuにopensshをインストール」で自動的に下記のようにシンボリックリンクが設定されています。
![](https://region-sys.com/wp-content/uploads/2021/10/f2097d556d27493ef9da72b3cb471ef0.png)
The end