Labs

<< 最初 < 前ページ 次ページ > 最後 >>
icon Laravel 6.x 構築(Homestead編) (2020/01/12)
Laravel 6.x Laravel Homestead を利用して Laravel 6.x の環境を構築する。
Homestead は Laravel の vagrant box 版です。
一からコマンドベースで構築するとかなり大変(というか npm の依存とかでエラー多発)なので、公式でも Homestead を推奨しています。

Vagrant バージョンの確認



Download Vagrant
から最新の vagrant をインストール(アップデートする)
Laravel 6.x Homestead は 2.2.6 以上が必要
$ vagrant --version
Vagrant 2.2.6


プラグインアップデート


Vagrant アップデートした場合は、プラグインもアップデートする必要がある。
$ vagrant plugin update
Updating installed plugins...
Updated 'vagrant-vbguest' to version '0.23.0'!


Vagrant に Homestead を追加


$ vagrant box add laravel/homestead
==> box: Loading metadata for box 'laravel/homestead'
box: URL: https://vagrantcloud.com/laravel/homestead
==> box: Adding box 'laravel/homestead' (v9.2.2-alpha1) for provider: virtualbox
box: Downloading: https://vagrantcloud.com/laravel/boxes/homestead/versions/9.2.2-alpha1/providers/virtualbox.box
box: Download redirected to host: vagrantcloud-files-production.s3.amazonaws
...


Vagrant Box の確認


$ vagrant box list
bento/ubuntu-18.04 (virtualbox, 201906.18.0)
centos/7 (virtualbox, 1905.1)
debian/stretch64 (virtualbox, 9.9.1)
laravel/homestead (virtualbox, 9.2.2-alpha1)
ubuntu/trusty64 (virtualbox, 20190429.0.1)

Homestead 設定


Git から Homestead 設定を cloneする
$ cd
$ git clone https://github.com/laravel/homestead.git Homestead

初期化


$ bash init.sh
Homestead initialized!

SSH鍵ファイルの作成


