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

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

yps1 task4まとめ

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


文字数が5000をこえてしまいました。
ブログ書いてる人が勝手に必要以上に付け足しているところは
青文字で記載しているので、不要な方は青文字は飛ばして下さい 。

■ 事前準備

・yps1 task1〜3の実施

github.com

・ターミナルでCentOSにログイン

 

■ 本日のゴール

ターミナルを用いてWordPressをダウンロードしログイン、テーマの反映まで行う

f:id:macyosuke:20200810135507p:plain

※上記のテーマは「Biz Ezone」

 

■ 概要

【1】ターミナルからEC2にログイン
【2】WordPressダウンロード
【3】WordPressディレクトリの移動
【4】DB作成及びDB関連権限付与
【5】WordPress設定ファイル編集
【6】アクセス権(パーミッション)設定
【7】Webサーバ設定ファイル(.htaccess)の編集
【8】default.confの編集
【9】WordPressインストール画面の表示確認
【10】WordPressログイン
【11】WordPressダッシュボード表示確認
【12】SSH SFTP Updater Supportの導入及び更新可能プラグインの更新
【13】権限変更
【14】テーマ反映
【追加課題】※追加課題のリンクは貼っていますが8/10時点で未実施です
【Laravelへの戻しについて】 
【おまけ】
 

■ 手順

【1】ターミナルからEC2にログイン

ターミナルからEC2にログインする。

 

【2】WordPressのダウンロード

cd /tmp
wget https://ja.wordpress.org/latest-ja.zip
unzip ./latest-ja.zip
wget は、指定したURLのファイルをダウンロードするコマンド

 

【3】 WordPressディレクトリの移動

WordPressをダウンロードするとwordpressというディレクトリが出来上がるので、移動する。

mv wordpress wwpp
mv wwpp /var/www/html/

◇ 補足
調べたところによると、WordPressをインストールするためには、WordPressファイルをドキュメントルート(=Webサーバ上に公開するための一番初めのディレクトリ)に移動する必要があるらしく、そのために行っているコマンドです。 
なぜ名前をwwppにしているのかについて、推測ではありますが、
そもそもの前提として後続の手順で変更するWordPressが持つDBのテーブルの接頭辞がデフォルトだとwp_になっていて、これがWordPressを知っている人であれば簡単に推測ができ、攻撃を受けやすくなるとのことで(wpl_も同様)セキュリティ上変更することが推奨されているようで、変更する名前と合わせたかったからというのが前提にあるのと、「wordpress」だと名前が長いから分かりにくいと言うのがあるのかなと思います。 

 

【4】DB作成及びDB関連権限付与

mysqlにログインしデータベースを作り権限付与する。

mysql -u root -p
create database wwppdb;
grant all on wwppdb.* to wwppuser@localhost identified by '任意のパスワード';
exit;

◇ 補足

上記で付与した権限「all」について、権限を付与する権限(=GRANT OPTION)以外の権限を表すため、これでユーザ「wwppuser」はwwppdb内の全てのテーブルで権限を付与すること以外は出来るようになった。
また、本コマンドではユーザの作成も兼ねているようです。

 

【5】WordPress設定ファイル編集

cd /var/www/html/wwpp/
cp -p wp-config-sample.php wp-config.php
vi wp-config.php

○ 設定内容

https://github.com/yotaro-ok/yps/issues/12#issuecomment-671045833
DB_NAME:wwppdb
DB_USER:wwppuser
DB_PASSWORD:設定したパスワード
table_prefix:wwpp_
※ シングルクォート、セミコロンは記載省略しています

◇ 補足

公式サイトによると、ダウンロード直後のWordPressにはwp-config.phpファイルは含まれず、wp-config.phpの生成方法として、
下記2種類の方法があるとのこと。今回は前者の方法。

  • wp-config-sample.phpを編集し、wp-config.phpという名前で手動作成
  • WordPressをセットアップする過程で入力された情報をもとに生成

ちなみに、今回修正した設定ファイルは決められた順序で書かれているので、ファイルの内容の順序を変更するとサイトにエラーが発生する場合があるとのことで注意が必要そうです。

 

【6】アクセス権(パーミッション)設定

