- ここでは、PHPの内蔵サーバーではなく、フルセットのウェブサーバー・PHP処理系・RDBMSを連携させる設定を紹介したいますが、学習目的にはハードルが高く、なによりこのセットアップができるひとは、既に相応のPHPに関する知識があることを前提にしていることに矛盾があります。
PHPがサーバ側の技術であることから、利用者は、開発または学習のためにサーバ環境をセットアップする時間が必要となります。もちろんクライアント環境で開発をする場合はクライアント環境に開発環境を用意する必要があるでしょう。Java言語のようにサーバ側の環境設定がとても複雑であるのに比べ、PHPはかなりセットアップしやすいです。
インストールの手順はWebサーバの環境(OS)によって違ってきます。既に作られたPHPをインストールする方法から、ソース(オリジナルのプログラム)を入手して実行可能なPHPを作るまで、条件により様々です。
PHPと併せてデータベース(たいていはMySQL)も利用することが多く、バージョンの組み合わせによっては動作が違ってきます。
構成編集
PHPでデータベースのサーバ構築をした場合、必要になるパッケージは以下のものとなります。
- Apache(アパッチ)がwebサーバーとして必要, またはメジャーな
- PHP
- MySQL(マイ エスキューエル)がデータベースとして必要, またはメジャーなデータベース
- PHPとデータベースに接続するライブラリ
XAMPPは、これらをまとめたアプリで、apachefriends.org というコミュニティの提供しているサーバー環境アプリのことです。(「XAMPP」はソフト名です。)
- 「XAMPP」の2文字目「A」はApacheの頭文字Aのことです。
- 「XAMPP」の3文字目「M」はMySQLの頭文字Mのことです。
- 「XAMPP」の後ろ2文字の「P」は、PHPなどのことです。
なお、LAMPとは、これらにLinuxを加えたものの事です。サーバー設置は、OSの費用の節約などの理由により、Linuxを使うことが多くあります。
単にwebサーバ構築をするだけなら、ApacheとPHPだけでも可能です。(プログラミング言語をPHP以外にすればPHPがなくても可能だが(CGI)、やや難しい方法になる。)
Windows版編集
Windowsでは、XAMPPを使うのがラクである。単に公式サイトからインストーラーをダウンロードしてきて実行すればいい。
Linux編集
なお、下記の手順でインストールしなくても、XAMPPでインストールすれば、ほぼ同じ結果になります。
Linuxの種類によって、インストール時に使用するコマンドが違うので、下記のようなコマンドになります。
Redhat系編集
Fedora(フェドラ)とCentOS(セント オーエス)が、レッドハット系のOSです。
Fedora の公式コミュニティのソフトウェア集(パッケージアーカイブ)には、xamppは登録されていませんので、自分で持って来る必要があります。
それが面倒なら、下記のように、直接 Apache(httpd)や php をインストールするという方法もあります。
各ディストリビューションにおいて、必ずしも同じコマンドでもありませんが、基本的にdnfでインストールできます。
sudo dnf install httpd
sudo dnf install php
sudo dnf install mysql
sudo dnf install php-mysql
のようになります。
なお一般に httpd (Apache)は最初から Fedora にインストールされている。
Debian系編集
Ubuntu(ウブントゥー)とDebian(デビアン)が、Debian系のOSです。
apt-get install php5
apt-get install apache
apt-get install mysql-server mysql-client php5-mysql
もしくは
apt-get install php5 apache mysql-server mysql-client php5-mysql
Gentoo編集
emerge apache
emerge mysql
emerge mod_php
Linux版XAMPP編集
Linux版XAMPPのインストールは、やや手間が掛かる。
ディストリビューション(UbuntuやFedoraなどといった、linuxの種類のこと)にもよるが、それぞれのOS公式パッケージアーカイブにはXAMPPは無い。
したがって apt-get コマンドやdnf コマンドでは、linux版XAMPPを入れられない。
なので、XAMPP公式サイトなどから、Linux版のインストーラーをダウンロードしてくる必要がある。
公式サイトにlinux版のインストーラーがあるの、まずそれを何らかの方法でダウンロードしてくる。
ネットにはwgetコマンドなどでダウンロードしてくる方法も紹介されていたりするが、 しかしGUIやwebブラウザが使える環境なら、わざわざwgetコマンドを使わずとも普通のwebブラウザのクリック操作でインストーラーをダウンロードしてきてもいい。
しかし、インストール自体は、コマンド端末で行う必要がある。
まず、権限を付与する必要があるので、たとえば chmod
コマンドを使って、
chmod 777 ./xampp-linux-x64-7.4.5-0-installer.run
などと権限付与する。
「x64-7.4.5-0」の部分はバージョン番号なので、時期によって変わっているので、適宜、ダウンロードしてきた物に合わせること。
右クリックでファイル名の文字列をコピーペーストするのが、てっとり早い。
つづいて、インストーラーを実行する際にrootユーザーになってないと実行できないので、
sudo su
で、パスワードを聞かれるので入力し、rootユーザーになればいい。(Fedoraの場合, sudo をつけないと、もしパスワードが正しくて認証に失敗する。)
その後、コマンドで
./xampp-linux-x64-7.4.5-0-installer.run
のように入力すると、インストーラーが自動的に起動する。
起動したインストーラーでいろいろと質問を聞かれるので、 NEXTボタンを押していくと、そのうちインストールが開始する。
インストールが完了したら、XAMPP自体は起動できる。(ただし、まだ XAMPP 用 Apacheのライブラリなどが入ってない)
XAMPP起動は、コマンド画面で
/opt/lampp/lampp
である。
Linux版XAMPPのGUI画面は、Windows版とは画面構成がやや違うが、
「Start」で目的のツールを起動し、「Stop」で終了するのは同じ仕組みである。
Fedora 32では、ライブラリ libsnl が初期状態では入ってないのでXAMPP版 Apache の起動エラーになるので、これをインストールする必要がある。
sudo dnf install libnsl
ここまでして、とりあえずlocalhostでwebサイトを見れる環境が Linux版 XAMPP で整う。
さて、とにかくXAMPP版Apacheを起動できたと思ったら、確認のため、webブラウザのアドレス欄に
localhost
と入れよう。
そして、表示としてXAMPPのページが出て来て
- XAMPP Apache + MariaDB + PHP + Perl
とかwebページ冒頭に書いてあれば、おそらくXAMPP版Apache起動は成功である。
なお phpMyAdmin はこのXAMPP版Apacheのメインページから起動できる。
さて、そもそもXAMPPのフォルダは、
/opt/lampp
として、「lampp」の名称である。
ドキュメント・ルート(そこに入れたhtmlなどがブラウザからアクセスできるようになる)の場所は
/opt/lampp/htdocs
である。
ソースコードからインストールしたい場合編集
ソースコードからPHP最新版やテスト版などをビルドしてインストールしても、Apacheのバージョンは変わらずに、Apache では古いバージョンのままのPHPしか使えません。また、古いバージョンのPHPは一般に残っています(Fedora36で確認)。Apacheの設定を編集して新しいほうのPHPを使えるようにする方法もありますが、それよりも次期のApacheアップデートを待つ方が良いでしょう。FedoraのようなローリングリリースのOSなら、標準設定で、だいたい半年くらい前のバージョンのPHPがApacheでつかえるような状態で組み込まれています。
Ubuntuでのインストール方法は公式ソースファイルのreadmeに書いてあるので、 Fedoraでの方法を本wikibooksでは示す。
まず、cd コマンドで、現在ディレクトリをダウンロードしたPHPソースファイルに移動。 一例として
cd ダウンロード
のあと
cd php-バージョン番号
のようなコマンドになる。
それとは別に、コンパイルに必要なアプリケーションのインストールが必要。
sudo dnf install libxml2-devel libsqlite3x-devel bison re2c autoconf make
Ubuntuではlibxml-2dvlだが、しかしFedoraだと「-devel」に変わるので注意。他のアプリも微妙に名前が違う。
libxml2の通常版は最初からインストールされているが、しかしdevel版が追加で必要なので上記コマンドを実行する。
上記ツールは以降のビルドに先立ち、あらかじめインストールしておく必要がある。もし上記インストールをしていないと、ビルドが失敗するだけでなく、さらに間違ったmakeファイルなどが残ってしまい、以降のビルドが失敗し続けてしまうからである。(間違ったmakeファイルが作成された場合、 sudo make clean
で消去して、再度 sudo make test
などで makeしなおす。)
また
sudo dnf groupinstall "Development Tools"
でグループインストール。
その後、PHPのソースファイル内で、
たとえば、
[ユーザー名@localhost php-8.0.0]$
のような状態で(バージョン番号は、ダウンロードしたときのPHPのバージョンによって異なる)、コマンド
./buildconf
を実行。
つづけて、コマンド
./configure
をする。
もし、エラーが出たら、不足しているアプリ名が「not found」などのメッセージとともに表示されるので、その不足アプリを dnf install コマンドなどでインストールしてから、再度、 ./configure
を試す。
./configure
コマンドのあと、最終的に
+--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP.
みたいなのが表示されたら、たぶん./configure
には成功なので、次の工程に移る。
Fedora では初期状態では make アプリがインストールされていないので、まず先に dnf コマンドで make アプリ自体をインストールする必要がある。
sudo dnf install make
その後、現在ディレクトリ位置が
[ユーザー名@localhost php-8.0.0]$
のようである事を確認した上で、make コマンドで、
sudo make install
このコマンドが終了するのに数分かかるので、本でも読みながら待つ。
ビルドが失敗する場合、いくつかの原因が考えられる。
- まちがったmakeファイルが残っている。
- メモリ不足。
もし、まちがったmakeファイルがある場合、
sudo make clean
で消去できる。
その後、再度 sudo make test
などで makeしなおす。
メモリ不足の場合、ブラウザなどメモリを大幅に使用するアプリは終了しておく。また、PHPがネットワーク系の言語でもある事から、ネットワークどうしの干渉を防ぐためにも、ブラウザは終了しておくのが安全であり、望ましい。
さて、インストールに成功したら(成功したと思ったら)、コマンドで
php -v
でバージョン番号を表示してみて試す。
PHP 8.0.0 (cli) (built: Dec 13 2020 16:50:51) ( NTS DEBUG ) Copyright (c) The PHP Group Zend Engine v4.0.0-dev, Copyright (c) Zend Technologies
のように型番などが表示されれば、ひとまずはインストール成功である。
なお、上記の一連の作業では、Apache などサーバーソフトの利用しているPHPはバージョンは変わらない。(Fedora 33 で 2020年12月21日に実験して確認。)
- ソースからインストールしたPHPを消したい場合
ソースからインストールしたPHP最新版が不要になったりバグってたりして消したい場合がある。その場合、下記のような手順で消せる。
Fedoraの場合、まず、コマンド操作
sudo dnf remove php
で、とりあえず消せるのを消す。
しかし、これでも、ソースからインストールした残骸などがPC内部に残る。
なので、コマンドでバージョン確認
php -v
をしても、まだソースインストールしたphpのバージョンが表示されていて残っている。
そこで、残骸を探すために、whichコマンド
which php
で探す。(たとえば usr/local/bin などが表示される。)
見つかったフォルダ内部に php の残骸があるので、コピー&ペーストでコピーする。
これからそのフォルダの中身をマウス手動で消すので、操作しやすいようにフォルダのユーザー名変更するコマンド
sudo chown ログインユーザ名 先程コピーしたフォルダ
たとえば
sudo chown ログインユーザ名 usr/local/bin
のようなコマンドである(フォルダは設定やOSにより異なる)。
これにより、フォルダ所有者の変更がされているので、マウス操作で消せるようになった。
その後、PHP のあるそのフォルダの中身ごとマウス操作で手動で消す(binフォルダは消さずに、その中身の実行ファイルにあるphp関連とおぼしきものを消す)。
念のため、コマンドでバージョン確認
php -v
これで何もバージョンが表示されなければ、おそらく消えている。
そしたら、再度インストールしなおす。
sudo dnf install php
念のため、コマンドでバージョン確認
php -v
通常リリース版のバージョンが表示されていれば、おそらく通常版のみが生きている。
以上。