Conoha VPSでLaravel デプロイ

# Conoha VPSでLaravel デプロイ

VPSでLaravelのデプロイの記事が少なかったので載せました

Conoha VPSの設定を終えた後から完結書いていきます。

# ユーザー設定
```
ユーザー作成
adduser test-user


ユーザーパスワード設定
password test-user

作成したユーザーをwhhelグループに追加
gpasswd -a test-user whhel

# Apacheサーバーをインストール
Apacheサーバーをインストール

dnf -y install httpd

apacheサーバーを起動
systemctl start httpd

apacheの状態確認
systemctl status httpd
例
 httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           └─php-fpm.conf
   Active: active (running) since Thu 2021-10-21 23:09:05 JST; 2 days ago
     Docs: man:httpd.service(8)
  Process: 148519 ExecReload=/usr/sbin/httpd $OPTIONS -k graceful (code=exited, status=0/SUCCESS)
 Main PID: 114715 (httpd)
 ......
上記のように表示されたら成功です


サーバー起動時に自動的にApacheを起動するように設定
systemctl enable httpd
```

# ファイヤウォールの設定
```

http, httpsのアクセスを開放
sudo firewall-cmd --permanent -add-service=http
sudo firewall-cmd --permanent -add-service=https

ファイアーウォールの設定の再読み込み
sudo firewall-cmd –reload

Firewall port開放
firewall-cmd --zone=public --add-port=443/tcp --permanent
firewall-cmd --zone=public --add-port=80/tcp --permanent

リロード
firewall-cmd –reload

firewallの設定を確認するコマンド
firewall-cmd --list-all
```
# PHPのインストール
```

インストールできるPHPのバージョンを確認
dnf module list php

今回は7.4をインストール
dnf -y module install php:7.4

 PHP反映
systemctl restart httpd

PHP動作確認
php -v

Apacheにmod_sslをインストール
dnf install -y mod_ssl

Apacheを再起動して反映
systemctl restart httpd

# httpd.confファイルを編集

 httpd.confファイルを編集
vi /etc/httpd/conf/httpd.conf

Listen 80のあとに追記

例
Listen 80
ServerAdmin root@testtest.com
DocumentRoot /var/mymy/public
ServerName testtest.com

Apacheを再起動
systemctl restart httpd

# SSL設定

Apacheにmod_sslをインストール
dnf install -y mod_ssl

Apacheを再起動して反映
systemctl restart httpd

certbotをインストール
dnf install certbot python3-certbot-apache

sslの反映
certbot --apache -d twi-twi-poll.com

Apacheを再起動して反映
systemctl restart httpd

通常の更新 (有効期限が1ヶ月以内出ないの使えない）
certbot renew

強制的に更新
certbot --force-renew

cronで自動更新の為にcrontabファイルを編集
vi /etc/crontab

末行に以下を追記
0 0 * * * root /usr/bin/cerbot renew
```


# Composerのインストール
```

Composerのインストーラーをダウンロード
sudo wget https://getcomposer.org/installer -O composer-installer.php

Composerのインストール
php composer-installer.php --filename=composer --install-dir=/usr/local/bin

Composerのアップデート
composer self-update

Composerのバージョンの確認
composer --version

例
Composer version 2.1.9 2021-10-05 09:47:38

```
 # ドキュメントルートの設定
```

まずは今回デプロイするアプリケーションをGitHubからcloneしましょう。

varディレクトリーに移動
cd /var

varディレクトリーでgit clone
git clone https://github.com/GitHubユーザー名/laravel-app.git

SSLを設定する過程で、/etc/httpd/confにhttp-le-ssl.confという名前のファイルができているはずです。

コチラを編集してドキュメントルートを/var/laravel-app/publicに設定しましょう。
vi /etc/httpd/conf/http-le-ssl.conf

以下のようにドメインに合わせて設定  自身の設定をして下さい
ServerAdmin root@testtest.com
DocumentRoot /var/mymy/public
ServerName testtest.com

Mysqlのドライバーを入れる

 php -m | grep pdo pdo_sqlite

dnf install php-mysqlnd

php -m | grep pdo
pdo_mysql

laravelプロジェクトファイルに移動
例mymy

composer インストール
composer install

.env.exampleファイルをコピーして.envを作成
cp .env.example .env

アプリのキー作成
php artisan key:generate

Apacheの設定ファイル書き換え

設定ファイル/etc/httpd/conf/httpd.confの該当部分を下記のように書き換えます。
```




![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2911371/7212ca32-3e55-248c-4146-e73ee3e5ffed.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2911371/cbf3fdd0-9cdb-aa75-6d50-bf86e579a70b.png)


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2911371/b83d802b-6da2-6d33-a3fe-2190de7e3704.png)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2911371/0a17303f-dc0f-92e9-8851-b398dd806f6e.png)


写真ではMyBBSになっています。

```
保存してApacheを再起動
systemctl restart httpd
```

以上です

参考にした記事です

https://qiita.com/ChairoHack/items/06a2e1357b646acb41c7

https://qiita.com/erik_t/items/d8f4746d2dc2992f329e

https://www.rem-system.com/centos8-apache-install/