開発していく上で、自分が主なソースコードの管理者でないことって、
多々出てくると思います。
テストしてみたり、ブランチを切ってエンドユーザーに共有したり、などなど。
そんなとき、しっかりと環境構築しておいても色々不備が出て、
ちゃんとブラウザで見れない、動作しないなどが起きないように色々準備しておきましょう。
開発している環境と同じ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
以上は私が作業の忘備録で書いたものでもあるので、
すべて合致しない可能性もあることご承知おきください。