PHP/確実に動作させるまで
XAMPPを使う場合[編集]
PHPの設定[編集]
ここでは、XAMPPで環境を作った方向けに解説します。
Windows日本語版のSHIFT-JISの文字コードに対応する場合、下記のような設定が必要かもしれません。
ですが、そもそもアップロードするファイルの文字コードをUTF-8にしておけば、下記の設定は不要かもしれません。
XAMPPのインストール先のフォルダのPHPのフォルダ内(デフォルトでは C:\xampp\php) にある php.ini をメモ帳で開きます。
1860行目付近にある記述の
;mbstring.language=Japanese
の先頭の ; をとります。
mbstring.language=Japanese
1044行目付近のタイムゾーン設定を
date.timezone = Asia/Tokyo
にします。
- Linuxの場合
Linuxの場合、そもそもXAMPPのフォルダは、
/opt/lampp
として、「lampp」の名称である。
ドキュメント・ルート(そこに入れたhtmlなどがブラウザからアクセスできるようになる)の場所は
/opt/lampp/htdocs
である。
どうやら、xamppをインストールすると、既存の「opt」フォルダの中に新しく「lampp」フォルダが作成され、さらに「lampp」フォルダの中に「php」フォルダなどが作成される。
コマンド端末で、
sudo /opt/lampp/lampp start
を実行すれば、xampp(lampp)が起動する。
これらのフォルダの所有者は、初期設定では root になっているが、しかし、root のままだと作業しづらいので(たとえばマウス操作でのファイルのコピーすら出来無い)、 なので今後のhtml作成とテストのさいの編集作業を楽にするため、ひとまず
sudo chown ログインユーザ名 /opt/lampp sudo chown ログインユーザー名 /opt/lampp/htdocs
のように権限を変更しておくとラクである。
chown とは、所有者(オーナー owner)変更のunixコマンド。
XAMPPのApacheで見るwebサイトは、htmiで文字コードを
<meta charset="UTF-8">
のように meta タグで指定しないと、なぜか日本語が文字化けするので(Fedora32 で2020年4月26日に確認)、文字コードの指定の必要がある。
Apacheの起動[編集]
Linuxの場合、Xampp やlampp がインストールされてるなら、上記のコマンドを参考にして、Xampp(lampp)を起動してください。
- (※ 編集注: この段落内容がxampp実機で見当たらない。バージョンが違うのか?) Apache を起動するには、
- XAMPPのコントローラーを開き、上にあるApacheのStartボタンをクリックします。
(※ 編集注: 上の段落は無視しても、そのまま下記の手順でlocalhostにアクセスしても、「sudo /opt/lampp/lampp start」さえしてあれば、ブラウザのページで XAMPP と表示される。)
Apache が正常に動いているか確かめるには、ブラウザを開き、アドレスバーに
と入力します。XAMPPと表示されれば成功です。
「localhost」とは、あなたの今使っているブラウザの入っているパソコンにあるサーバーの事であり、つまり、あなたの今使っているパソコンのことです。「localhost」という言い方は、PHPだけにかぎらず、サーバー業界で、一般的な用語として使われます。
「localhost」は、これからサーバー用プログラムを開発するときに、一時的に使うための、パソコン内サーバーのようなものです。
なぜ、わざわざ自分のパソコン内にサーバーを設けるかというと、いきなり外部のサーバーにアップロードするのは大変なので、まず、普通のデスクトップパソコンで、プログラムの挙動を確認しようとしているわけです。
そして、PHPはサーバーで動くためのプログラムなので、自分のパソコンの中にも、サーバーを一時的に作ってあげることで、PHPを動かせるようにして、PHPプログラムを確認しようとするのが、これから私たちのしようとする作業です。
(Localhostのwebページの右下の「日本語」をクリック)(※ 編集注: LinuxのFedora26でXamppインストールして確認したところ、文字列「日本語」は見えない。)
XAMPPなどを使わない場合[編集]
『CGI』で説明したように、Linux などで Apache などを個別に設定しても可能です。
Apacheの起動コマンドは
systemctl start httpd
です。解説について詳しくは、リンク先ページにて、この起動コマンドでページ内検索をして、説明を探してください。
なお「systemctl」は、Linuxにインストールされているsystemdというランチャー機能のあるツールのコマンドですので、もしOSがsytemd以外の他のツールをシステム管理に使っている場合、サーバ起動コマンドが違うかもしれません。
Apacheにかぎらず、systemdでサーバを起動するコマンドは
systemctl start サーバ名
です。「httpd」とは、Linux界隈での Apache の呼び名です。
プログラム例[編集]
まず、下記のように、phpのプログラムを書きます。
<html>
<head>
<title>サンプル</title>
</head>
<body>
<?php
print "Hello World!<br />";
print "こんにちは<br />";
?>
</body>
</html>
これを、拡張子「.php」で保存します。たとえば「test.php」みたいな名前になります。(.htmlファイルでの保存ではないです。)
ただし、これだけだと、まだwebブラウザでは読み込みません。FireFox や Google Chrome などで無理矢理に開いても、エラーになったり、空白になったりします。
このphpファイルを、Apacheなどのサーバー管理ソフトの指定のフォルダに保存すると、(Apacheなどの働きにより)phpファイルからhtmlが生成されるので、ソフト外部からも読み込みできるようになります。(そのようなフォルダを「ドキュメント・ルート」と言います。) Linux の場合、たいてい var/www/html
です。
root権限だと作業しづらいので、まずコマンド
sudo chown ユーザー名 /var/www/html
で、ドキュメントルートの所有者を変えます。
その後、そこに上述のHTMLコード書いて入れます。
ブラウザで http://localhost/test.php にアクセスして、
Hello World! こんにちは
と表示されれば、とりあえずは成功です。(まだまた、ルーターの設定とか、ポートの設定とか、外部公開するには、いろいろとある。)
次に、こうして表示できたwebページを保存してみましょう。通常のwebブラウザでの保存方法と同じで、メニューバーの「ファイル」にある「名前をつけてページを保存する」サブメニューなどを押してください。すると、html形式での保存になっています。
実は、ブラウザに送る前の時点で、すでにhtml形式に変換されています。(でないと、セキュリティホールになる。)
webアドレス名に「localhost/test.php 」とついているので、いかにもphpファイルを閲覧しているかのように錯覚しがちですが、しかし、このwebアドレスのときにwebブラウザで閲覧しているのはhtmlファイルです。
このように、無事にphpファイルがhtmlファイルに変換されて(まだローカルサーバー上ですが)公開されていることが、わかります。
- 備考: ショートカットの作成
なお、ドキュメントルートを今後、何度も見に行くので、ショートカットを作っておくとラクです。
Linuxの場合、ターミナル(コマンド端末)で、
$ sudo ln -s /var/www/html /home/ログインユーザー名
と ln
コマンドを 引数-s
で使うと、ショートカット(Linuxの場合、「シンボリック・リンク」という)を作れます。
ログインユーザー名の部分には、あなたのLinuxパソコンでのLinuxインストールで作成したユーザー名を入力します。
これだけだと、ショートカット先がrootユーザーになってて編集が面倒なので、
sudo chown ログインユーザ名 /var/www/html
で所有者をログインユーザに変更するとラクです。
さて、ショートカット先でphpファイルを作成したあと、所有者がrootになっていたりしたら、
sudo chown ログインユーザ名 /var/www/html/ファイル.php
で所有者をログインユーザーに更新できます。
ApacheがどのバージョンのPHPを動かしているのか等の確認は、たとえばtest.phpを下記のように書き換えて、
<?php
phpinfo();
?>
と書いたphpファイルにブラウザから http://localhost/test.php などでアクセスすることでバージョンや諸設定などを確認できます。
XAMPPでのPHP の動作[編集]
まずは、Windows のフォルダを開き、「登録されている拡張子を表示しない」というチェックをはずします。(はずしかたは、分からなければインターネットで調べてください。)
テキストエディタ(Windows 附属のメモ帳でもOKです。)を開き、
<?php
print "こんにちは";
?>
と入力して、XAMPPのフォルダのhtdocs フォルダの中に "aisatu.php" という名前(拡張子に注意!!)で 保存(デフォルトでインストールした場合、C:\xampp\htdocs)。
にウェブブラウザーから接続します。 すると、
こんにちは
と表示されているはずです。 こうなったら、大成功です。
なお、サーバーにおいて、そのフォルダに入れるとwebブラウザから見れるフォルダのことを「ドキュメント・ルート」といいます。
この C:\xampp\htdocs というフォルダ位置が、Windowsにおける XAMPP でのドキュメントルートです。
Windows環境では、メッセージ中の日本語「こんにちは」の部分が文字化けする場合がありますが、その場合、Windows付属のメモ帳で文字コードを UTF-8 に変更して保存してから、再度webブラウザで閲覧してみてください(きっと文字化けせずに成功するハズです)。(なお、フリーソフトのテキストエディタだと文字コード変換の機能が無い場合もあるので、起動するのはWindows付属『メモ帳』のこと。)
できない時の理由と対処法[編集]
(XAMPP のインストール時にインストール先をデフォルトにしておけば、問題はおそらくおきません。)
- こんにちは が表示できない
- 1. XAMPPインストール時、PHPのチェックを外した。
- 2. Apache が正常に作動していない。
- 3. 拡張子が .php ではない。
- 4. htdocs に保存していない。
- 5. アドレスが間違っている。
- 1 -> 再インストール
- 2 -> XAMPP コントローラを開き、Apache の部分で、Start ボタンを押す。(そのとき、ほかのプログラムを Stop している必要がある (MySQL など))
- 3 -> .php になおす。
- 4 -> htdocs に保存する
- 5 -> http://localhost/ファイルの名前.php にアクセスできているか確認する。
最後に[編集]
これで、設定は終わりです。 ここから、PHPのプログラミングが始まります。