Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
Help us understand the problem. What is going on with this article?

【2019年版】パーフェクトPHP解説その3 6章 掲示板フォーム作成と初コミット

More than 1 year has passed since last update.

ものすごく時間が空いてしまいました
パーフェクト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を埋め込んで作成します。
ここから下、記法が古いかどうかは判断できないので、動けば気にしない方向で進めます。
また、ディレクトリの作り方や設定など、不足があるかもしれないのですが、エラーになるまでは気にせず進めます。

bbs.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でリモートリポジトリ内を確認すれば、ファイルがコメント付きで確認できるはずです。

untrustworth
公務員からIT転職を目指している27歳です。 世の中にとっては有用とは言いがたいかもしれませんが、自分の備忘録やアウトプットによって理解を深めるためにQiitaを始めました。
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away