Windows 7 64bit + PHP 7.1 / インストール&セットアップ 備忘録

Facebook にシェア
Pocket

前回の Apache2.4 インストール&セットアップ備忘録に続いて今回はPHPの備忘録。

ローカルPCにてWEBサーバー(HTTPサーバー)を動かすだけでも仮想WEBサイトの構築やWEBページ(htmlファイル)の確認は可能ですが、PHPの開発環境も整っていれば何かと便利ですし、実際、コレが無いと自分は手も足も出ないのデス…(´・ω・`)

まだまだ PHP 5.x のシステムも多数残っていますが、今後は徐々に PHP 7.x に移行していくでしょうから、ココはひとつ私も PHP 7.x で逝ってみようかなと・・・

メジャーVer.は 7 で行くとして、マイナーVer.をどうするか?

諸事情により今回は Ver.7.1 で、リビジョンは現時点で最新の 0.0.20 としました。
※)PHP 7.2.x でも基本的なインストール手順は同じハズです…(多分)

ココでは Apache2.4 のインストールを完了し、既に Apacheサーバーが稼働している前提で進めて行きますが、例によってWindowsには管理者権限のアカウントでログインしておきます。
 

■関連記事
Windows 7 64bit + MySQL 5.6 / インストール&セットアップ 備忘録 – roomX.jp
Windows 7 64bit + Apache 2.4 / インストール&セットアップ 備忘録 – roomX.jp
 

1. PHP 7.1.x のダウンロード

PHP.net TOP
PHPの公式サイトにアクセスし上部の Downloads をクリック。

PHP.net TOP
2番目の見出し Old Stable PHP 7.1.20 (Changelog) にある

Windows downloads のリンクをクリック。

お目当ての PHP 7.1.20 は計4つのバージョンが掲載されていますが、ざっくりと説明すると…

Non Thread Safe — WEBサーバーが IIS の場合
Thread Safe — WEBサーバーが Apache の場合

x64 — 64bit版
x86 — 32bit版

となります。

※)アクセス日時によりバージョンが異なる場合があります。(2018/08/15時点の7.1系最新版は 7.1.20 でした)

※)IIS とは、Microsoft Internet Information Services の略称で、簡単に言えば Windows Server 2008 のようなMS製のサーバー製品の事です。

PHP.net TOP
今回はOSが Windows 7 64bit、HTTPサーバーは Apache を使用するので、二番目の VC14 x64 Thread Safe (2018-Jul-19 11:54:52) に登録されている php-7.1.20-Win32-VC14-x64.zip をダウンロードします。

環境によっては、Visual Studio 2015(VC14)の Visual C++ 再頒布可能パッケージがないと動作してくれません。

PHP.net TOP
ダウンロードページの左列に VC++関連のダウンロードリンクが設置されているので、VC14 (x64) の zipファイルをダウンロードしてインストールします。

2. PHP 7.1.x のインストール

setup.exe などのインストールプログラムは用意されていないので、ダウンロードしたファイルを任意のフォルダに解凍すれば、ひとまずインストールは完了です。

任意のディレクトリに PHP 7.1.20 を解凍しますが、ディレクトリが散らばると後々の管理が面倒なので、前回 Apache 2.4 をインストールした 《svs》 フォルダに 《php_7.1.20》 というサブフォルダを作成し解凍しました。

PHP install
フォルダの名称は単純に php としても良いのですが、PHPの旧バージョンや新しいバージョンをインストールして試したい場合に少々面倒です。なので、今回は異なるバージョン毎に別々のフォルダを作成してインストールするようにしました。(この方法だとPHPバージョンを切り替える度にhttpd.confも編集する必要があります)

PHP install

C:¥
 └ svs
     ├ Apache24
     ├ php_5.6.37 ← 検証用
     ├ php_7.1.20 ← 今回はココに展開
     ├ ...

フォルダ名や階層構造に特に基準や標準などは設けられていないので、自分で使いやすいようにフォルダ階層を決めればOKです。(何処にインストールしたかは覚えておきます)

但し、Windowsの命名規則は守らなければなりませんし、あまり深い場所(階層)にディレクトリを置くとコマンドラインが長くなり、ファイルを参照するのに手間取ることになります。

3. PHPの環境設定

PHPファイルを展開したフォルダにある php.ini-production を探します。

php.ini の編集 

php.ini-production を見つけたら同一フォルダ内にコピーします。

php.ini の編集 

コピーファイルを php.ini にリネーム(ファイル名変更)します。

php.ini の編集php.ini の編集 
※この php.ini は後で内容を編集します。

・システム環境変数の設定

コントロールパネルシステム 
[コントロールパネル]→[システム]→[システムの詳細設定]を開き、[環境変数(N)…]ボタンをクリック。

システムの詳細設定システムの詳細設定 
システム環境変数欄の “Path” の項目を探し、[編集(I)…]ボタンをクリック。

;C:¥svs¥php_7.1.20

記述されている値の末尾に、上記の通りPHPをインストールしたフォルダのフルパスを追記しますが、フルパスの先頭に区切り記号となる【;】記号を忘れずに付けてください。

システム環境変数の編集

※)既に記述された部分をイジると、Windowsシステムやインストール済みソフトウェアの動作に支障が出るので要注意です。

編集が終わったら[OK]を押して環境変数の設定を終了、Windowsを再起動します。

システム環境変数の “Path” ってのは、常にシステムから見える(監視状態にある)場所が登録してあって、それが愛の告白なのか…、それとも怨嗟に満ちた呪詛なのかは不明ですが、『世界の何処に居てもオマエを見つけてやるぅ!』…ってのを、Windowsが実践しているみたいなモンです。(※超乱暴な例え)

ユーザー環境変数とシステム環境変数の違いは…、ググってみてください。(^^;

PHPが正しくWindowsに組み込まれているか調べるには、cmd を開いて…

php -v

…と入力し【Enter】キーを押します。

cmdphp -v
下図のように表示されれば、取り敢えずPHPのインストールは完了です。

php -v

4. httpd.conf の編集

■参考■
Apache HTTP サーバ バージョン 2.4 ドキュメント
動的共有オブジェクト (DSO) サポー
Apache のハンドラの使用
 

・動的共有オブジェクト (DSO) の登録

続いてApache上でPHPが動作するようにセットアップを行います。

httpd.conf
Apache2.4 をインストールしたフォルダの 《conf》 フォルダ内、httpd.conf を開きます。

httpd.confhttpd.conf 
【# Dynamic Shared Object (DSO) Support】を探します。

多数の 「#LoadModule…」 が記述されていますが、一番最後に…

LoadModule php7_module c:/svs/php_7.1.20/php7apache2_4.dll

…の1行を加え、PHP7 を動的モジュールの一つとして登録します。

httpd.confhttpd.conf
※)php7apache2_4.dll のインストールパスは自分の環境に合わせて書き換えが必要です。

・拡張子(.php)の登録

.phpの拡張子を持つPHPファイルにアクセスがあった場合、PHPが正しく処理できるようにphp拡張子を httpd.conf に登録します。

httpd.conf の最後に…

#PHP extention (.php)
#
<FilesMatch "¥.php$">
    AddHandler php7-script .php
    AddType application/x-httpd-php .php
</FilesMatch>

…を追加します。

extention
※)先頭に#が付いているとコメント(注釈)として解釈されます。
※)コメントは無くても構いませんが、多分、自分はイジくり回すので…
※)正規表現で.phpの拡張子を限定指定しているのがカッコイイ…
 

以前は…

<IfModule mime_module>
    AddType application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps
</IfModule>

mime_module モジュールとして↑の2行を追加していましたが、今回は Adminwebさんの【.php拡張子を登録する】 を参考にさせていただきました♪(^^ゞ

・php.ini パスの登録

php.ini はPHPの動作を細かく指定・制御するための環境設定ファイルで、PHPをインストールした際に php.ini-production をコピーしてリネームして作成した例のアレです…。

#PHP php.ini-path
#
<IfModule php7_module>
    PHPIniDir C:/svs/php_7.1.20/
</IfModule>

php.ini - path
モジュールは記述しなくても良さげですが、後から見ても判りやすいように…って事で。

Apache service
httpd.conf の編集が終わったら Apache サービスを再起動させます。

5. PHP の動作確認

簡単なコードを書いて、実際にApache上でPHPが動作しているか確認してみます。

テキストエディタを開いて以下の3行を記述します。

<?php
phpinfo();
?>

 
test.php
入力が終わったらファイル名を test.php として Apacheをインストールしたフォルダの 《htdocs》 フォルダに保存します。

htdocshtdocs 
ブラウザを開いて localhost/test.php とURLを入力。(test.phpまで入力)

test.phptest.php 
右のように表示されれば、取り敢えずPHPのインストール&セットアップは完了しています。

・index.php の優先順位

同一ディレクトリ内に index.html と index.php が混在した場合、デフォルト設定では index.html が優先されますが、これだと index.php をTOPページとして最優先に実行したい場合に困った事になります。(両方混在するケースは希かと思いますが…)

先程の test.php を index.php にリネームして検証してみます。

test.phpindex.php 
URL欄に localhost とだけ入力すると、Apacheサーバーは index.php ではなく index.html を優先して読み込みました。

test.php
この動作は httpd.conf の dir_module に記述された値の順番で優先順位の変更が可能です。

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

DirectoryIndex
デフォルトでは DirectoryIndex に index.html だけが記述されていますが、ココに…

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

DirectoryIndex
… index.php を追記します。

・・・が、“記述された値の順番で制御される” ので index.php を最優先にしたいならば…

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

DirectoryIndex
index.html よりも前に index.php を記述します。
 

httpd.conf を上書き保存してApacheを再起動後、再度ブラウザを開いてURL欄に localhost とだけ入力すると…

index.php
今度は、test.php からリネームした index.php がTOPページとして読み込まれました。

ちなみに、index.htm や index.c などを追記すれば、記述された値の順番で処理されます。また、index + 拡張子としなくとも、test.php が先頭に記述されていれば、ディレクトリのTOPページとして test.php が最優先で読み込まれます。

・ディレクトリ参照の無効化

dir_module にて index.html や index.php の優先順位を指定しましたが、そのどちらのファイルも存在しなかったり、無効なファイルを指定した場合に、ディレクトリの一覧(ディレクトリ・インデックス)がブラウザに表示されてしまいます。

Options Indexes FollowSymLinks
ローカル環境のみで運用する場合は、コレはコレで便利だったりするのですが、セキュリティ的にはあまり好ましくないので、【403 Forbidden】が表示されるように httpd.conf を編集します。

テキストエディタで httpd.conf を開き、266行目辺りにある…

    Options Indexes FollowSymLinks

…の1行にて Indexes の部分を削除し…

    Options FollowSymLinks

…とします。

Options Indexes FollowSymLinksOptions FollowSymLinks 
修正後、httpd.conf を上書き保存してApache を再起動。

Options Indexes FollowSymLinks
同じディレクトリにアクセスしてもディレクトリ一覧は表示されなくなり【403 Forbidden】が表示されるようになりました。
※)大抵の有料レンタルサーバーでは、この設定が有効となっているハズです。

・php.ini の編集

php.ini
php.ini の内容を編集すれば、PHPの細かな動作制御を行えますが・・・

項目が多岐に渡るので、追々って事で・・・(^^;

次回は、サーバー三兄弟の最後となる MySQL 5.6 & phpMyAdmin のインストールを行います。
 
 

カテゴリー: Apache, HTML, MySQL, PHP, プログラミング   タグ: , , ,   この投稿のパーマリンク

コメントを残す