頑張らない!でも諦めない!必死にならずにええかげん

ローカル環境へのPHP設置

      2014/11/22

はじめに

本投稿においては、PHPのインストールから導入設定までを記載します。
前回から続きで、次の手順としてwordpressが動作する、
PHPのインストールを行います。
Apacheをインストールしたローカル環境(Windows7x64Ult)上に設置します。
手順としては以下の作業を行っていくことになります。

  1. Webサーバ(Apache)インストール・導入設定
  2. PHPインストール・導入設定(本投稿内容)
  3. MySQLインストール・導入設定
  4. WordPressインストール・導入設定

プロモーション(btm)

Google or AdMax Promotion (it)

インストール手順

PHPのサイトでは5.3(5.3.27)以降はインストーラのリンクがなくなっています。
その為、インストールの方法が5.3以降では異なっています。

5.3以降のインストールでは、
お手数をおかけしますが以下の投稿をお読みください。

 

ダウンロード

今回はレンタルサーバに比較的に近いPHP5.2.17を利用しました。
ダウンロードサイトよりダウンロードしインストーラを実行します。
※必要なバージョンは各自ご確認ください。
php-5.2.17-nts-Win32-VC6-x86.msi

インストール自体はインストーラの手順に従っていけば終わります。

インストール

インストールの開始

インストールの開始から[Next]をクリックします。
php-onlocal_STEP1

ライセンスの同意

ライセンスに同意し[Next]をクリックします。
php-onlocal_STEP2

インストール先の選択

インストール先の変更を行います。
インストール先は初期状態では「C:\Program Files (x86)\PHP…」ですが、
[C:\PHP]などシンプルなものに変更し[Next]をクリックします。
php-onlocal_STEP3

Webサーバー上でPHPを実行する方法を選択

今回はレンタルサーバなどの公開ブログを、
テスト・検証する環境の構築を目的としていますので、
ご利用のレンタルサーバなどのPHP実行環境に
合わせて選択し[Next]をクリックします。
php-onlocal_STEP4

ApacheWebサーバーの設定ファイルフォルダの指定

今回はApache上でPHPを利用する為、
Apacheの設定ファイル[httpd.conf]があるフォルダを指定します。
フォルダの指定をしたら[Next]をクリックします。
php-onlocal_STEP5

PHPインストールオプションを選択

適宜必要なインストールオプションを指定し[Next]をクリックします。
php-onlocal_STEP6

インストールの確認

[Install]をクリックしインストールを開始します。
php-onlocal_STEP7

インストールの終了

インストールが完了したら[Finish]をクリックし終了します。
php-onlocal_STEP8

PHPの設定

PHPのインストールが完了したら、
それぞれの環境に合わせて以下を変更します。

環境変数[path]の確認

コントロールパネルのシステムを開く

スタートメニューから[コンピュータ]を右クリックし、
プルダウンメニューから[プロパティー]をクリックします。
php-onlocal_STEP9

システムの詳細設定を開く

コントロールパネルのシステムから[システムの詳細設定]をクリックし、
システムのプロパティーを開きます。
システムのプロパティーから[環境変数]をクリックします。
php-onlocal_STEP10

環境変数Pathの編集

環境変数の[システム環境変数]にある一覧から、
[Path]を探し選択した状態で[編集]をクリックします。
php-onlocal_STEP11

環境変数Pathの確認

システム変数の編集から[変数値]の値に、PHPをインストールしたフォルダ(今回は[C:\PHP])が
設定されているか確認し、設定されていない場合には追加します。
[OK]をクリックして終了します。(これまでに開いたウィンドウを閉じます)
php-onlocal_STEP12

PHP.iniの編集

PHP.iniファイルを開く

PHPをインストールしたフォルダ(今回は[C:\PHP])を開き、
[php.ini]ファイルをメモ帳などで開きます。

私の環境はWindows7x64Ultであることもあって、
PHPの機能拡張が有効な状態では以下のようなエラーが発生しました。
(一例)
このコンピュータにOCI.dllがないため、プログラムを開始できません。
この問題を解決するには、プログラムを再インストールしてみてください。
php-onlocal_STEP13

