apacheにgitをいれてcloneしたものを表示する

# 初めに
git cloneしたプロジェクトをapacheで表示させてみたのでその解説をします。

# 環境情報
macOS Sonoma 14.4.1
CentoOS Stream X_86_64
Apache/2.4.57
composer version 2.7.2
Laravel Installer 5.7.1
git version 2.43.0

# 解説する

## サーバ側でやること
rootユーザーでログインする
gitをインストール
```
dnf install git-all
```
git でコマンド紹介が出ればオッケー

.sshに移動
```
cd .ssh
```
githubと連携するための公開鍵と秘密鍵をおいておくディレクトリを作る
```
mkdir git_hub
```
git_hubに移動
```
cd git_hub
```
そのディレクトリに鍵のペアを作る
```
ssh-keygen -t ed25519 -C "gitのメールアドレス" -f キー名
```
パスフレーズはメモしておく

ssh-agentへのsshキーの追加
パスフレーズの入力をパスするようになります。
バックグラウンドでssh-agentが動作していることを確認
```
eval `ssh-agent`
```
秘密鍵をssh-agentに追加する
```
ssh-add ~/.ssh/git_hub/~
```

## 公開鍵をgitに登録する

右上のアイコンをから
![スクリーンショット 2024-04-15 17.01.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682713/942fb4f9-0580-1263-2dfe-a1f61072ec50.png)

Settingsに飛ぶ
![スクリーンショット 2024-04-15 17.02.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682713/68db3b6b-cbd7-9e38-f3dd-39c38eca6475.png)

SSH and GPG　keysに飛ぶ
![スクリーンショット 2024-04-15 17.03.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682713/d8f0e4b4-9dd7-37a6-3948-44f8f994d452.png)

New ssh keyで
![スクリーンショット 2024-04-15 17.04.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3682713/1f39f8e9-8677-8edd-234c-d470711bd14f.png)

公開鍵を追加する


## 動くかテストする
```
ssh -T git@github.com
```
これを叩いてみてください。
gitとうまく連携できていると
```
Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.
```
と表示されますが、
画面には
```
git@github.com: Permission denied (publickey).
fatal: Could not read from remote repository.
```
と表示されているのでこれを解決していきます。

## gitの秘密鍵をうまく読み取らせる
gitはssh接続の際にデフォルトで「~/.ssh/id_rsa」、「~/.ssh/id_dsa」、「~/.ssh/identity」のファイルしか確認しないそうです。
僕は新しくgitの鍵を置いておくディレクトリを作ったのでデフォルトでは読み取られません。
なのでその対策としてconfigファイルを作っていきます。
.sshに移動します。

```
cd ../
```
で一つ上に上がって

```
vi config
```
でconfigファイルを作成します。
内容は
```
Host github github.com
  HostName github.com
  IdentityFile ~/.ssh/git_hub/~ #ここに自分の鍵のファイル名
  User git
```
にします

## 動くかテストする
```
ssh -T git@github.com
```
これを叩いてみてください。
gitとうまく連携できていると
```
Hi ユーザー名! You've successfully authenticated, but GitHub does not provide shell access.
```
と表示されます

## git cloneしてみる
laravelのプロジェクトを/var/www/htmlにおきたいのでそこまで移動
```
git clone ~
```
でプロジェクトをクローンしてきてください。


あとは
apacheの設定はこの記事で

https://qiita.com/opatu07/items/729172f3faf4a95d7fd5

laravelのデータベースなどの設定はこちらの記事を参考にしてやってみてください。

https://blog.usuyuki.net/laravelkusanagi#i

お疲れ様でした。

## 手順の最中にエラーが出る
### エラー1　
```
SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO) (Connection: mysql, SQL: select table_name as `name`, (data_length + index_length) as `size`, table_comment as `comment`, engine as `engine`, table_collation as `collation` from information_schema.tables where table_schema = 'portfolio' and table_type in ('BASE TABLE', 'SYSTEM VERSIONED') order by table_name)
```
.envにデータベースの設定を記入したのにrootで接続しようとしている場合の対処方法
.envでdatabaseの情報に#がついていないか確認してください。


それでも無理な方は下の記事を参考にユーザーを作り直して権限を与えてください

https://note.com/haraaa/n/n8ea4986ec3b5

ぼくはこれで解決できました。

# 最後に
これでポートフォリオを公開する準備が整いました。

# 参考文献

https://qiita.com/opatu07/items/729172f3faf4a95d7fd5

https://blog.usuyuki.net/laravelkusanagi#i

https://note.com/haraaa/n/n8ea4986ec3b5

https://qiita.com/shizuma/items/2b2f873a0034839e47ce

こちらの記事を参考にして作成しました。
ありがとうございました!