cd /var/www/html
sudo chown -R centos:nginx /var/www/html/wwpp/
→ /var/www/html/wwwディレクトリ以下のファイル/ディレクトリを全てcentosユーザ、nginxグループのものにする)

sudo find /var/www/html/wwpp/ -type f -exec chmod 664 {} \;
→ /var/www/html/wwppディレクトリ以下のファイルを664に変更

sudo find /var/www/html/wwpp/ -type d -exec chmod 775 {} \;
→ /var/www/html/wwppディレクトリ以下のディレクトリを775に変更

◇ 補足

パーミッションを整理してみる
664と775について、1桁目=所有者、2桁目=グループ、3桁目=その他で、
rが読み出しで数値が4
wが書き出しで数値が2
xが実行可能で数値が1
-が許可なし
で、3桁それぞれがそれらの合計値を足したものになるので・・・

○ /var/www/html/wwpp/配下のファイル

所有者・・・読み書き可
グループ・・・読み書き可
その他・・・読み出しのみ可 

○ /var/www/html/wwpp/配下のディレクト

所有者・・・全て(読み書き実行)可
グループ・・・全て(読み書き実行)可
その他・・・読み出しと実行のみ可

になる。下記添付の通り。

f:id:macyosuke:20200810173231p:plain

※ 上記に記載の「centos」が所有者、「nginx」がグループになる

ちなみにcentosが属するグループを見てみたらnginxじゃなくてcentos adm wheel systemd-journalだった。

f:id:macyosuke:20200810175128p:plain

これがnginxと繋がっているのか・・?これ以上調べるとハマりそうなので、特に今のところ問題は起きていないので備忘録としてここに残しておくにとどめます。

○ コマンド 

chown・・・所有者を変更する
chown -R・・・再起的(ディレクトリ内に存在するもの一つ一つに対して処理)に所有者を変更する
-type f・・・ファイルを対象とする
-type d・・・ディレクトリを対象とする
-exec・・・見つかったファイルやディレクトリに対してコマンドを実行
{}・・・findでマッチしたファイル、ディレクト
¥;・・・最後の;はexecで指定したコマンドの終わりを示しており、¥は;をエスケープするためのもの(恐らくエスケープしないとどこが終わりかわからなくなってエラーになるとかそう言う感じだと思う)

 

【7】Webサーバ設定ファイル(.htaccess)の編集

cd wwpp
vi .htaccess
<files wp-config.php>
order allow,deny
deny from all
</files>
vi抜けて
sudo chmod 606 .htaccess

やってることは、(データベースのログイン情報など重要な情報が含まれている)wp-config.phpのファイルに第3者がアクセスできないようにしている
いくつか記事を読んでいると、Nginxでは.htaccessが利用できないというのをみたけど、でも動いてるけどどういう仕組みなんだろ?
一旦気にしないでおこうと思います。

◇ 補足
order・・・アクセス制限の許可と拒否の順番を設定するもの。
order allow,denyだと許可してから拒否
order deny,allowだと拒否してから許可
→ ちょっとピンとこなかったけど、つまり全部拒否してるよ・・ってことっすかね・・
第3者からのアクセス不可にしているということはわかりました。

 

【8】default.confの編集

sudo vi /etc/nginx/conf.d/default.conf
root 〜は全て下記にする
root /var/www/html/wwpp;
下記を追記する
location /wp-config.php {
  deny all;
}

再起動する
sudo systemctl restart php-fpm
sudo systemctl restart ngin

 

【9】WordPressインストール画面の表示確認

URLにEC2のアドレスを入力し、下記の画面が表示されることを確認

f:id:macyosuke:20200810191924p:plain

表示が確認できたら、「検索エンジンがサイトをインデックスしないようにする」にチェックを入れ、

f:id:macyosuke:20200809215527p:plain
画面下の「WordPressをインストール」ボタンを押下

 

【10】WordPressログイン

ログインボタンを押下

f:id:macyosuke:20200810184430p:plain

ユーザ名、パスワードを入力しログインボタンを押下

f:id:macyosuke:20200809215821p:plain

 

【11】WordPressダッシュボード表示確認

以下の通りダッシュボードが表示されることを確認

f:id:macyosuke:20200809220203p:plain

 

