1
1

More than 3 years have passed since last update.

Laravelの環境構築いろいろ

Last updated at Posted at 2020-04-23

開発していく上で、自分が主なソースコードの管理者でないことって、
多々出てくると思います。
テストしてみたり、ブランチを切ってエンドユーザーに共有したり、などなど。

そんなとき、しっかりと環境構築しておいても色々不備が出て、
ちゃんとブラウザで見れない、動作しないなどが起きないように色々準備しておきましょう。

開発している環境と同じOS、ミドルウェアのバージョンであることを前提としますので、特定のバージョンはここでは指定しません。

1.git cloneはclone用のディレクトリでした後、作業用ディレクトリにコピーする。

$ git clone URL アプリ名
$ sudo cp -pR -f 作業用ディレクトリ/* アプリ名

2.基本vagrantの仮想環境を想定しています。/var/www/の下などに作業用ディレクトリを作っているかとおもいます。移動しましょう。

$ cd ~/アプリ名

3.管理者権限でcomposerを入れます。

$ su
$ composer install

4.MySQLを簡易パスワードで入れるようにします。

$ sudo vi /etc/my.cnf
# default-authentication-plugin=mysql_native_password
default-authentication-plugin=mysql_native_password 追加

validate_password.length=4
validate_password.mixed_case_count=0
validate_password.number_count=0
validate_password.special_char_count=0
validate_password.policy=LOW

5.保存したら再起動します。

$ systemctl restart mysqld

6.MySQLを起動してDBの初期設定をします。

$ MySQL
> create database DB名;
> create user 'XXX'@'localhost' identified  by 'パスワード';
> grant all on DB名.* to 'XXX'@'localhost' with grant option;
> exit

7.アプリの権限を変更する

$ sudo chmod 777 -R storage
$ sudo chmod 777 -R bootstrap/cache

8.ファイル.envを編集する

$ cp .env.example .env
$ sudo vi .env
http://localhost
という部分を
http://アプリ名
などに変更

DB_DATABASE
DB_USERNAME
DB_PASSWORD
をアプリ名などに変更

9.アプリケーションキーを作成

$ sudo php artisan key:generate

ここまで問題なくできていれば、キーは作成されるはず。

続きをやっていきます。ここまでくれば後少しです。

10.Apacheの設定

$ sudo vi /etc/httpd/conf/httpd.conf
DocumentRootの

DocumentRoot "/var/www/html"
を
DocumentRoot "/var/www/作業ディレクトリ+アプリ名"
に変更する。

また

<Directory "/var/www">
    AllowOverride None                                                      
    # Allow open access:
    Require all granted
</Directory>

を

<Directory "/var/www/作業ディレクトリ+アプリ名/public">
    AllowOverride All   ここを変更                                                   
    # Allow open access:
    Require all granted
</Directory>

に変更。

11.OSの時刻合わせ

$ timedatectl set-timezone Asia/Tokyo 時刻を東京に(パスワード要求されるので入力)
$ yum install chrony
$ /etc/chrony.conf
#時刻同期対象サーバーを日本国内に限定する
server 0.jp.pool.ntp.org iburst
server 1.jp.pool.ntp.org iburst
server 2.jp.pool.ntp.org iburst
server 3.jp.pool.ntp.org iburst

#時刻同期サーバーの候補が2個以上の場合のみ、時刻同期を行う
minsources 2

#アクセスを許可するNTPクライアントのIPアドレス or サブネットを指定
#複数指定する場合は複数行に分ける
allow 192.168.1.0/24
allow 10.0.0.2

#NTPサーバとして使用しない場合は以下のように指定する
port 0

$ systemctl start chronyd

12.アプリの権限設定

sudo chown -R vagrant:vagrant ./

をvagrant上のアプリ直下とhome直下行うと、rootだった権限がvagrantに変わり、色々と操作ができるようになります。
13.gitの初期設定

vagrant上でなくローカル環境で、
$ ls -al ~/.ssh
>id_rsaとid_rsa.pub
みたいなのがでてきたらすでに作成されています。できていなかったら、
$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
を打つと3回質問が出るのでenterを3回うつと完了します。
$ $ clip < ~/.ssh/id_rsa.pub
でコピーして、リポジトリを管理するサービス(githubなど)に貼り付けておきましょう。

こちら、ローカルでだめな場合はvagrant上でやりましょう。
作成すると、home/vagrant/.sshに表示されます。known_hostsは消してもいいです。
コピーのコマンドは使えないので、catでファイルを見て手動コピペしましょう。
14.gitのHEADをあわせる

git fetch --all
sudo git reset --hard origin/master
git checkout -b master origin/master
git pull origin master

以上は私が作業の忘備録で書いたものでもあるので、
すべて合致しない可能性もあることご承知おきください。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1