Search

検索したいワードを入力してください

2019年02月19日

初心者でも簡単にできるPHPのローカル環境インストール手順

この記事を読むことでApacheに関する知識やPHPのダウンロード、インストール方法、設定の仕方が分かります。インストール完了後もApacheでエラーが出た時の対処法やPHP公式サイトのチュートリアルの進め方などが分かるようになっています。

この記事を読むメリット

  1. Apacheに関する知識を得ることができます。
  2. PHPダウンロード、PHPインストールの方法が分かります。
  3. PHPの設定の仕方が分かります。
  4. Apacheでエラーが出た時の対処法が分かります。
  5. PHP公式サイトのチュートリアルの進め方が分かります。
  6. PHPインストールに関連したソフトウェアの知識が得られます。

PHPインストール手順1:Apacheの設定をする

PHPインストールを行う上でApache(アパッチ)の設定が最も複雑な作業です。長々としたコードからある文字列を探して正確に書き換えていきます。ソフトウェアの使い方や性質をよく知っておく必要があります。

Apacheとは世界中で使用されているWebサーバーソフトウェアです。インターネット上で、動画やSNSを利用したりする場合には、必ずWebサーバーソフトウェアのお世話になります。世界のWebサーバーのうち50%がApacheを利用しています。

特徴は
・オープンソースであり無料で公開されているため、多くの個人や企業が採用しています。
・機能拡張が容易で開発が盛んです。
・Mac、Linux、Windowsといったシェアの多いOSで利用できます。

そして最初にApacheの設定を行うのは、ApacheでWebサーバーを構築し、その上でPHPを動かすという流れになるからです。

Apacheのダウンロードとインストール

まずApacheのサイトに飛び、ダウンロードします。

左側のDownload!を押します。次にバージョンのリンクを押します。現時点では2.4.32が最新です。サーバーを選ぶ画面では、ApacheLoungeからダウンロードしていきます。PHPとの兼ね合いもあるので、必ずApacheLoungeからのダウンロードを選びましょう。x86とx64は、自分のOSに合った方を選んでダウンロードしましょう。(OSが32bitならx86、OSが64bitならx64を選びます。)

ダウンロードしたzipファイルを展開して、分かりやすいようにフォルダの名前をApacheにして、c:(cドライブ直下)に移動します。Apacheのディレクトリはフォルダを置いた場所がそのままディレクトリになります。なので名前や場所が変わると次の設定まで大きく変わってしまいます。

Apacheフォルダ→confフォルダと進んでいき、この中にあるhttpd.confファイルをバックアップのためにコピーしておきます。そしてhttpd.confをメモ帳で開きます。httpd.confはApacheの設定ファイルです。Apacheの設定を行っていきます。下記の文字列を検索して編集していきます。


#
# ServerRoot: The top of the directory tree under which the server's
# configuration, error, and log files are kept.
#
# Do not add a slash at the end of the directory path. If you point
# ServerRoot at a non-local disk, be sure to specify a local disk on the
# Mutex directive, if file-based mutexes are used. If you wish to share the
# same ServerRoot for multiple httpd daemons, you will need to change at
# least PidFile.
#
Define SRVROOT "C:/Apache24"

ServerRoot "${SRVROOT}"

この最後の行を

Define SRVROOT "C:\Apache\Apache24"
ServerRoot “C:\Apache\Apache24"

に変更します。

次にhtdocsのディレクトリを変更します。htdocsとは、Apacheで読み込むhtmlやphpのファイルです。ここにあるファイルの名前はそのままURLになります。


#
# DocumentRoot: The directory out of which you will serve your
# documents. By default, all requests are taken from this directory, but
# symbolic links and aliases may be used to point to other locations.
#
DocumentRoot "${SRVROOT}/htdocs"
<Directory "${SRVROOT}/htdocs">

この最後の行を

DocumentRoot "C:\Apache\Apache24\htdocs"
<Directory “C:\Apache\Apache24\htdocs">

と変更します。

cgi-binの編集

次にcgi-binのディレクトリを2カ所変更していきます。これはcgiで書かれたプログラムを読み込めるようにするためです。下記の文字列を編集していきます。



<IfModule alias_module>
#
# Redirect: Allows you to tell clients about documents that used to
# exist in your server's namespace, but do not anymore. The client
# will make a new request for the document at its new location.
# Example:
# Redirect permanent /foo http://www.example.com/bar