【12】SSH SFTP Updater Supportの導入及び更新可能プラグインの更新

更新可能なプラグインがあるが、AWSのEC2にWordPressをインストールして、WordPressの管理画面からプラグイン等をインストールする際、デフォルトのままだとFTP接続でエラーになるとのこと(yotaroさんもFTPポート空いていないからどうするって言ってたけど、それが原因っぽい)
なのでSFTP(SSHFTPを組み合わせたようなやつ、厳密にはいろいろ違うっぽい)で接続出来るようにする。
cd wp-content/plugins/
wget https://downloads.wordpress.org/plugin/ssh-sftp-updater-support.0.8.2.zip
unzip ./ssh-sftp-updater-support.0.8.2.zip
rm ./ssh-sftp-updater-support.0.8.2.zip
sudo chown -R centos:nginx ./ssh-sftp-updater-support/

上記が終わったら、WordPressの画面に戻り、プラグインのところにあるSSH SFTP Updater Supportを有効化する

f:id:macyosuke:20200809221652p:plain

有効化したら、SSH SFTP Updater Supportの下のプラグインを選択

f:id:macyosuke:20200809221753p:plain

SSH SFTP Updater Supportの下に無効化と出ている状態=有効化になっているということになります。

プラグインを更新してみる

f:id:macyosuke:20200809225121p:plain

接続情報を入力

f:id:macyosuke:20200809225845p:plain

【ホスト名】ホスト名:ポート番号の形式で入力

FTP/SSHユーザ名】centos

FTP/SSHパスワード】centosのパスワード

【Copy / Paste Private Key】XXX.pemファイルを選択 

f:id:macyosuke:20200810192940p:plain

SSH SFTP Updater Supportを導入するとSSH2の選択肢が増えているはずなので、SSH2を選択し開始を押下 

 

【13】権限変更

cd /var/www/html/wwpp/
sudo chmod 664 wp-config.php

 

【14】テーマ反映

外観 → 新しいテーマを追加→インストール→有効化

f:id:macyosuke:20200810215740p:plain

テーマを検索にartworkと入れてみる

f:id:macyosuke:20200810215905p:plain

気になるテーマをマウスオーバーする

f:id:macyosuke:20200810215942p:plain

インストールを押すとインストールが始まる。インストールが終わるとこのような状態になるので有効化を押す

f:id:macyosuke:20200810221629p:plain

最後に、画面左上のサイト名をクリックしたら設定したテーマが表示されます。

f:id:macyosuke:20200810222408p:plain

 ※上記のテーマは「Artwork Lite」

テーマを追加したら、追加したテーマとともに#yps1 #task4のハッシュタグをつけてツイートしてみましょうw 

 

【追加課題】

 

【Laravelへの戻しについて】

Laravelに戻すときは、default.confのパスを
root /var/www/html/wwpp;にしたところを、全て
root /var/www/html/yps/public;に戻し、再起動をしたらOKです。
sudo vi /etc/nginx/conf.d/default.conf
sudo systemctl restart php-fpm
sudo systemctl restart ngin

 

【おまけ】

① ログ出力確認

下記コマンドを入力し、ログの出力を確認する

sudo tail /var/log/php-fpm/error.log
sudo tail /var/log/php_errors.log 
sudo tail /var/log/nginx/error.log
sudo tail /var/log/nginx/access.log
sudo tail /var/log/mysqld.log
sudo tail /var/www/html/yps/storage/logs/laravel.log

※ ファイルの中身がそもそもなくて出力が確認出来なかったり、ファイルがそもそもなかったりする場合は、試しに中身を追記してみたり、ファイルを作成してみたりすると良いと思います。

 

② セキュリティ対策についてはこちら

baigie.me

【備忘録】

 

おわり

 

Webページ大枠の作成

Webページ作成7日目、大枠が出来上がりました。

色々な人のポートフォリオを見てデザインの調査をすることで、視認性をどう確保するかやファーストビューで何を伝えるかなど考えるきっかけになった。完成品ではファーストビューは自分を知ってもらうためにも顔写真がいいのかな。

また、基本的なコーディング手法(Webフォント適用方法、Twitterアイコンの設置方法)の勉強になった。Flexboxの使い方の復習にもなった。

