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

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 $* )
}

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

PHP 7.4のインストール

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

How To Install PHP 7.4 on Ubuntu 20.04/18.04/16.04 | ComputingForGeeks
How to Install PHP 7.4 on Ubuntu?. Welcome to today's guide on how to install PHP 7.4 on Ubuntu 20.04/18.04/19.04/16.04 Linux. The PHP release 7.4.0 has

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;
	}
}

Laravelのインストール

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

composer create-project --prefer-dist laravel/laravel laravue

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

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

php artisan serve

次回は

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

コメント

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