#
# Alias: Maps web paths into filesystem paths and is used to
# access content that does not live under the DocumentRoot.
# Example:
# Alias /webpath /full/filesystem/path
#
# If you include a trailing / on /webpath then the server will
# require it to be present in the URL. You will also likely
# need to provide a section to allow access to
# the filesystem path.
#
# ScriptAlias: This controls which directories contain server scripts.
# ScriptAliases are essentially the same as Aliases, except that
# documents in the target directory are treated as applications and
# run by the server when requested rather than as documents sent to the
# client. The same rules about trailing "/" apply to ScriptAlias
# directives as to Alias.
#
ScriptAlias /cgi-bin/ “${SRVROOT}/cgi-bin/

の最後の行を

ScriptAlias /cgi-bin/ “C:\Apache\Apache24/cgi-bin”

に変更します。


#
# "${SRVROOT}/cgi-bin" should be changed to whatever your ScriptAliased
# CGI directory exists, if you have that configured.
#
<Directory "${SRVROOT}/cgi-bin">
AllowOverride None
Options None
Require all granted
</Directory>

の文字列の
<Directory “${SRVROOT}/cgi-bin”>
の部分を
<Directory “C:\Apache\Apache24/cgi-bin">
と変更します。

次にサーバーネームを変更します。

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn't have a registered DNS name, enter its IP address here.
#
#ServerName www.example.com:80

の最後の行です。先頭が”#”の行はコメントとなっているので、これを削除して有効にします。

ServerName localhost:80

とします。
これでApacheの起動前の設定は完了です。

設定が完了した段階で、httpdファイルを開き、ブラウザ(InternetExploreやSafariなど)で

http://localhost/

にアクセスするとIt works!
という文字列が出ます。これでApacheの起動が確認できます。

PHPインストール手順2:PHPをダウンロードする

PHP(Hypertext Preprocessor)とは広く使われているオープンソースの汎用スクリプト言語です。 特にWeb開発に適しており、HTMLに埋め込んで使用することができます。

PHP の特徴は、 コードがサーバーで実行され、その結果がクライアントに送信されるということです。 クライアントは、スクリプトを実行した結果を受け取りますが、 その出力を作成したコードがどんなものなのかを知ることはできません。

全てのHTMLファイルをPHPで処理するようにWebサーバーを設定することさえ可能で、この場合、ユーザーからはほとんどどんな処理が行われたのかは分かりません。コードの秘匿性が高い点が魅力です。

PHPインストールの前にインストーラーをダウンロードします。PHPは公式サイトにアクセスするとダウンロード できます。

まず公式サイトにアクセスして、Downloadsのボタンを押します。次に上から4番目のWindowsDownloadsを押します。その次に2段目のThread SafeのZipのボタンを押します。

ちなみに左側にはApacheLoungeから供給されたApacheを使ってくださいと書いてあります。最初にApacheLoungeからApacheをダウンロードしたのはこのためです。

Zipのボタンを押してダウンロードしていきます。

PHPインストール手順3:PHPをインストールする

PHPは展開してフォルダを置くだけでそこがディレクトリになり、PHPインストールが完了します。ダウンロードしたフォルダを展開して名前をphpに変えてApacheと同じフォルダに入れます。これはフォルダ名が長くなると後々ディレクトリを記述する時にミスをしておかしくなることを防ぐためです。

次にPHPモジュールの追加です。 php7apache2_4.dllを読み込ませます。httpd.confファイルを開きます。以下の文字列を探します。

#
# Dynamic Shared Object (DSO) Support
#
# To be able to use the functionality of a module which was built as a DSO you
# have to place corresponding `LoadModule' lines at this location so the
# directives contained in it are actually available _before_ they are used.
# Statically compiled modules (those listed by `httpd -l') do not need
# to be loaded here.
#
# Example:
# LoadModule foo_module modules/mod_foo.so
#


LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
<—LoadModuleがずっと続きます-->
#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so

この最後の行に

LoadModule php7_module C:¥Apache¥php¥php7apache2_4.dll

を追加して、

#LoadModule watchdog_module modules/mod_watchdog.so
#LoadModule xml2enc_module modules/mod_xml2enc.so
LoadModule php7_module C:\Apache\php\php7apache2_4.dll

という状態にします。
さらにApacheと拡張子phpを関連づけるため、httpd.confの一番下の/IfModuleの下の行に

<FilesMatch "\.php$">
AddHandler php7-script .php
AddType application/x-httpd-php .php
</FileMatch>

と記述します。

最後の行は以下のようになりました。

<IfModule ssl_module>
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
</IfModule>

<FilesMatch "\.php$">
AddHandler php7-script .php
AddType application/x-httpd-php .php
</FilesMatch>

これでPHPインストールは完了です。

PHPインストール手順4:PATHを設定する(環境変数の追加)

