yps1 task3まとめ
task3の手順をまとめました。
◆ 確認環境
◆ 事前準備
sudo yum install nano -y ※ vim使いたくないって方のみ
sudo yum install colordiff -y ※ 差分取得に便利なツール
task1, 2が完了していること
※ 下記の内容も含みます
◆ やること概要
- 選手の名前を表示(TestCommand.phpの動確)
- 外部SQLファイル読込
- php.iniの初期設定
- GitHub上に自分のリポジトリを作成
- GitHub上にLaravelのソースをアップ(gitのconfigファイルの設定、秘密鍵の登録後)
◆ 手順
ゴール1:選手の名前を表示してみよう!
App→Console→CommandsディレクトリのTestCommand.phpファイルを開く
一回中身を全部消して、下記に記載のコードをコピーペーストする
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にログインし、現状を確認する。
エンターキーを押すと・・
ダメだ、日本語が打てない。ってなる
結論から言うと文字コードが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)はPHPのFastCGI実装のひとつ】
とのこと・・・うん、ちょっとわからん・・
要はサーバ上でphpを実行するときに使うやつらしくて、今回の場合Nginxサーバ上でphpを実行するときに使うやつ。
task2でwww.confのuserとgroupの設定をapacheからnginxに変えたけど、これがまさにphp-fpmをNginxで動かすときの設定らしい
まずはgitをCentOS上にインストールしgit管理を始めるためのコマンドを実行
sudo yum install git -y
git init
※git initを実行すると.gitという隠しファイルが生成され、この.gitファイルが含まれているフォルダとそれより下位にあるフォルダがgitで管理されることになるらしい。
gitで管理されるとは、例えばgitコマンドのgit addを使えたりするよとかそういうこと。
GitHubの自分のアカウントに行き、Newボタンを押す
すると新規リポジトリー作成画面が開く。
下記設定を行いCreate Repositoryボタンを押下
Repository name:好きなリポジトリー名を入力
Description:任意
Privateを選択
Addの.gitignoreにLaravelを指定
最後:GitHub上にLaravelのソースをアップ(もうちょっと!!)
作成したリポジトリの画面の右らへんにあるCodeボタンをクリック
Use SSHをクリック
git@〜〜〜をコピー
ターミナルに戻り、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
→ 出てきた文字列をコピー
Settingsをクリック
(自分のアイコンから遷移できるほうのSettings!)
SSH and GPG keysを押します。
New SSH keyを押します。
Titleは任意で、
keyにさきほどコピーしていた文字列をペーストし、Add SSH keyを押します。
これで準備は整ったので、いよいよ登録!
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ブランチに反映されているはず!
【その他】
もしどこか間違いなどありましたら、ご指摘いただけますと泣いて喜びます。
おわり
◆ 更新履歴
8/1
php.iniの設定を一部赤文字で追記(mbstring.encoding_translation)
php.iniの設定有効化の手順を追記
微修正(一部誤字修正、備忘録的追記)