ぴよっ子エンジニアの日記

IT技術のアウトプット、Webページ作成の経過を綴ります

yps1 task3まとめ

task3の手順をまとめました。

 

◆ 確認環境

Mac

 

◆ 事前準備

sudo yum install nano -y ※ vim使いたくないって方のみ

sudo yum install colordiff -y ※ 差分取得に便利なツール

task1, 2が完了していること

※ 下記の内容も含みます

 

◆ やること概要

  • 選手の名前を表示(TestCommand.phpの動確)
  • 外部SQLファイル読込
  • php.iniの初期設定
  • GitHub上に自分のリポジトリを作成
  • GitHub上にLaravelのソースをアップ(gitのconfigファイルの設定、秘密鍵の登録後)

 

◆ 手順

ゴール1:選手の名前を表示してみよう!

VSCodeSSH接続をする。

f:id:macyosuke:20200731224830p:plain

App→Console→CommandsディレクトリのTestCommand.phpファイルを開く

f:id:macyosuke:20200731225053p:plain

一回中身を全部消して、下記に記載のコードをコピーペーストする

https://github.com/yotaro-ok/yps/issues/3#issuecomment-663672640

 

ターミナルに戻り、下記コマンドを実行する。

php artisan config:clear
php artisan test_command

→ 選手の名前が表示されればOK!!!

コマンドを調べてみたところ、そもそもartisanとはLaravelでアプリケーションを作るときに提供してくれてる便利なコマンドがいっぱい詰まったやつで、

前者は設定ファイルのキャッシュ(よく使うデータを取り出しやすいところに準備しておく仕組み)を削除するコマンドで、後者は調べても出てこなかったけど、おそらくファイル名を指定して実行してるだけかと思われる(TestCommand.phpの中を見てみたら、handle関数の中で選手の名前を表示するようにしていたので、ここでやりたいことは実行することでphpがきちんと動いていることを確認することだと勝手に理解しました)

 

ゴール2:外部からSQLファイルを読み込ませよう!

まず、/etc/my.cnfに下記を追記する。

[client]
default-character-set=utf8mb4

mysqlにログインし、現状を確認する。

f:id:macyosuke:20200801010405p:plain

エンターキーを押すと・・

f:id:macyosuke:20200801010445p:plain

ダメだ、日本語が打てない。ってなる

 

結論から言うと文字コードがutf8mb4→日本語入力不可という理屈らしい

文字コードをutf8にすれば日本語の入力は可能だが、それじゃいけないのか?何がだめなのかっていうと、

4バイト文字のデータを格納出来なくなるからダメって話だった

4バイト文字ってどんなものなのか調べてみたところ

見慣れない漢字ばっかりで、現場で働くときは業務的に許容するのかどうなのかコミュニケーションを取っていく必要があると感じた(JIS X 0213の第3・4水準漢字の一部が4バイト文字とのこと)

身近な所だと、よく見かけるようなビールや寿司などの可愛らしい絵文字なども4バイト文字になりうるらしく、安全に開発するにはutf8mb4が良いことが分かった

 で、

日本語入力出来ないなら日本語で検索したいときどうするの?

に対する回答が、外部ファイルで読み込ませるという方法だった

こう!!↓↓↓↓↓↓↓

cd /var/tmp
vi get_players.sql
sqlファイル内に下記を入力し保存する
use worldcup2014db;
select * from players where name = '酒井';

その後、下記コマンドを実行し、パスワードを入力する

mysql -u root -p < ./get_players.sql

→ 酒井さんが2行表示されてたらOK!

 

※ ファイルに出力したい場合はこちら

mysql -u root -p < ./get_players.sql > ./out.txt

 

ゴール3:php.iniの初期設定!!!

まずはバックアップを取得

sudo cp /etc/php.ini /etc/php.ini.org

 

下記記事を参考にphp.iniの初期設定を行う

sudo vi /etc/php.ini

※「;」はコメントです
affiwork.net

 

次にPHPのエラーログの設定を行う

;error_log = php_errors.log

error_log = "var/log/php_errors.log"

 

修正出来たら保存をし、ログファイルの作成とファイル所有者の変更も行っておく。

