Laravelやってみる#1―Laravel7インストール

Laravel 7.x

ぬにょす(挨拶)。

表題の通りですが、PHPフレームワークであるところのLaravelを使ってみようということで、やったこと・できたこと・できなかったこと等を自分の備忘録として残していきます。

#1の今回は開発環境の構築です。

スポンサーリンク

仮想マシンの準備

Laravelフレームワークを動作させるにあたり、Webサーバーやデータベースが必要となってきます。そういったデーモン的なものはメインPCに入れたくないので、仮想マシンを用意します。

仮想マシンはVirtual BoxVagrantを使って作成します。ベースとなるVagrant Boxは“bento/ubuntu-18.04”にしました。Laravel Homestead仮想マシンという選択肢もありますが、所有しているVPSのOSがUbuntu Server 18.04なので、それの検証用にもなるかな、という思惑です。

Vagrantfileはこのような内容にしました。(コメント行は削ってます)

Vagrantfile
Vagrant.configure("2") do |config| config.vm.box = "bento/ubuntu-18.04" config.vm.hostname = "ubuntu1804" config.vm.network "private_network", ip: "192.168.33.10" config.vm.synced_folder "./workspace", "/home/vagrant/workspace", :mount_options => ["dmode=777,fmode=777"] config.vm.provider "virtualbox" do |vb| vb.name = "Ubuntu1804" end config.vm.provision "file", source: "./res/files", destination: "$HOME/files" config.vm.provision "shell", path: "./res/01_root.sh" config.vm.provision "shell", privileged: false, path: "./res/02_user.sh" config.vm.provision "shell", path: "./res/03_root.sh" end
Code language: Ruby (ruby)

synced_folderの機能を使ってホストOSとゲストOSでファイルを共有します。これにより編集作業をホストOS上で行うことができます。type: nfsにすると速いらしいのですが、プラグインの追加などの作業が手間なので必要なので採用してません。

provisionではまず”file”でNginxの設定ファイル等を送り、”shell” でパッケージのインストールなど非対話処理を行っています。ファイルは自動的にマウントされる/vagrantディレクトリ経由でアクセスしても良さそうですが、Vagrantfileはじめ各設定ファイルをDropboxに置いて作業ディレクトリからシンボリックリンクを貼るという変態構成(笑)にしてしまったので、前述のアクセスは不可能でした。

vagrant up した後は、何かとvagrant sshすることが多いです。どこからでもsshできるようにシェルにコマンド(関数)を登録しました。

.zshrc
function ubuntu1804() { ( cd ~/Documents/Ubuntu1804 && vagrant $* ) }
Code language: Bash (bash)

これでカレントディレクトリを気にせず、ubuntu1804 upubuntu1804 ssh といった感じで仮想マシンを操作できます。

PHP 7.4のインストール

現行リリースの Laravel 7 は PHP >= 7.2.5 がシステム要件となっています。対してUbuntu 18.04のPHPは7.2なので、パッケージリポジトリを追加して7.4系列をインストールしておきます。

Attention Required! | Cloudflare

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のインストール

ようやく本題。とはいえ、コマンドを一発実行するだけです。

composer create-project --prefer-dist laravel/laravel laravue
Code language: plaintext (plaintext)

ブラウザでアクセスするとウェルカムページが表示されました。

ウェルカムページ

以下のartisanコマンドでローカル開発サーバを立ち上げ、localhost:8000をブラウズしても同じページが表示されました。

php artisan serve
Code language: plaintext (plaintext)

次回は

フロントエンド用に Vue.js と Bootstrap-Vue を入れます。

コメント

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