PHPを書いてみる。・・・その前に
前回でLAMP環境を構築(というかインストール)は済んだので、
とりあえずPHPで「Hello world」的なことをしようと思う。
で、そもそもどうやって確認するのか。
- phpファイルを作成
- 作成した「phpファイル」を「ドキュメントルート」より下位層に置く。
- ウェブブラウザでアクセス。
流れとしては上記のような感じでいいかな。
ドキュメントルートとは?
で、ドキュメントルートとは何で、どこなのか?
- 何?
- Webサーバとして、外部に公開する範囲を決めるために指定する。
- 記述場所
- /etc/httpd/conf/httpd.conf
(大体こんな感じか?)
デフォルトだと次のような形で指定されている。( catコマンド と grepコマンドで確認してみた )
1 2 |
[root@localhost html]# cat /etc/httpd/conf/httpd.conf | grep ^DocumentRoot DocumentRoot "/var/www/html" |
というわけで、/var/www/html以下に置けばブラウザから確認できるはず。
PHPファイルを作成する
PHPでの「Hello World」は phpinfoを書くのが作法(?)。
/var/www/html/index.php を作成し、次の1行を記述、保存。
1 |
<?php phpinfo(); ?> |
で、ブラウザから確認する。
捕捉:アドレス確認
Webサーバのアドレスが分からない場合。
CentOS7だと、ipconfig ではなく、ip addr(もしくは ip a)を使う。
1 2 3 |
[root@localhost html]# ip a | grep 'inet ' inet 127.0.0.1/8 scope host lo inet 192.168.0.17/24 brd 192.168.0.255 scope global dynamic eno16777736 |
上はループバック用なので、下の 192.168.0.17 がこの場合に必要なアドレス。
ということで、
http://192.168.0.17/index.php にアクセス。
次のように情報がだらっと表示されれば成功。
エラー?
真っ白。
ブラウザ上でソースを確認してみると、<?php phpinfo(); ?>と書かれている。
タイポなどはなさそうだけど、なぜだ~。
と思ったら、拡張子を html にしていた。 これでは「phpファイル」として見てくれない。
そのため、phpのコード部分はhtmlのタグ的な扱いで無視(表示されず)、結果真っ白になってしまったのだと思われる。
PHPのエラー出力
ちなみに、phpのコードに間違いがあった場合、デフォルトだと画面上にエラーを出力してくれない。
そのため、ソースコードも真っ白になっている。
こんな感じで間違い確認
1 2 3 |
Hello <?php phpifo(); ?> //infoの n が抜けている world. |
上のようなコードを書いてみて、 Hello のみ表示された場合、phpコードに間違いがあるだろうことが確認できる。
(phpのコード以降が表示されない)
このやり方でもミスがあることは確認出来る。が、もう少し情報を知りたい。
ということで、エラーを出力する方法。
エラーの出力方法 2つ
2つの方法があるらしい。
- php.iniを編集する
- display_errors = On にする。
- 各phpファイルにその都度エラー出力を指定する。
- ini_set(‘display_errors’, ‘1’);をファイルの頭で呼ぶ。
参考:PHPマニュアル等
エラー出力例
1 2 |
Hello Fatal error: Call to undefined function phpifo() in /var/www/html/index.php on line 2 |
終わりに
とりあえず、最初に詰まった部分などをだらっと書いてみた。
追記:
スマホで見たら非常に見にくい。
<dl>タグとかってデフォルトだとダメなのか?
それとも、cssでなにか影響しているのか?
関連記事
-
htmlとか簡単だろ?って思ってた。phpってなにさ?
独学だがJavaやCの文法はある程度覚えた。 このサイトは phpってなに? ぐ …
スポンサーリンク