PHP/確実に動作させるまで

出典: フリー教科書『ウィキブックス(Wikibooks)』
< 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 が正常に動いているか確かめるには、ブラウザを開き、アドレスバーに

http://localhost

と入力します。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 です。

ブラウザで 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

で所有者をログインユーザーに更新できます。

XAMPPでのPHP の動作[編集]

まずは、Windows のフォルダを開き、「登録されている拡張子を表示しない」というチェックをはずします。(はずしかたは、分からなければインターネットで調べてください。)

テキストエディタ(Windows 附属のメモ帳でもOKです。)を開き、

<?php
print "こんにちは";
?>

と入力して、XAMPPのフォルダのhtdocs フォルダの中に "aisatu.php" という名前(拡張子に注意!!)で 保存(デフォルトでインストールした場合、C:\xampp\htdocs)。

http://localhost/aisatu.php

にウェブブラウザーから接続します。 すると、

こんにちは

と表示されているはずです。 こうなったら、大成功です。

なお、サーバーにおいて、そのフォルダに入れると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のプログラミングが始まります。