これはOracleがインストールされていない場合などに、
発生するようなのですが、使用しない機能拡張を無効にすることで、
以下のように回避することが可能です。

PHP.iniファイルの編集
変更前

変更後

Apache設定ファイルの変更

PHPのインストールが完了したら、
Apache上でPHPを実行するための設定を行います。

ApacheにてPHPを実行する際には、
よくどっちにするかという議論が行われているように、
Apacheモジュールとして実行するか、
CGIで実行するかという選択をすることになります。

実際、PHPのインストール時にも、
「Webサーバー上でPHPを実行する方法を選択」で、
どのようにPHPを実行するかを選択しています。
※今回はCGI実行を選択していますが、
指定ディレクトリではCGI実行するというだけで、
サイト内すべてでモジュール実行させる併用も可能です。

この実行方式ですが、
数年前にもやっているのですがすぐに忘れてしまいます^^;
PHPのCGI実行に関しての情報が少なく、
また人によって様々な記載がって、混沌としている印象です。
結局何が正しくて、どう動くの?そんな感じです。

原因が解決してしまうと、あまりにあっけなく、
自分が迷路にハマっていただけだったと知り、
それっきり答えをあげてくれていないのでしょうか・・・。

以下、hppd.confの設定変更は適宜バックアップを取ってください。

hppd.conf(CGI実行の設定)

モジュール実行とCGI実行のについて、
順を追って説明させて頂いている新しい投稿がございます。
もしよろしければ、以下の投稿も併せてお読みいただくと分かりやすいかと思います。

また、CGI実行に限ってのみのご紹介は以下の投稿です。

 

CGIの実行を行う際に必要な設定は以下の点です。

  1. スクリプトエイリアスの指定
  2. スクリプトエイリアスに対する実ディレクトリに対するアクセス権指定
  3. 実行ファイルの準備
1.スクリプトエイリアスの指定

hppd.confに対して以下の記述を行います。
CGI実行を選択しPHPをインストールした場合には、
既に設定が行われているはずです。
この設定は、ブラウザから、
「http://domain/cgi-bin/…」 のようにアクセスがあった際に、
そのcgi-bin/に指定された実際のディレクトリを、
「”C:/Apache/cgi-bin/”」に読み替えて表示するものです。

<IfModule alias_module>
ScriptAlias /cgi-bin/ "C:/Apache/cgi-bin/"
</IfModule>

2.スクリプトエイリアスに対する実ディレクトリのアクセス権指定

hppd.confに対して以下の記述を行います。
「”C:/Apache/cgi-bin/”」に対してのApacheによるアクセス制御を記載します。
上記の設定のままでこの記述を行わない場合には、
以下のようにアクセス権なしで表示されます。
php-onlocal_STEP17

<Directory "C:/Apache/cgi-bin/">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>

ここで「Options None」の指定を「Options +ExecCGI」などと
記述していることをたまに見かけますが、
「ScriptAlias …」にてエイリアスを指定した場合、
その指定を行った先はCGIを実行するディレクトリであるとの
指定を行ったことになりますので、特に記載する必要はありません。

index.phpの配置

「”C:/Apache/cgi-bin/”」に対して「index.php」ファイルを用意します。
ファイルの内容は通常のphpinfo()を行う記述でテストを行いますが、
ファイルの1行目に「#!php-cgi」の記述が必要です。
これによりこのphpファイルは実行ファイルとして認識されます。
ここで指定している「php-cgi」とは「C:\PHP\php-cgi.exe」を示しており、
環境変数pathに対して「C:\PHP」が指定されている必要はありますが、
以下のスクリプトを「php-cgi.exe」で実行せよという命令です。

C:/Apache/cgi-bin/index.php

#!php-cgi
<?php
phpinfo();
?>

indexphp_forCGI.zip

実行結果

もし以下のDirectoryIndex設定がある場合であっても、
index.phpのようなファイル名指定を省略してアクセスすることはできません。

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

php-onlocal_STEP14