クラス名はBEMで書いてるけど、名前の付け方がまだちょっとあやふやなところがあり。都度リファクタリングしつつ見直していこうと思います。

まだヘッダー、画像、フッターしかないけど、ここから色々と肉付けしていきたいと思います。 本当はカッコいいアニメーションとか入れたいけど、 まずは見やすさ、分かり易さを追求していきたいです。

備忘録

  • Flexboxは親側につける。
  • box-sizingについて、デフォルトではcontent-boxになってる。これだとpaddingつけたときにはみ出たりする。border-boxにすれば内側にpaddingが付くのではみ出る心配がない。
  • ulやliを用いて横並びにしてlist-style: none;で黒ぶちを消したときは、黒ぶち分の領域は出来ているので、必要に応じてpaddingを0にする。

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の設定有効化の手順を追記

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

 

 

 

Webページ作成

Webページを作成する事にしました。

バックエンドなどの技術も学びつつ、実績をつけていくとともに、

まずは自分を知ってもらう所から始めていこうと思います。

 

日付は変わってしまいましたが、本日は3時間デザインの検討・調査をしました。

そもそもの制作目的や重視したいポイントなど、洗い出してみました。

その上で、イケてるWebデザインが紹介されているページを幾つか見てみました。

ファーストビューのデザインや、マウスオーバー時やスクロール時の動きなど、一つ一つ全然違っていて考えさせられました。

ある程度こうしたいなというのは出てきたので、試作品的にまずは作ってみつつブラッシュアップしつつでやっていきたいと思います。

 

今後も途中経過や技術的なアウトプット等、

不定期で投稿していきたいと思いますのでよろしくお願いします。

 

工数:3h

内容:デザイン調査

合計時間:3h

VSCodeからCentOSにSSH接続する方法

【動作確認環境】

Mac

 

【事前準備】

LAMP環境構築

「task_1.md」「task_2.md」の実施

github.com

 

プラグイン導入

VSCodeでRemote - SSHプラグインを導入する。

参考:

http://blog.serverworks.co.jp/tech/2020/02/20/vscode-remote-ssh/

 

・ファイル作成

configファイルをデスクトップに作成します。

※ 手順だとconfigファイルは.ssh配下に作成することになっています。

私は.ssh配下に作成してVSCodeと連携することが出来なかったのでデスクトップに作成していますが、出来る方は手順通り.ssh配下に作成してみたほうが良いかと思います。。TT

configファイルに、下記を記載します。

Host yps
HostName xx.xx.xx.xx(CentOS側のアドレス)
User centos
Port 設定したポート
IdentityFile pemファイルのフルパス

 

【手順】

1. プラグイン導入後に表示されるアイコンのクリック

VSCodeに下記のアイコンが表示されるので、クリックします。

f:id:macyosuke:20200726165723p:plain

2. configファイル読込

歯車のマークをクリック→configファイルを指定(VSCodeとconfigファイルの連携)を行います。

SSH TARGETSにypsが表示されることを確認して下さい。

f:id:macyosuke:20200726174059p:plain

f:id:macyosuke:20200726174351p:plain

※ 表示されない場合は、VSCodeを再起動してみて下さい。

3. 接続
ypsをマウスオーバーすると、右側に接続アイコンが出てくるので押します。

f:id:macyosuke:20200726174504p:plain

別窓で下記の画面が表示されるので、Continueを押すと接続が出来ます。

f:id:macyosuke:20200726182830p:plain

 ※注

選択せずに他のところをクリックしたり、Cancelを押すと下記の画面が表示され接続が出来ない事象を確認しています。ご注意下さい。

(接続からやり直せば接続は可能)

f:id:macyosuke:20200726175530p:plain

 4. 編集したいファイルを開く

Open Folderをクリックします。

f:id:macyosuke:20200726180117p:plain

/var/www/htmlと打ち、htmlを選択しOKを押します。

f:id:macyosuke:20200726180157p:plain

ypsをクリックします。

f:id:macyosuke:20200726180323p:plain

こんな感じのディレクトリ構造で表示されてたらOKです!

f:id:macyosuke:20200726180402p:plain


 以上です。

