Xamppの使い方

Xamppとは、PHPを実行するために必要な、
サーバーと同じ環境を、ローカルのPC内に構築するためのツールである。

公式ページ
https://www.apachefriends.org/jp/index.html

PHPは、ウェブサーバー上で実行されるプログラムの事で、
Xamppは、そのウェブサーバーを、PC上に仮想的に再現するというものである。

Xamppのウェブアプリ動作ソフトウェアは、Apacheが使用されている。
なので、主な環境設定は、「httpd.conf」をはじめとする、
各設定ファイルを直に編集する事になる。
また、ファイル編集後の反映には、
Xamppコントロールパネル上で、Apacheなどを起動し直す必要がある

Xamppコントロールパネル

Windowsならば、最小化された状態で収納されている。

PHPウェブアプリに使うのは、ApacheとMySQLのみでよい。
また、使用するボタンも、
主に「Start」および「Stop」と、「Config」だけである。

「Config」ボタンは、各設定ファイルを編集する事ができる。
また、各設定ファイルの存在する領域を表示する事も可能である。

エディタは標準設定ではメモ帳が立ち上がるが、
Xamppの総合的な設定ボタンである
コントロールパネル右側のほうの「Config」ボタンから、
エディタを変更する事も可能である。

使用ポート変更

デフォルト状態で使用するポートは80番ではあるが、
Skypeなどのソフトが使用している場合があり、
その際ポート競合が起こり、Apacheが動作しない場合がある。
その場合は、Apacheの設定ファイルで使用するポート番号を変更するとよい。

Xamppコントロールパネルの「Config」ボタンから、
「Apache(httpd.conf)」を選択する。
するとエディタでApacheの設定ファイルである「httpd.conf」が開くので、
その中から、以下の行を変更するとよい。

Listen 80

↓変更

Listen 8080

これで使用するポートを、8080番ポートに変更した事になる。
Apacheを立ち上げてブラウザでローカル領域にアクセスする際に、
URLの最後に「:8080」を付与すれば、アクセスできる。

開発領域の設定

まずXamppのApache設定を行う。
標準では、「C:\xampp\htdocs」が
ウェブアプリケーションのトップとなっているが、
複数のウェブアプリを作成したり、
開発領域を別の場所に作成したい場合は、
バーチャルホストの設定を行うとよい。

Xamppコントロールパネルの、Apache項目の「Config」ボタンから、
[Apache]」を選択する。
すると、Windowsエクスプローラーで
XamppのApache設定ディレクトリが立ち上がる。

LinuxサーバーにApacheをインストールした際の構成とは、やや異なるが、
バーチャルホストの設定ファイルは、
立ち上がった先の「extra」フォルダの「httpd-vhosts.conf」ファイルとなる
(厳密には「.conf」ファイルであれば、どれでも動作はするが、
わかりやすくするため、このファイルを変更するとよい。)。

ファイルには、以下のコードが記述されているはずである。

# Virtual Hosts
#
# Required modules: mod_log_config

# If you want to maintain multiple domains/hostnames on your
# machine you can setup VirtualHost containers for them. Most configurations
# use only name-based virtual hosts so the server doesn't need to worry about
# IP addresses. This is indicated by the asterisks in the directives below.
#
# Please see the documentation at 
# <URL:http://httpd.apache.org/docs/2.4/vhosts/>
# for further details before you try to setup virtual hosts.
#
# You may use the command line option '-S' to verify your virtual host
# configuration.

#
# Use name-based virtual hosting.
#
##NameVirtualHost *:80
#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ##ServerName or ##ServerAlias in any <VirtualHost> block.
#
##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host.example.com"
    ##ServerName dummy-host.example.com
    ##ServerAlias www.dummy-host.example.com
    ##ErrorLog "logs/dummy-host.example.com-error.log"
    ##CustomLog "logs/dummy-host.example.com-access.log" common
##</VirtualHost>

##<VirtualHost *:80>
    ##ServerAdmin webmaster@dummy-host2.example.com
    ##DocumentRoot "C:/xampp/htdocs/dummy-host2.example.com"
    ##ServerName dummy-host2.example.com
    ##ErrorLog "logs/dummy-host2.example.com-error.log"
    ##CustomLog "logs/dummy-host2.example.com-access.log" common
##</VirtualHost>

すべての行がコメントアウトされているが、
」のパーツを記述例として、応用していくとよい。

「DocumentRoot」には、ウェブアプリの存在する領域を指定する。
Windowsの場合、フォルダのパスにエンマークが使用されているが、
ここでは、通常のスラッシュに置き換えるとよい。
パスは、ダブルクォートで囲むこと。

「ServerName」は、アクセスするURLを記述する。

必須なのは、「DocumentRoot」「ServerName」の2つのみである。
ログも欲しければ、「ErrorLog」「CustomLog」も設定しておくとよい。
「ServerAdmin」は、サーバー管理者のメールアドレスを設定するだけなので、
必須ではない。

また、「C:/xampp/htdocs/」以外の領域にホスティングする場合、
このままでは403エラーが生じる場合があるため、
以下のコードを記述して、ディレクトリに権限を与えるとよい。

<Directory "F:/develop">
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

hostsファイル編集

Xamppのバーチャルホストを設定した場合、
hostsファイルの変更も必要である。
Windowsのhostsファイルは、だいたい以下の場所にある。

C:\Windows\System32\drivers\etc

拡張子なしで「hosts」というファイルがhostsファイルなので、
これを管理者権限で実行したWindows標準のメモ帳で開く。
他のエディタではダメなので注意。

そして、hostsファイルに以下のように追加する。
以下の例は、「test-web.com」というURLでアクセスしたい場合である。

127.0.0.1 test-web.com

「127.0.0.1」は、「localhost」とほぼ同じ意味で、
自分自身を示す特殊なIPアドレスである。
このIPは他の場面でも使われるため、覚えておくと便利である。

phpMyAdminを使いたい

標準のphpMyAdminは、標準設定からホスティングされているため、
バーチャルホストを設定すると、アクセスできなくなる。

その場合は、以下のようにバーチャルホストを追加するとよい。

<VirtualHost *:8080>
    DocumentRoot "C:/xampp/phpMyAdmin"
    ServerName local-pma
    ErrorLog "logs/local-pma-error.log"
    CustomLog "logs/local-pma-access.log" common
</VirtualHost>

hostsファイルの変更もお忘れなく。以下が記述例である。

127.0.0.1 local-pma

なお、phpMyAdminでユーザーを作成した際、
以下のエラーが表示される場合がある。

#1018 - ディレクトリ 'C:\xampp\mysql\lib\plugin\' を読み込めません。

この場合は、単純に「lib\plugin\」フォルダがないだけなので、普通に作成するとよい。
「C:\xampp\mysql\」の中に「lib」フォルダを作成し、
その中に「plugin」フォルダを作成するだけである。