PHPをCGIで実行させるために必要な設定は、以上です。
Web上では様々な説明が示されていますが、
一番大切な点はこれだけでした。
実行ファイルの1行目には「#!php-cgi」を記載する。

2013/09/13追記
この[#!php-cgi]の記述については、省くことが可能です。
wordpressなどのindex.phpをCGI実行するような場合には以下を参考にしてください。

 

hppd.conf(Apacheモジュールの設定)

モジュール実行とCGI実行のについて、
順を追って説明させて頂いている新しい投稿がございます。
もしよろしければ、以下の投稿も併せてお読みいただくと分かりやすいかと思います。

 

PHPをApacheモジュールとして実行を行う際に必要な設定は以下の点です。

  1. モジュールの読み込み指定
  2. PHPファイルの準備
1.スモジュールの読み込み指定

hppd.confに対して以下の記述を行います。
これはPHPのインストールディレクトリに存在するDllで、
Apacheバージョンが2.2の場合には「php5apache2_2.dll」を利用します。
実際にはこの記述のみでPHPは動作します。

LoadModule php5_module "C:/PHP/php5apache2_2.dll"

 

2.PHPファイルの準備

次にApacheの公開ディレクトリ配下に「index.php」を作成します。
ここでindex.phpとしていますがDirectoryIndexに指定されているものであれば、
ファイル名の指定なしに実行されますし、
aaa.phpとした場合でもファイル名までURL指定すれば、同様に実行されます。
※今回は実行用の1行目は不要です。

C:/Apache/htdocs/index.php

<?php
phpinfo();
?>

indexphp_forModule.zip

実行結果

Apacheモジュールとして実行する場合には、
DirectoryIndexにindex.phpが指定されている場合には、
ファイル指定のindex.php省略が可能です。

<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>

php-onlocal_STEP15

 

ここまでPHPをCGI実行、Apacheモジュール実行と、
それぞれの実行方式で動作確認をしてきましたが、
PHPのCGI実行に関しての情報が意外と少なく、
また、いろいろな記載が出てきます。

今回は最低限の設定で動作させることを目的に記載しました。
まず、動作するということを確認したのちに、
それぞれ必要な制限や設定を載せ、絞っていくことが、
最終的には近道になると思います。

Web上の様々な情報に惑わされることなく、
必要な設定をちゃんと自分で確認しながら導入したいものです。

次はMySQLのインストールです。

 

最後まで読んでいただきありがとうございました。
アルゴリズン

*本ページ内に記載されされた各社ブランド、サービス名、商標、登録商標については、
各社ブランドのロゴや商標等に関する帰属についてをご確認ください


最後までお読みいただきありがとうございました。

アイキャッチ画像に利用させて頂いております、各社ブランドのロゴやシンボルに関しては、
各社ブランドのロゴや商標等に関する帰属についてをご確認頂けますようお願い致します。

AdMax Promotion

ブログ記事のご紹介
すべて展開 | すべて省略

Rakuten Promotion

ページ
すべて展開 | すべて省略

 - PHP, windows, WordPress , ,

Comment

  1. @algorhythnn より:

    ローカル環境へのPHP設置 http://t.co/SsfezHZNoC

  関連記事

eye_jetpack
JetPack by WordPress.com統計情報の検索リファラが減って表示されている件

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_local_phpmyadmin
ローカル環境へのphpMyAdmin設置

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_reddit
Reddit™への共有をJetpack by WordPress.comで行う動作

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
指定したWordPressカテゴリやタグの投稿を検索にインデックスさせない設定方法

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
WordPressのタグ・カテゴリの一括登録にBulk Registration Termsプラグインが便利

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
10.スペル&文法チェック-Jetpack by WordPress.com

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
WordPress4.0が公開されインストール(日本語化は画面選択のみ)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_windows
ファイルの拡張子を表示する(windows7)

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_google_pls
Google+™への共有をJetpack by WordPress.comで行う動作

Google or AdMax Promotion(it) 禁断の機能がau公式 …

eye_wordpress
DisqusCommentとZenbackの同時利用時の位置入れ替え

Google or AdMax Promotion(it) 禁断の機能がau公式 …