2021.02.26

ConoHa VPSでLaravelの環境構築

サーバーの契約部分は省略

sudoできるユーザーを作成する。

ユーザーの追加

# useradd hoge
//パスワードの変更
# passwd hoge

sudoが使えるようにする。

# visudo
//sudo権限をもったユーザー グループが有効になっているか確認
〜
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
# usermod -aG wheel hoge
//追加されたか確認
# groups hoge
hoge : hoge wheel

今後はrootユーザーは使用せずユーザーhogeでsudoコマンドで作っていく。
今回は初回なのでrootで作業を進めていくが、あとでrootのsshパスワードログインを無効にしたり、ssh接続のポートを変更したりすると安心。

laravel側を編集するグループ「laravel」を作成する

# groupadd laravel
//先ほど作ったユーザーとapacheを上で作成したlaravelグループに追加
# gpasswd -a hoge laravel
# gpasswd -a apache laravel

サイトの表示部分を作る

今回はテスト環境の構築を目的としているので、案件ごとにサブドメインを作りそれぞれのサブドメインのディレクトリにLaravelが入るような作りにしたい。

そしてgithubの置き場も作りたい

githubのクローンを置く場所を作る

//gitをインストール
yum -y install git
//先ほど作ったhogeユーザーに
# su hoge
$ cd /var/www/html
$ sudo mkdir github
$ cd github
$ git clone 【githubのリポジトリのurlを入力】

プロジェクトのディレクトリを作る。

$ sudo mkdir 公開ディレクトリ
//githubでクローンしたリポジトリに移動して中身を公開ディレクトリにコピーする
$ cd /var/www/html/github/クローンしたgithub
$ sudo cp -r クローンしたgithub/ /var/www/html/公開ディレクトリ/

パーミッションの調整

$ cd /var/www/html
$ sudo chown -R hoge.laravel 【公開ディレクトリ】
//apache側からの変更を受け入れるディレクトリ、ファイルの所有権を修正する
$ cd 【公開ディレクトリ】
$ sudo chown -R apache.apache storage
$ sudo chown -R apache.apache bootstrap/cache
//パーミッション変更 ファイル644 ディレクトリ755
$ sudo find ./ -type d -exec chmod 755 {} \;
$ sudo find ./ -type f -exec chmod 644 {} \;
//新しく追加したファイルディレクトリにも適応されるように
$ sudo find ./storage -type d -exec chmod g+s {} \;
$ sudo find ./bootstrap/cache -type d -exec chmod g+s {} \;
$ sudo setfacl -R -d -m g::rwx ./storage
$ sudo setfacl -R -d -m g::rwx ./bootstrap/cache
# cd /var/www/html

# mkdir プロジェクト名
# cd プジェクト名
//バージョンは開発によって適宜変更
# composer create-project laravel/laravel --prefer-dist v5.5
# ls
//v5.5というディレクトリができているのでそこに移動
# cd v5.5
//プロジェクト名直下にファイル一覧を移動
# mv * ../
//v5.5というディレクトリを削除
# cd ../
# rm -rf v5.5
//所有権をapacheに
# cd ../
# chown -R apache.apache プロジェクト名

サブドメインで表示できるようにvirtualhostを設定する。

# vi /etc/httpd/conf/httpd.conf
//NameVirtualHost *:80を追加する
〜
Listen 80
NameVirtualHost *:80

サブドメイン用の設定ファイルを作成する。

# vi /etc/httpd/conf.d/【サブドメイン】.conf
<VirtualHost *:80>
  ServerName サブドメイン
  DocumentRoot "/var/www/html/プロジェクト名/public"
  DirectoryIndex index.html index.php
  ErrorLog /var/log/httpd/サブドメイン_error_log
  CustomLog /var/log/httpd/サブドメイン_access_log combined
  AddDefaultCharset UTF-8
  <Directory "/var/www/html/プロジェクト名/public">
    AllowOverride All
  </Directory>
</VirtualHost>

再起動

# systemctl restart httpd.service

データベースを作成

# mysql -u root
//テーブル作成
create database データベース名;
//ユーザー作成
create user 'ユーザー名'@'localhost' identified by 'パスワード';
//ユーザーに全ての権限を与える
grant all on *.* to 'ユーザー名'@'localhost';
exit