$ ssh-keygen -t rsa
Generating public/private rsa key pair.
Enter file in which to save the key (/Users/yoo/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
...

id_rsa と id_rsa.pub が作成される。

Homestead.yaml 編集


Homestead の起動設定ファイル Homestead.yaml を設定する

ip: "192.168.10.10" #プライベートIPを設定する
memory: 2048
cpus: 2
provider: virtualbox

authorize: ~/.ssh/id_rsa.pub

keys:
- ~/.ssh/id_rsa

folders:
- map: ~/vagrant/homestead/projects #ホスト側のプロジェクトパスを設定
to: /home/vagrant/projects #Vagrant側のプロジェクトパスを設定
type: "nfs" #nfs を追記する

sites:
- map: homestead.test #サーバホストを設定する
to: /home/vagrant/projects/blog/public #Laravel Webルートを設定

databases:
- homestead

features:
- mariadb: false
- ohmyzsh: false
- webdriver: false

# ports:
# - send: 50000
# to: 5000
# - send: 7777
# to: 777
# protocol: udp

上記の設定は、以下のようなパスを設定している


・ホスト側(Mac)
~/vagrant/homestead/projects #プロジェクトパス

・リモート側(Vagrant)
/home/vagrant/projects #プロジェクトパス
/home/vagrant/projects/blog/public #Laravel の public


注意すべくは「folders:」の設定
デフォルトの設定だとNFSマウント(同期)できないので、「type: "nfs"」を追記する

vagrant-bindfs プラグインインストール


NFSを利用した場合、ファイルやフォルダへのアクセス権限を維持する為に、vagrant-bindfs プラグインのインストールが必要
$ vagrant plugin install vagrant-bindfs


Vagrant 起動


$ vagrant up


Homestead Vagrant

Vagrant SSHログイン


$ vagrant ssh


各バージョン確認


$ cat /etc/issue
Ubuntu 18.04.3 LTS \n \l
$ laravel -V
Laravel Installer 3.0.1
$ composer -V
Composer version 1.9.1 2019-11-01 17:20:17
$ node --version
v12.14.0
$ yarn --version
1.21.1
$ npm --version
6.13.4
$ php --version
PHP 7.4.1 (cli) (built: Dec 18 2019 14:44:22) ( NTS )
$ psql -V
psql (PostgreSQL) 11.6 (Ubuntu 11.6-1.pgdg18.04+1)


Laravel プロジェクト作成


Vagrant側で Laravel プロジェクトを作成する。
(あらかじめ、~/projects/ ディレクトリ作成済み)
$ cd projects/
$ composer create-project --prefer-dist laravel/laravel blog


ブラウザから Webサーバにアクセス


http://homestead.local にアクセスできるか確認する。

Homestead Laravel

PostgreSQL設定のロケール


en_US.UTF-8 がデフォルトになっているので、ja_JP.UTF-8 に変更する
ロケールの再構築 参照
icon Composer インストール (2020/01/12)

Composer 公式のインストール


$ php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
$ php -r "if (hash_file('sha384', 'composer-setup.php') === 'baf1608c33254d00611ac1705c1d9958c817a1a33bce370c0595974b342601bd80b92a3f46067da89e3b06bff421f182') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
$ php composer-setup.php
$ php -r "unlink('composer-setup.php');"
$ sudo mv composer.phar /usr/local/bin/composer


getcomposer.org のPHPインストーラを利用する


ComposerインストールようのPHPファイル https://getcomposer.org/installer を利用して /usr/local/bin/ にcomposer をインストール
$ curl -s https://getcomposer.org/installer | php && sudo mv -v composer.phar /usr/local/bin/composer


Composer バージョン確認


$ composer --version
Composer version 1.9.1 2019-11-01 17:20:17


Composer アップデート


$ composer self-update
icon yarn インストール&プロジェクト作成 (2020/01/12)
最近は、npm より yarn が流行っているようです。
yarn は npm と互換性のあるパッケージマネージャです。

概要


・npm よりインストールが速い
・npmと一緒に使える
・npm で発生するトラブル(依存)が起こりにくい(?)
・package.json, node_modules/で構成
・npm よりもモジュールバージョンを細かく指定可能
・インストールされたバージョンを yarn.lock に保存

実際に高速で、Mac で npm でエラーになったものも yarn だと解決することもありました。
(ただ、逆もあるかも知れませんが)

参考


公式サイト
Yarn Installation
Yarn:Facebook発のパッケージマネジャーはnpmに代わるスタンダードになるか
yarnチートシート

nvm インストール


nvm インストール

yarn インストール *管理者権限


apt-key を追加
curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -

「/etc/apt/sources.list.d/yarn.list」に stable のURLを追加
echo "deb https://dl.yarnpkg.com/debian/ stable main" | tee /etc/apt/sources.list.d/yarn.list

アップデート&インストール
aptitude update
aptitude install yarn

バージョン確認
$ yarn -version
1.21.1

npm & yarnの脆弱性


2020/1/12:バージョンを最新にしておく
npmとyarnの脆弱性とpostinstall - Cybozu Inside Out | サイボウズエンジニアのブログ

基本


プロジェクト作成


$ mkdir yarn_sample
$ cd yarn_sample
$ yarn init
yarn init v1.21.1
question name (www): yarn_sample
question version (1.0.0): 0.0.1
question description: yarn sample
question entry point (index.js):
question repository url:
question author: yoo
question license (MIT):
question private:
success Saved package.json
Done in 63.65s.

package.json が作成される

{
"name": "yarn_sample",
"version": "0.0.1",
"description": "yarn sample",
"main": "index.js",
"author": "yoo",
"license": "MIT"
}


パッケージ追加


$ yarn add [package]
$ yarn add [package]@[version]
$ yarn add [package]@[tag]
<< 最初 < 前ページ 次ページ > 最後 >>