ものすごく時間が空いてしまいました
パーフェクトPHPは班が古いため、データベースとPHPの接続方法がすでに廃止された方法となっておりました。
その部分の情報を学習するのに時間がかかってしまいました。
今回はその前に書き溜めていた部分です。一応79日目分としておきます。
6.2.4 【改善】アプリケーションを配置するディレクトリの作成
ここはすでに「~/environment/git_repositories/php_section_6」を作っているので不要かと思います。
6.2.5 コメント投稿フォームの作成
6.2.5-1フォームの作成
早速フォームを作成します。
~/environment/git_repositories/php_section_6配下に「bbs.php」というファイルを作成します。
~/environment/git_repositories/php_section_6[master] $ touch bbs.php
htmlにphpを埋め込んで作成します。
ここから下、記法が古いかどうかは判断できないので、動けば気にしない方向で進めます。
また、ディレクトリの作り方や設定など、不足があるかもしれないのですが、エラーになるまでは気にせず進めます。
<! DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>ひとこと掲示板</title>
</head>
<body>
<h1>ひとこと掲示板</h1>
<form action="bbs.php" method="post">
名前: <input type="text" name="name" /><br />
ひとこと: <input type="text" name="comment" size="60" /><br />
<input type="submit" name="submit" value="送信" />
</form>
</body>
</html>
正しく表示されるかを確認します。
ブラウザのアドレスバーに「http://IPアドレス/git_repositories/php_section_6/bbs.php」と入力して検索します。
ちなみに少しURLの仕組みについて説明します。
IPアドレスを入力すると、ドキュメントルートにアクセスするのと同じになります。
つまり今回の設定であれば、「IPアドレス = /home/ec2-user/environment」 です。
今回 bbs.php はドキュメントルート配下の /git_repositories/php_section_6/ にあるため、合わせて「IPアドレス/git_repositories/php_section_6/ bbs.php」で目的のファイルのサーバ上の位置を適切に示せる、というわけです。
6.2.5-2 Gitへのコミット
初めてリポジトリ内にファイルを作成しましたので、コミットします。
6.2.5-2.1 ローカルリポジトリでの作業
まずはローカルリポジトリ内の状態を確認します。
~/php_section_6[master] $ git status
On branch master
No commits yet
Untracked files:
(use "git add <file>..." to include in what will be committed)
bbs.php
nothing added to commit but untracked files present (use "git add" to track)
次にbbs.phpをステージ領域(インデックス)に登録します。
$ git add bbs.php
もう一度statusで確認するとこのように変わっているはずです。
$ git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: bbs.php
次にローカルリポジトリにコミットします。
$ git commit -m "コメント投稿フォームの作成"
[master (root-commit) 065a355] コメント投稿フォームの作成
1 file changed, 15 insertions(+)
create mode 100644 bbs.php
改めてstatusで確認すると、このようになります。
$ git status
On branch master
nothing to commit, working tree clean
これでワーキングツリーは綺麗になったと教えてくれていますので、ローカルへのコミットが完了しました。
6.2.5-2.2 リモートリポジトリ(GitHub)での設定作業
次にリモートリポジトリへプッシュしますが、その前に通信の設定が必要です。
リモートリポジトリにはGitHubを使いますので、公式からアカウントを作成してください。
6.2.5-2.2.1 プロジェクトの作成
ボタン「start a project」から新規作成します。
以下設定項目です。
Repository Nameは「PerfectPHP」とします。Descriptionはご自由に。
公開範囲は私はPublicにしようと思いますが、Privateでも問題ありません。
ReadMeでの初期化はしません。
git ignoreは今のところ使用しないのでnone。
Licenceについても第三者の使用を前提としてはいないので、noneとします。
6.2.5-2.2.2 SSH keyの設定
ブラウザとWebアプリケーションがHTTPプロトコルで通信するように、GitHubとcloud9はSSHという方式で通信します。
パスワードよりもセキュリティが高い公開鍵認証という方法で、GitHub側に公開鍵を配置し、ローカルリポジトリに秘密鍵を配置します。
まず
$ ssh-keygen -t rsa -b 4096 -C "GitHubアカウントのメールアドレス"[
-t rsaで暗号方式をRSAとしています。
-b 4096でbit数を指定します。指定しないと2048bitになります。
-Cはコメントです。
で自分のアカウントの鍵を作成します。
Generating public/private rsa key pair.
Enter file in which to save the key (/home/ec2-user/.ssh/id_rsa):
と公開鍵を入れるファイル名をつけられますが、デフォルトのままにするのでEnterします。
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
鍵を取り出すためのパスフレーズを設定します。
入力すると処理が流れ、鍵が作成されます。
鍵は
$ ls ~/.ssh
authorized_keys id_rsa id_rsa.pub
で確認できます。右のpubが公開鍵です。
$ cat ~/.ssh/id_rsa.pub
で中身を確認して鍵(ながーい文字列)をコピーしておきます。
ちなみにcatはファイルを結合するためのコマンドですが、中身をさっとみたいときによく使います。
6.2.5-2.2.3 公開鍵の登録とローカル側での認証
GitHubの一番右上のプロフィールのアイコンからsettingを選択し、左側のカラムの「SSH and GPG keys」に進みます。
「New SSH key」を開き、titleをつけてkeyに貼り付けて、「Add SSH key」を押下します。
登録メールアドレスに通知が来ます。
SSHkeyは複数登録できるので、開発環境ごとに異なる鍵を使えます。
次にcloud9ターミナルで
$ ssh -T git@github.com
と入力します。
The authenticity of host 'github.com (140.82.114.3)' can't be established.
RSA key fingerprint is XXXXXXX
RSA key fingerprint is XXXXXXX
Are you sure you want to continue connecting (yes/no)? yes # yesと入力
Warning: Permanently added 'github.com,140.82.113.3' (RSA) to the list of known hosts.
Enter passphrase for key '/home/ec2-user/.ssh/id_rsa': # パスフレーズを入力
Hi アカウント名! You've successfully authenticated, but GitHub does not provide shell access.
と聞かれるので、yesとして接続を継続し、パスフレーズを入力して登録完了です。
6.5.2-2.3 リモートリポジトリへのプッシュ
プッシュしたいローカルリポジトリで
$ git remote add origin 追加先のリモートリポジトリのURL
と入力します。
リモートリポジトリのURLはGitHubのホームから取得することができます。
これによって、今後は「origin」という識別子でリモートリポジトリのURLを指すようになります。
$ git push -u origin リモートリポジトリのブランチ名
Enter passphrase for key '/home/ec2-user/.ssh/id_rsa':
でプッシュできます。
今はブランチを切っていないので、master です。
Counting objects: 3, done.
Compressing objects: 100% (2/2), done.
Writing objects: 100% (3/3), 560 bytes | 560.00 KiB/s, done.
Total 3 (delta 0), reused 0 (delta 0)
To github.com:untrustworth/PerfectPHP.git
* [new branch] master -> master
Branch master set up to track remote branch master from origin.
でプッシュ完了です。
GitHubでリモートリポジトリ内を確認すれば、ファイルがコメント付きで確認できるはずです。