PATHというのは環境変数と呼ばれる、名前のついた変数に情報を記憶する仕組みのことです。この情報はログ収集やアクセス制御などのいろいろな操作を制御するために使うことができます。

例えば、バグのような挙動をするクライアントに対してプログラムの動きを変えて問題に対処する場合は、以下の文字列を httpd.conf に追加することを推奨しています。


#
# The following directives modify normal HTTP response behavior.
# The first directive disables keepalive for Netscape 2.x and browsers that
# spoof it. There are known problems with these browser implementations.
# The second directive is for Microsoft Internet Explorer 4.0b2
# which has a broken HTTP/1.1 implementation and does not properly
# support keepalive when it is used on 301 or 302 (redirect) responses.
#


BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0

#
# The following directive disables HTTP/1.1 responses to browsers which
# are in violation of the HTTP/1.0 spec by not being able to grok a
# basic 1.1 response.
#
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0

画像へのリクエストをサーバーのアクセスログに残したくない場合では、クライアントからの画像へのリクエストがアクセスログに現れないようにします。

これを変更することで、特定のディレクトリのログ収集をやめたり、 特定のクライアントからのリクエストのログ収集をやめたりすることが簡単にできます。

SetEnvIf Request_URI \.gif image-request
SetEnvIf Request_URI \.jpg image-request
SetEnvIf Request_URI \.png image-request
CustomLog logs/access_log common env=!image-request

画像の盗用を防ぎたい場合は、別のサーバにいる人が、あなたのサーバにある画像を使用することを防ぎます。 ここでは、すべての画像は /web/images というディレクトリにあると仮定します。

SetEnvIf Referer "^http://www.example.com/" local_referal
# Allow browsers that do not send Referer info
SetEnvIf Referer "^$" local_referal
<Directory /web/images>
Order Deny,Allow
Deny from all
Allow from env=local_referal
</Directory>