sudo touch /var/log/php_errors.log
sudo chown nginx:nginx /var/log/php_errors.log

 ここまで出来たら、答え合わせしとく!↓↓↓

https://github.com/yotaro-ok/yps/issues/5#issuecomment-667203978

※ 記事にある通り、mbstring.encoding_translation = Offは、コメント外しておきます! 

 

設定を有効化するため、 php-fpmとnginxを再起動する。

sudo systemctl restart php-fpm
sudo systemctl restart nginx

php-fpmとは何か調べてみたところ、

【FPM(FastCGI Process Manager)はPHPFastCGI実装のひとつ】

とのこと・・・うん、ちょっとわからん・・

要はサーバ上でphpを実行するときに使うやつらしくて、今回の場合Nginxサーバ上でphpを実行するときに使うやつ。

task2でwww.confのuserとgroupの設定をapacheからnginxに変えたけど、これがまさにphp-fpmをNginxで動かすときの設定らしい

 

ゴール4: GitHub上に自分のリポジトリを作ろー

 まずはgitをCentOS上にインストールしgit管理を始めるためのコマンドを実行

sudo yum install git -y
git init

※git initを実行すると.gitという隠しファイルが生成され、この.gitファイルが含まれているフォルダとそれより下位にあるフォルダがgitで管理されることになるらしい。

gitで管理されるとは、例えばgitコマンドのgit addを使えたりするよとかそういうこと。

 

GitHubの自分のアカウントに行き、Newボタンを押す 

f:id:macyosuke:20200801001025p:plain

 

すると新規リポジトリー作成画面が開く。

下記設定を行いCreate Repositoryボタンを押下

Repository name:好きなリポジトリー名を入力

Description:任意

Privateを選択

Addの.gitignoreにLaravelを指定

 

f:id:macyosuke:20200801000531p:plain

 

 最後:GitHub上にLaravelのソースをアップ(もうちょっと!!)

作成したリポジトリの画面の右らへんにあるCodeボタンをクリック 

f:id:macyosuke:20200801001746p:plain

 Use SSHをクリック

f:id:macyosuke:20200801001810p:plain

git@〜〜〜をコピー

f:id:macyosuke:20200801025527p:plain

 

ターミナルに戻り、gitの設定ファイルを編集します。

cd /var/www/html/yps/
vi .git/config

こんな感じです。名前、メールアドレス、リポジトリは読み替えて下さい。

[user]
    name = yosuke
    email = macyosuke@gmail.com
[core]
repositoryformatversion = 0
filemode = true
bare = false
logallrefupdates = true
[remote "origin"]
    url = git@github.com:yoke0809/myapp.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

 

次に秘密鍵を作成、登録します。

ssh-keygen -t rsa -b 4096 -C "メールアドレス"
エンターキー押下
パスワード入力×2

f:id:macyosuke:20200801031344p:plain

cat ~/.ssh/id_rsa.pub

→ 出てきた文字列をコピー

 

GitHub上で秘密鍵を登録します。

Settingsをクリック

(自分のアイコンから遷移できるほうのSettings!)

f:id:macyosuke:20200801003042p:plain

 

SSH and GPG keysを押します。

f:id:macyosuke:20200801003155p:plain

New SSH keyを押します。

f:id:macyosuke:20200801031744p:plain

 

Titleは任意で、

keyにさきほどコピーしていた文字列をペーストし、Add SSH keyを押します。

f:id:macyosuke:20200801003300p:plain

 これで準備は整ったので、いよいよ登録!

cd /var/www/html/yps
git add.
git commit -am "initial"
git push origin master

yes入力

パスワード入力

git branch
git branch develop
git checkout develop
git push origin develop

 

出来ていれば、GitHub上のdevelopブランチに反映されているはず!

f:id:macyosuke:20200801033055p:plain

 

【その他】

もしどこか間違いなどありましたら、ご指摘いただけますと泣いて喜びます。

 

おわり

 

◆ 更新履歴

8/1

php.iniの設定を一部赤文字で追記(mbstring.encoding_translation)

 php.iniの設定有効化の手順を追記

微修正(一部誤字修正、備忘録的追記)