Apache・phpのインストール
Apache (アパッチ)は、お使いのパソコンにWEBサーバとしての機能を付加するためのソフトです。
php(ピーエッチピー)は小規模なWEB アプリケーション開発に適したプログラム言語です。phpで開発したアプリケーション(プログラム)は、WEBサーバ環境でテストする必要があります。
ともにオープンソフト(無償で誰でもが利用できる)ですので、利用に際しての契約や手続き等は不要です。
通常、Apachとphpは、そのれぞ単体でインストールしますが、その後の設定など、初めての方には少々難しい部分がありますので、本サイトでは、一括インストールができるxampp(ザンプ)を利用します。
xamppを利用したApache・phpのインストール
1 xampp日本語サイトを開きます。
右上の言語をJP(日本語)にしてください。(○の部分)
2 [Windows向けXAMPP]をクリックします。
ダウンロードが始まりますので、完了するまでお待ちください。
3 ダウンロードしたフォルダーにあるをダブルクリックしてください。
4 アカウント制御のダイアログが表示されますので、「はい」をクリック
5 Warningが表示されます.
ウィルス対策ソフトを一時停止するようにとのメッセージです
インストール場所をC:\Program Files(x86)を避けるようにとの注意です。
4 インストールが始まります [Next>]をクリック
5 インストールするコンポーネントの選択 そのまま[Next>]をクリック
6 インストールフォルダの指定 C:\Program Files(x86)以外を指定
Xamppコントロールパネルで利用する言語の指定
英語とドイツ語のみ そのまま「NEXT」
7 [Next]をクリック
8 インストールが始まります。(少々時間がかかります)
9 インストールが完了しました。チェックボックスをオフにして[Finish]をクリック
Apache・phpの確認
1 すべてのアプリ(すべてのプログラム) → をクリックしてください。
2 言語の確認後、XAMPPのコントロールパネルが表示されます。
Modulesについて
Apache・・・WEBサーバを構成するためのモジュールです。
MySql・・・データベースMySqlを構成するためのモジュールです。
FileZilla・・・ファイル転送のためのモジュールです。
Mercury・・・メールサーバをセットアップし機能させるためのモジュールです。
Tomcat・・・Javaサーブレットを実行するためのエンジン
本サイトでは、Apacheのみ利用します。
コントロールパネルを起動すると、エラーになるケースがあります。
Port 80 や Port 443 が "in use" のメッセージの場合には、
XAMPP Port 80 をご覧ください。
3 Apacheの起動と機能確認
Apacheの横にある「Start」 → Adminをクリック
Windows セキュリティの重要な警告が表示されたら、アクセスを許可するをクリック
「Start」をクリックすると、次のエラーになる場合があります。
XAMPPを管理者として実行してください。
管理者として実行を設定
Adminが表示されます。
続いて、PHPInfo タブををクリック
インストールされたphpの情報が表示されます。
これで、Apacheとphpは、正常にインストールされました。
XAMPPのコントロールパネルを閉じる
XAMPPを終了する場合には、スタートしているモジュールをすべてストップしてから、[Quit]をクリックして下さい。(ウィンドウの×は使用しないように)
管理者権限で実行していないと、[Quit] でエラーになる場合があります。
Apache・phpの設定変更
インストールしたApacheとphpは世界標準になっていますので、
- 日本語環境に合わせる
- 使用する言語とそのコード(本サイトではUTF-8を利用します)など
- 開発環境を指定する
- 開発するプログラムがあるフォルダの指定
データベースをして利用するSQLiteの指定など
ためにそれぞれの初期設定をWindowsのメモ帳で変更をします。
開発環境を設定
開発するプログラムや使用する画像ファイル等(コンテンツ)を配置する場所は、既定では、xamppにあるフォルダhtdocsです。
このままでは開発環境が不自由ですので、環境に適したフォルダを追加指定します。
コンテンツを配置するフォルダ
本サイトでは、Dドライブにあるマイドキュメント内にフォルダHomepageを作り、ここにコンテンツを配置するように設定します。(Aliasを指定して、htdocs以外のフォルダも利用できるように設定)
Apache横の[config] → Apache(httpd.conf)
httpd.confファイルが開きますので、最後に以下のコードを追加してください。
Alias /Homepage/ "D:/xxxxx/Documents/Homepage/"
<Directory "D:/xxxxx/Documents/Homepage">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
D:/xxxxx/Documents/Homepage/ は、コンテンツを置くフォルダです。使用環境に合わせて、絶対パスで指定してください。
httpd.confは、XAMPP/apache/confにあります。
Alias設定の確認
マイドキュメントにフォルダHomepageを作る → EMエディタで以下のファイルを作り、ファイル名 phpinfo.phpで保存
<?php
phpinfo();
?>
xamppのコントロールパネルから[start] → ブラウザを起動 → URI http://localhost/Homepage/phpinfo.php → 以下の画面が表示されたらAliasの設定は完了しました。
httpd.confを修正した場合には、XAMPPを再スタート(コントロールパネルで[stop] → [start])してから、ブラウザを起動してください。
xampp(Apache)が起動していないと、表示されません。
この画面になったら、xamppの起動を確認してください。
phpの設定
コントロールパネルでapacheがスタートしていないことを確認([start]になっている) → [config] → PHP(php.ini)
pho.iniファイルが開きます。このファイルで、phpの稼働環境を設定しています。
全体で2,000行にもなるファイルです。その一部を修正します。修正箇所を行番号で示しています。(以下の行番号は、PHPバージョン8.2.4の例です。 バージョンが違う場合には、メモ帳の検索機能を利用して修正個所を探してください。)
なお、;で始まる行は、コメントです。
メモ帳で行番号を確認・表示
表示タブで、ステータスバー オン、右端での折返し オフ 二設定。
画面下のステータスバーに行番号が表示されます。
タイムゾーンの設定
時刻関数(DATE)で得られる時刻のタイムゾーンを東京に指定します。
「timezone」で検索してください。
1999行目にある行を以下に変更してください。
date.timezone = Europe/Berlin → date.timezone = Asia/Tokyo
日本語の設定
日本語は、mbstring(マルチバイトストリング)で指定します。
以下の記述のある行のコメントを外し(;を削除)、必要な変更をします。
「default_charset」で検索してください。
715行目 デフォルトキャラクターセットがUTF-8になっていることを確認してください。
「mbstring」で検索してください。
1672行目 日本語(漢字)の有効化
;mbstring.language = Japanese → mbstring.language = Japanese
1679行目 日本語コードをUTF-8に指定
;mbstring.internal_encoding =
→ mbstring.internal_encoding = UTF-8
1687行目 httpインプット時にコード変換しないように指定
;mbstring.http_input = → mbstring.http_input = pass
1697行目 httpアウトプット時にコード変換しないように指定
;mbstring.http_output = → mbstring.http_output = pass
1705行目 コード変換を無効に指定・・・コメントを外しoffのまま
;mbstring.encoding_translation = Off → mbstring.encoding_translation = Off
1715行目 文字コードの判別順序・・・UTF-8を最初に指定
;mbstring.detect_order = auto → mbstring.detect_order = UTF-8,SJIS,EUC-JP,JIS,ASCII
1717行目 コード変換ができなかった場合の設定・・・コメントを外しnoneのまま
;mbstring.substitute_character = none; → mbstring.substitute_character = none;
1718行目 文字コード判別を厳密に行うか否かの指定・・コメントを外しOffのまま
;mbstring.strict_detection = Off → mbstring.strict_detection = Off
PHPのマルチバイト環境の設定により、文字化けが発生します。
参考になるサイト 問題のまとめ
マジッククオートの確認
入力フォームから「”」や「’」を入力した場合に、安全のため、自動的に変換(エスケープ処理と呼ばれる)され、\になる機能です。最新のPHPでは、この機能は認めていませんので、Offにしておきます。
エスケープ処理は、アプリケーションで行います。
「magic_quotes」で検索してください。
981行目から magic_quotesの設定が3つありますので、Offになっていることを確認しいてください。
magic_quotes_gpc = Off
magic_quotes_runtime = Off
magic_quotes_sybase = Off
なお、レンタルサーバでは、onになっている可能性があります。この場合には、設定変更が必要です。
phpのショートオープンタグを無効に
既定では、スクリプトの<? と ?>で囲まれた部分をphp記述とみなします。このままでは、xhtmlの宣言 <?xml version="1.0" encoding="UTF-8"?> もphpとみなしますので、エラーになります。(<?を開始タグとみなします。・・・ショートオープンタグ)
この設定をOff にすると、<?PHPのみを開始タグとみなすようになります。
「short_open_tag」で検索してください。
198行目にshort_open_tag が設定されています。以下を確認して下さい。
short_open_tag = Off
エラー情報表示の修正と確認
「error_reporting」で検索してください。
489行目
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT → error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED | E_STRICT
に変更してください。(~はチルダです)
変数の未定義などのエラーではない注意(Noticeレベルなど)については、メッセージを表示しないようにします。
「display_errors」で検索してください。
506行目
display_errors = On
になっていることを確認してください。
Onになっていると、phpでエラーになった場合、そのエラーメッセージを表示します。Offにすると、エラーメッセージが表示されませんので、プログラムのテストには不都合が生じます。
なお、本番環境では、システムのセキュリティ対策上、Offにします。(Onにしておくと、スクリプト名やデータベース名が外部に公開される可能性があります)
レジスターグローバルズの確認
「register_globals」で検索してください。
979行目
register_globals = Off
になっていることを確認してください。
Onになっていると、セキュリティ上問題が発生しますので、必ずOffにしてください。
上書き保存します。
これでApacheとPHPの設定が完了しました。