(コード引用:Apache公式サイト:https://httpd.apache.org/docs/trunk/ja/env.html)

ランタイムのエラーが出た場合は?

httpd実行時に、「コンピューターにVCRUNTIME140.dllがないため、プログラムを開始できません。この問題を解決するには、プログラムを再インストールしてみてください。」と言うエラーメッセージが表示された場合は「Visual C++ ランタイム」をインストールする必要があります。

5 - 1VisualStudioランタイムをインストール

Visual C++ ランタイムをインストールするためにマイクロソフト公式ページからインストーラーをダウンロードします。OSが32bitの方はx86を、64bitの方はx64をダウンロード してください。

ファイルを開くとインストールが始まります。ライセンス条項および使用条件に同意する(A)」をチェックし、インストールをクリックします。するとインストールが開始されます。

セットアップ完了の画面が現れたら完了です。閉じるを押してインストールを終了します。

PHPインストール手順6:php.iniを設定する

php.iniは、phpの設定をするための構成ファイルです。デフォルトではphp.iniというファイルは存在しませんので、php.iniを作成していきます。

phpフォルダを開き、php.ini-developmentというファイルをコピーします。

名前をphp.iniに変更します。これでphp.iniの準備は完了です。続いて、Apacheでphp.iniの読み込みパスを指定します。httpd.confを開きの最後の行に

PHPIniDir “C:¥Apache¥php¥php.ini”

と追加します。これでphp.iniの読み込みができる状態になりました。

6 - 1phpinfo関数でPHPの設定内容を確認

PHPinfoはファイルにアクセスしたときにPHPの設定を確認するためのコードです。テキストエディタ(BracketsやVScodeなど)でphpinfo.phpという名前のファイルを作ります。中身のコードは

<?php
phpinfo();
?>

です。これを

C:¥Apache¥Apache24¥htdocs

のフォルダに入れます。この状態でApacheを再起動すると(閉じるか、Ctrl+cでApacheを停止します。)

http://localhost/phpinfo.php

にアクセスすると、phpの設定が確認でき、phpが読み込まれていることが確認できます。

PHPインストール手順7:拡張モジュールのディレクトリを追加

PHPを起動させた時に、モジュール(dllファイル)の読み込みが行われますが、読む込むモジュールを追加することができます。そのための設定を行なっていきます。

使いたいモジュールをphp.iniのコード内に書き込むことでモジュールを読み込みます。(関数を呼び出すような感じです。)


例を挙げると

;extension=php_extname.dll
extension=php_extname.dll

;extension_dir = "ext"
extension_dir="ext"

;extension=php_gd2.dll
extension=php_gd2.dll

;extension=php_mbstring.dll
extension=php_mbstring.dll

;extension=php_pdo_mysql.dll
extension=php_pdo_mysql.dll

php.iniにこのように;を外して記述すると、php_extname.dllに記述された内容が読み込まれます。読み込んでいるモジュールのリスト表示は、コマンドラインで


PHP -m

と打ち込んで実行します。

PHPインストール手順8:インクルードパスを設定

そもそもインクルードというのは、プログラムの中で他のファイルを読み込むということです。
インクルードパスとはその指定するファイルがある場所です。例えば「php.ini」ファイルを読み込みたいとします。Apacheを立ち上げた状態で

http://localhost/phpinfo.php

にアクセスします。ここで、php.iniのディレクトリを見てみましょう。

先頭に”;”がある行はコメント行です。現在はコメントアウトの状態で「include_path」の値が「.;C:\php\pear」になっている(設定されていない)ことが分かります。ではphp.iniをインクルードパスに指定します。テキストエディタでphp.iniを開きます。

728行目: ; include_path = “.;c:\php\includes”

この行のセミコロン;を消して

728行目: include_path = “.;c:\php\includes;c:\php\pear"とします。

インクルードパスは複数のパスを指定することができます。複数指定する場合はセミコロン(;)で区切って記述します。今回インクルードパスとしてデフォルトで設定されている「.」と「c:\php\pear」に加え「c:\php\includes」を追加します。この状態で保存し、apacheを再起動して、

http://localhost/phpinfo.php

にアクセスしましょう。インクルードパスにc:\php\includesが追加されたのが確認できます。

PHPインストール手順9:PHPを日本語化して使う

入力した文字列が文字化けあるいは消えてしまうときはPHPを日本語化しましょう。テキストエディタでPHPファイルの設定を全て「UTF-8」に設定して保存ましょう。

テキストエディタでphpフォルダのphp.iniファイルを開きます。以下の行の先頭にセミコロン;が付いていますので、消しましょう。検索機能で文字列を検索すると効率的です。(バージョンや環境によって行数が違う可能性があります。)ブロックごとの最後の行なので見つけやすいです。


1636行目: ;mbstring.language = Japanese 
1643行目: ;mbstring.internal_encoding = EUC-JP
1651行目: ;mbstring.http_input = auto
1661行目: ;mbstring.http_output = SJIS
1669行目: ;mbstring.encoding_translation = Off
1674行目: ;mbstring.detect_order = auto
1679行目: ;mbstring.substitute_character = none
1690行目: ;mbstring.func_overload = 0

さらに以下の行ように変更しましょう。

1643行目: mbstring.internal_encoding = UTF-8
1661行目: mbstring.http_output = UTF-8
1669行目: mbstring.encoding_translation = On

この状態で保存します。これでPHPの日本語化が完了しました。

おすすめ:PHPマニュアルを見てみる

PHPインストールが完了したあとは、PHPの公式ホームページの入門を読んで、簡易チュートリアルを済ましてみることがオススメです。

PHPの公式ホームページにはこの記事で説明したようなPHPのインストールに必要なものを確認したり、簡単なスクリプトを書いてPHPを書く練習をしたりといった初心者向けのコンテンツから、上級者向けのフレームワークや関数の書き方・使い方などが書いてあります。

これから先、PHPを書く上で欠かせないサイトになるので、目を通しておきましょう。

では、チュートリアルを今からやってみましょう。

以下の内容で hello.php という名前のファイルを作成し、Web サーバーのルートディレクトリ (DOCUMENT_ROOT) に置いてください。
例1 初めての PHP スクリプト: hello.php

 
  PHP Test
 
 
 Hello World'; ?> 
 

ブラウザを使用して、/hello.php で終わる Web アクセス用 URL を指定し、 このファイルにアクセスしてください。 ローカルに開発を行っている場合、この URL は http://localhost/hello.php または http://127.0.0.1/hello.php のようになります。 しかし、これは Web サーバーの設定に依存します。 全てが正しく設定されている場合、 このファイルは PHP によりパースされ、以下の出力がブラウザに送信されます。

出典: http://php.net/manual/ja/index.php |

ルートディレクトリと言うのは読み込む.phpの場所を表します。今回の場合

C:¥Apache¥Apache24¥htdocs

がルートディレクトリです。ここにテキストエディタにて

<html>
 <head>
  <title>PHP Test
 </head>
 <body>
 <?php echo '

Hello World

'; ?> 
 </body>
</html>

と書き、hello.phpという名前で保存し、htdocsのフォルダに移動します。最後にApacheを起動して、ブラウザで

http://localhost/hello.php

にアクセスするとブラウザにHello Worldと表示されます。

PHPインストール用のソフトウェアの紹介

今回はソフトウェアを使わずにApacheとPHPを別々でダウンロードして設定していきましたが、これらの設定を一括で行える便利なソフトウェアも存在します。2つだけ紹介していきます。

Bitnami

あらゆるローカル環境、あらゆる条件に対して、複数のソフトウェアを組み合わせたパッケージを提供している企業です。WAMPやWordPressなどのWebアプリケーションで利用できます。

アプリケーション自体に加えて、パッケージにはそのアプリケーションを実行するために必要な他のソフトウェアが含まれています。

WordPressやWAMPには、PHPはもちろんデータを管理するためのMySQLデータベース、ページを提供するためのApache Webサーバー、およびMySQLを管理するためのphpMyAdminが含まれています。(全部英語です。)

XAMPP

XAMPPにはApache(Webサーバ)、MariaDB(SQLデータベースサーバ;旧バージョンはMySQL)とWebプログラミング言語であるPHPや同目的で使われるPerlの4つの主要ソフトウェアとphpMyAdminなどの管理ツール、さらにSQLiteなど、いくつかの補助的なソフトウェアとライブラリモジュールが含まれています。

Windows、Linux、macOS、Solarisで利用可能です。

XAMPPとは別に、macOS専用でほぼ同趣旨の「MAMP」がmamp.infoから提供されています。またLinuxディストリビューションのサーバー版では、ほぼ同様のソフトウェア群を同梱して「LAMP」として配布されています。

PHPインストール方法の復習

今回はPHPインストール方法についての記事でした。最低限必要な流れは下記の4つです。
①Apacheダウンロード、Apacheインストール
②Apacheのhttps.confの設定
(Apache、htdocs、cgi-binのルートディレクトリ設定)
③PHPダウンロード、PHPインストール
④php.infoの設定
で環境設定は完了となります。

PATHの設定や、拡張モジュールのディレクトリ設定、インクルードパスの設定はまた別で必要に迫られた時に設定すると良いです。難しいのはなんといってもApacheのインストールです。

Apacheはフォルダやファイルを置く場所が変わるとディレクトリ(ファイルやフォルダの場所)や設定が大きく変わってしまいます。PHPも同様です。サーバー構築未経験の人はここで詰まりやすいです。

Apacheのフォルダを名前を変えてc:ドライブ直下に置いたのは、ディレクトリがどんな環境でも同じになるようにするためです。そのため、フォルダ名さえ合わせればあとはコピペでサーバーが立てられるはずです。

PHPインストールを実際に構築やってみてやはり、複雑で面倒だと感じた方も多いでしょう。ソフトを使いたくても、実際は使用してはいけないという場合もあることが想定されます。

PHPの開発環境構築というのはなかなか面倒ですが需要も大きく、企業で勤めてからも役に立つ言語です。頑張って覚えましょう。

【PR】多くの人がプログラミングを諦めてしまう理由をご存知ですか?



近年プログラミングを勉強する人が増えています。

プログラミング学習者の多くは独学から取り組もうとしますが、だいたい80%ほどは3ヶ月も続かずに諦めてしまいます。早い人は1日目で。

多くの人がプログラミングを独学しようとして諦める理由は、次の3つ。
●モチベーションが維持できない
●エラーの原因・解決方法が分からない
●どう学習すればよいか分からない

TechBoostというプログラミングスクールでは、みんなと一緒にプログラミングをするのでモチベーションの維持ができ、分からないことがあればマンツーマンで教えてくれ、徹底的に研究された初心者向けの教材が揃っています。

TechBoostを卒業後、実際にエンジニアとして転職した方もいるほど。

本気でプログラミングを学びたい方は、一度無料のカウンセリングでご相談ください。プログラミングを嫌いになる前に。

tech boostについて

オーダーメイド型の学習コンテンツを提供する「tech boost」 は、エンジニアのキャリア支援に特化したサービスを複数展開している株式会社Branding Engineerが運営しているプログラミングスクールです。最短3ヶ月間で、未経験から『プログラミングの基礎』、『実際に業務で必要となるスキル』、『今のトレンドとなっている知識』まで学べ、ご希望の方にはプロのキャリアアドバイザーによる就業支援を行うことができます。

tech boost卒業生インタビュー

tech boostの卒業生の声を聞きました。あなたがプログラミングを学びたい理由を、一度考えてみてください。
営業→Javaエンジニア→Rubyエンジニアと転向し、第一志望のFinTech企業で働く山下さん
元営業、ビジネスのわかるエンジニアを目指す菅原さん
サンフランシスコに交換留学し、シリコンバレーのVCでインターン中の梅本さん
予備校の営業から半年でエンジニア転職を果たした小田島さん

tech boostの口コミ



Related