MySQLでSQLの練習(動作確認)をする方法について

MySQLSQLの練習(動作確認)をする方法をまとめてみました。

 

手探りでやったので、適切な方法かどうかの保証が出来かねますが、

一応SQLの結果が返ってくるところの確認はとれましたので、共有します。

もしおかしいところがありましたらご指摘いただけますと幸いです。

 

 ◆ 事前準備

LAMP環境構築

→ 最強のプログラミングスクールの「task_1.md」「task_2.md」の実施

github.com

 

◆ 手順

【1】下記をダウンロードし、解凍する

http://tech.pjin.jp/wp-content/uploads/2016/04/worldcup2014.zip

【2】解凍後のsqlファイル「worldcup2014.sql」をDesktopに移動する

【3】ターミナルでcentosにログインし、sql格納用ディレクト(名前は任意)を作成後ターミナルから抜ける

ssh centos@xx.xx.xx.xx -p ポート番号 -i .pemのパス

cd /home/centos

mkdir execute_sql

exit

【4】上記2で作成したsqlファイルを、上記3で作成したsql格納用ディレクトリに送信する

scp -P ポート番号 -i pemファイルのフルパス ~/Desktop/worldcup2014.sql centos@xx.xx.xx.xx:/home/centos/execute_sql/

【5】ターミナルにログインし、sqlファイルが送信されたことを確認する

ls /home/centos/execute_sql

→worldcup2014.sqlがあればOK

【6】 sql格納用ディレクトリまで移動し、mysqlにログインする

cd /home/centos/execute_sql

mysql -u root -p

→パスワードは環境構築時に設定したパスワードを入力

【7】 使用するデータベースを選択

use mysql

f:id:macyosuke:20200725023401p:plain

【8】現在のデータベースの状態を確認する

show tables;

f:id:macyosuke:20200725021544p:plain
【9】sqlファイルを実行する

source worldcup2014.sql

f:id:macyosuke:20200725021839p:plain

※以下Query OK 〜が続きますが省略します

【10】sqlファイル実行後のデータベースの状態を確認する

show tables;

f:id:macyosuke:20200725021948p:plain

→実行前は31テーブルだったけど、38テーブルに増えた!

SQLが実行された!!!

 

※ ここから練習問題10を解いたときのSQLが含まれます

 

【11】 SQL練習問題の問題番号10を開く

https://tech.pjin.jp/blog/2016/12/05/sql%e7%b7%b4%e7%bf%92%e5%95%8f%e9%a1%8c-%e4%b8%80%e8%a6%a7%e3%81%be%e3%81%a8%e3%82%81/

【12】やってみる

問題:オウンゴールの回数を表示する

オウンゴールはgoalsテーブルのplayer_id列がNULLのものになります)

goalsテーブルの中身を確認する

show columns from goals;

f:id:macyosuke:20200725022051p:plain

オウンゴール回数表示のSQLを実行する

select count(*) as own_goal_num from goals where player_id is null;

f:id:macyosuke:20200725022130p:plain

完了!!

 

【備忘録(地味にハマった事)】

○ SCPコマンド実行時その1

ローカルからサーバにファイルを送信するときに指定するオプションについて、-pだとダメだった。下記エラーが発生した。

ssh: connect to host xx.xx.xx.xx port 22: Operation timed out

lost connection

-Pだといけた。全角!

○ SCPコマンド実行時その2

SCPコマンドを実行するとき、centosにログインした状態で叩くと下記エラーが出てしまってだめだった。

Warning: Identity file /home/centos/Desktop/yoke_ok.pem not accessible: No such file or directory.

Permission denied (publickey,gssapi-keyex,gssapi-with-mic).

lost connection

ローカルで叩かないと送信できなかった。原因不明。

○ ターミナルの文字色変更方法

bash_rcにちゃんと言われた通り下記追記したよなーと思って探してたところ、これとは全く別の話だった

export PS1='\[\033[01;36m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '

ターミナル→環境設定→テキストタブ→Textの色を変更したらいけました

f:id:macyosuke:20200725013519p:plain

 

ご参考になれば幸いです

以上です

 

◆ 更新履歴

7/25 1:50 新規作成

7/25 2:30 体裁等修正