ぬにょす(挨拶)。
表題の通りですが、PHPフレームワークであるところのLaravelを使ってみようということで、やったこと・できたこと・できなかったこと等を自分の備忘録として残していきます。
#1の今回は開発環境の構築です。
仮想マシンの準備
Laravelフレームワークを動作させるにあたり、Webサーバーやデータベースが必要となってきます。そういったデーモン的なものはメインPCに入れたくないので、仮想マシンを用意します。
仮想マシンはVirtual BoxとVagrantを使って作成します。ベースとなるVagrant Boxは“bento/ubuntu-18.04”にしました。Laravel Homestead仮想マシンという選択肢もありますが、所有しているVPSのOSがUbuntu Server 18.04なので、それの検証用にもなるかな、という思惑です。
Vagrantfileはこのような内容にしました。(コメント行は削ってます)
synced_folderの機能を使ってホストOSとゲストOSでファイルを共有します。これにより編集作業をホストOS上で行うことができます。type: nfsにすると速いらしいのですが、プラグインの追加などの作業が手間なので必要なので採用してません。
provisionではまず”file”でNginxの設定ファイル等を送り、”shell” でパッケージのインストールなど非対話処理を行っています。ファイルは自動的にマウントされる/vagrantディレクトリ経由でアクセスしても良さそうですが、Vagrantfileはじめ各設定ファイルをDropboxに置いて作業ディレクトリからシンボリックリンクを貼るという変態構成(笑)にしてしまったので、前述のアクセスは不可能でした。
vagrant up した後は、何かとvagrant sshすることが多いです。どこからでもsshできるようにシェルにコマンド(関数)を登録しました。
これでカレントディレクトリを気にせず、ubuntu1804 up や ubuntu1804 ssh といった感じで仮想マシンを操作できます。
PHP 7.4のインストール
現行リリースの Laravel 7 は PHP >= 7.2.5 がシステム要件となっています。対してUbuntu 18.04のPHPは7.2なので、パッケージリポジトリを追加して7.4系列をインストールしておきます。
Webサーバー(Nginx)の設定
公式ドキュメントやHomesteadの設定内容を参考に以下のようにしました。
server {
listen 80 default_server;
server_name ubuntu1804.local;
root /home/vagrant/workspace/laravue/public;
index index.html index.htm index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
access_log off;
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/run/php/php7.4-fpm.sock;
fastcgi_index index.php;
include fastcgi.conf;
fastcgi_intercept_errors off;
fastcgi_buffer_size 16k;
fastcgi_buffers 4 16k;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
location ~ /\.(?!well-known).* {
deny all;
}
}
Code language: Nginx (nginx)
Laravelのインストール
ようやく本題。とはいえ、コマンドを一発実行するだけです。
Code language: plaintext (plaintext)composer create-project --prefer-dist laravel/laravel laravue
ブラウザでアクセスするとウェルカムページが表示されました。
以下のartisanコマンドでローカル開発サーバを立ち上げ、localhost:8000をブラウズしても同じページが表示されました。
Code language: plaintext (plaintext)php artisan serve
次回は
フロントエンド用に Vue.js と Bootstrap-Vue を入れます。
コメント