PHPのプログラムってどうやって実行すればいいんだ?
PHPを動かすにはサーバーが必要らしいけど、そんなもの持って無い…
PHPの実行方法種類多すぎない?
こんにちは。はじめてPHPで簡易な掲示板を作って以来、Web系のプログラムをずいぶんと作ってきました。エンジニア・テックライターの平山です。
皆さんはPHPの実行方法で迷ったことってありませんか?
PHPはもともとサーバ上で動かすものですから、本来は学習者が自分でサーバを立てるなり、借りるなりして実行環境を整える必要がありました。ですが、これではあまりに初学者の負担が大きいので、サーバを立てる部分を回避する方法がいくつも作られてきた歴史があります。
結果、今度は実行方法が増えすぎて、初心者にはどれを選べばいいのかわからない、という本末転倒な状況が起こっていたりします。
そこで、この記事では初心者の方が迷わずにPHPのプログラムを実行できるように、手順をステップ・バイ・ステップで解説していきます。
また、なぜ、ここまで実行に手間がかかるのか、理由の部分も解説します。背景がわかることでより深くPHPに対する理解が進むことでしょう。
それでは早速はじめていきましょう。
PHPのプログラムを実行するために必要なもの
さて、まずは最初に理屈の部分を押さえてしまいましょう。なぜPHPの実行にはここまで手間がかかるのか、という問題ですね。
これは、ひとえにPHPがサーバサイド言語であることに起因します。
プログラミング言語には、いくつも分類方法があるのですが、その一つにクライアントサイド・サーバサイドという分け方があります。
これは、Webでのプログラミング言語の立ち位置で分類した方法で、クライアントサイドはクライアント、つまりユーザーが操作するPCやスマホなどの端末で動作するためのプログラミング言語です。具体的にはJavaScriptが上げられます。
一方、サーバサイドとは、クライアントに様々な情報を提供するサーバーというコンピュータ上で動かすための言語です。今回のテーマであるPHPやRuby、Javaなどが有名ですね。
そして、サーバはApacheやNginxというサーバソフトウェアを中心に、データベースやWebコンテナ、監視ツールなどなどで構成されています。
このサーバ上で動く用に設計されているのがPHPなので、コンパイラをインストールすれば使える、というわけには行かないのです。
ただ、PHPの開発を行うたびに毎回サーバを用意しなくてはいけないとなると、これは大変な負担です。毎度サーバを0から立ち上げるなんて、苦行以外の何物でもありません。
そこで考え出されたのが、仮想化、という技術です。仮想化とはコンピュータの中に別のコンピュータを再現してしまう方法のことをいいます。
イメージとしては、macOS上でWindows10を動かしたり、Windows10の内部でUbuntuを起動するようなものです。具体的なソフトウェアとして、VMwareやVirtualBoxがありますので、興味のある方は調べてみてください。
そして、この方法を使えば、自分が使っているPCの中に仮想のサーバを作ることが可能になるのです。
さらにありがたいことに、PHPなどのWebサーバを作ることに特化したアプリケーションが既に存在します。名前をXAMPP(ザンプ)といいます。
次の章ではXAMPPについて見ていきましょう。
XAMPPでローカル環境を構築しよう!
前章でPHPを動かすにはサーバが必要で、それを自分のPCで実現するために、仮想化したサーバを作る必要があることに触れました。そして、そのためのツールとしてXAMPPを紹介しました。
じつは、XAMPP以外にもPHPのプログラムを実行する仕組みはいくつか存在します。いろいろとありすぎるがゆえに初心者の方が混乱する原因になっているわけですが・・・
ただ、XAMPPを使う方法が一番わかりやすく、初心者の方には圧倒的にオススメなので、以下しばらくXAMPPの使い方を説明していきます。XAMPP以外の方法は最後の章でまとめて紹介します。
それではXAMPPでローカル開発環境を構築していきましょう!
ところで、ローカル開発環境とは、サーバに接続されていない、手元のPCだけでプログラムを実行できる環境のことを指します。対義語はリモートで、サーバに接続しながら開発している状態をリモート開発環境といいます。合わせて言葉も覚えておきましょう。
改めて、XAMPPによる環境構築ですが、やることはとても簡単です。以下のサイトに行ってXAMPPをダウンロードし、インストールするだけです。
引用:XAMPPダウンロードページ https://www.apachefriends.org/jp/index.html
注意すべき点はOSの種類の選択ぐらいでしょう。あとは以下の画面に従ってインストールしていきましょう。この例ではWindows10のCドライブにXAMPPをインストールしていきます。
ダウンロードしたインストーラファイルを実行
個人の設定によりますが、UAC(ユーザーアカウント制御)に関する警告(Warning)が出て来る場合があります。UACは、管理者権限でのアクセス許可が必要な場合、出てくる警告です。
今回は変更を許可するので「はい」を選択します。
XAMPPのインストーラー初期画面
Nextをクリックします。
インストールフォルダの選択
Windowsの初期設定はC:xamppです。変更しない場合はNextをクリックします。変更する場合は、画面右側のフォルダマークをクリックして、変更したいフォルダを選択します。
インストールするコンポーネントの選択
デフォルトでは、全てのコンポーネントが選択されています。特にこだわりが無ければそのままNextをクリックしてしまいましょう。
BitNami for XAMPPの追加インストール
BitNami for XAMPPはXAMPP上でWordPressを動かす際に便利な機能が搭載されたツールです。XAMPPでWordPressをカスタマイズしたい方などはインストールしておいてもいいでしょう。不要な方はチェックボックスのチェックを外してNextで先に進みます。
セットアップ中
プログレスバーが満タンになるまでしばらく待ちましょう。
インストール完了
動作を確認する場合は、Do you want to start the Control Panel now?にチェックが入っていることを確認してFinishをクリックします。こうすることで、そのまま初回起動が始まります。XAMPP起動後の操作は次の章で説明していきます。
XAMPPでPHPのプログラムを実行する方法
この章ではXAMPPを利用してPHPのプログラムを実際に実行してみましょう。
XAMPPは、Windows10のCドライブ直下にC:xamppのようにインストールされている想定で、話を進めていきます。必要な方は適宜読み替えてください。
XAMPPを使うためにはXAMPPコントロールパネルを起動する必要があります。コントロールパネルを起動するための実行ファイルはXAMPPフォルダの直下にあるxampp-control.exeですので、これをダブルクリックして起動しましょう。
XAMPPの起動に毎回必要になるため、タスクバーやデスクトップにショートカットを作っておくのがオススメです。
また、インストール完了時に~Control Panel now?のチェックボックスにチェックを入れていた場合も自動でコントロールパネルが起動します。インストールから進めてきた方は以下を続けて読み進めてください。
最近のバージョンではコントロールパネルを初回起動すると言語を英語とドイツ語から選択できる機能が追加されました。どちらかしか選べないので、お好きな方を選んで、saveをクリックしてください。
コントロールパネルを起動すると次のようなウインドウが表示されます。
コントロールパネルからはApacheやMySQL、FileZillaなどのサーバアプリケーションを操作することができます。今回はテストということで、基本のサーバソフトウェアであるApacheのみを起動しましょう。
Apacheの起動方法は簡単で、コントロールパネルActionsの下にあるStartボタンを押すだけです。他のアプリケーションも同様の方法で起動できるので覚えておいてください。
なお、この時点で下のログウィンドウにerrorが表示される場合、多くのケースではすでにApacheが起動しています。Windowsでは標準でApacheがインストールされていないので引っかかるケースは少ないですが、MacやLinuxの場合、標準でApacheが動いている場合があるので、うまく行かない方はすでにApacheを動かしていないか確認してみてください。
同様にMySQLなどのアプリケーションも既に起動している場合、XAMPPコントロールパネルから起動するとエラーが出ます。エラーが出た場合はすでに裏で動いているアプリケーションが無いかご確認ください。
さて、無事にApacheが起動できた場合、Webブラウザで次のアドレスにアクセスすることで、Apacheのダッシュボードを開くことができます。
ダッシュボードからは、PHPの情報を取得できるPHPinfoやグラフィカルにデータベースを扱えるphpMyAdminに直接移動できます。これらの機能が必要になった場合、ダッシュボードから簡単に接続できますので、覚えておいて損はないでしょう。
ダッシュボードが表示されたら、テストプログラムを実行してみましょう。今回はテストの定番、Hello World!を表示するプログラムです。
XAMPPでPHPを実行する場合、ソースファイルの置き場所に重要な意味があります。XAMPP(の内部で動作しているApache)は仮想のサーバであり、Webブラウザはその仮想サーバにアクセスすることでPHPを実行しています。
ということは、仮想サーバ内部に実行させたいファイルをおいてあげないと、Webブラウザからアクセスすることがそもそもできないわけです。
Webブラウザからアクセスできる仮想サーバのフォルダは、XAMPPをインストールしたフォルダの直下にあるhtdocsフォルダ以下になります。htdocsの構成はデフォルトで以下のようになっています。
そして、htdocsに対するファイル配置のルールは以下のとおりです。
-
- htdocs直下にhoge.htmlというhtmlファイルを配置した場合
→ http://localhost/hoge.htmlというアドレスでアクセスできます。
- htdocs直下にhoge.htmlというhtmlファイルを配置した場合
- htdocsの中にhogehogeというフォルダを作って、内部にfuga.htmlというファイルを配置した場合
→ http://localhost/hogehoge/fuga.htmlというアドレスでアクセスできます。
先程アクセスしたダッシュボードのアドレスは、
http://localhost/dashboard/
となっていましたが、じつは、dashbordフォルダにアクセスしていたんです。
このルールを守ることで、仮想サーバ内に好きなようにファイル、フォルダを設計することができます。
一般にhtdocsのこと(もしくはhtdocsまでのフルパス)をドキュメントルートと呼びます。Apacheについて本格的に学び始めた際によく目にすることになりますが、とりあえずそんなものがあるんだ、程度の認識で大丈夫です。
さて、テスト用のサンプルソースは次のようになります。
<?php echo 'Hello World!'; ?>
このサンプルを、htdocsフォルダ内部に作成しましょう。ファイル名はtest.phpとし、拡張子をphpにすることを忘れないでください。文字コードを指定できるエディタをお使いでしたら、文字コードをUTF-8に指定しましょう。
ファイルの配置が終わったら、以下のアドレスにアクセスしてください。
Hello World!が表示されたら、無事PHPのプログラムが実行できる環境ができあがりました!
実行結果
最後に、蛇足ではありますが、今後本格的にプログラミングを学習していくのでしたら、専用のエディタを導入することをオススメします。作業効率が全然違いますし、上にあるような文字コード由来の文字化けなど、面倒な部分にもすぐに対応できるため、初心者といえども必須のツールです。
どのテキストエディタがいいかわからない場合は、atomかVisual Studio Codeから選ぶのが最近のオススメです。
これらの記事を参考に選んでみてください。
XAMPP以外の実行方法
こちらの章では、XAMPPを利用する方法以外のPHPの実行方法を紹介します。
ウェブサービスを使う
まず紹介するのがウェブサービスを利用する方法です。最近のウェブサービスの進化は凄まじく、少し前まではローカルでしか実行できなかったようなことが、手軽に、しかも多くの場合無料でできるようになっています。
そして、プログラムの実行環境もその一つです。クラウド開発環境とかクラウドIDEという名称で呼ばれるサービスですね。
具体的な使い方の詳細は省きますが、以下で紹介するPaizaCloudクラウドIDEやAWS cloud9はある程度の機能が無料で使え、今回のテーマであるPHPのプログラムも動かすことができます。
少し前まではCodeanywhereというサービスもおすすめしていたんですが、最近になって無料で試せるのが7日に限定されてしまったので、価格面から初心者には紹介しづらくなってしまいました。
月額8米ドルでかなり便利に使えるので、お金を払ってでもクラウド環境で開発したい、という人には依然としてオススメのツールです。
では、なぜ今回メインでクラウド環境を紹介しなかったのかというと、拡張性と利用料金、連続利用時間の制限があるからです。
クラウド環境はウェブ上に自分が占用できるサーバを作り、そこでプログラムを動かす、という仕組みが主流となっています。サーバの作成にはお金がかからないのですが、作ったサーバを維持したり、外部に公開したり、連続で起動箚せ続けるには制限ないしはお金が必要になります。
無料プランの枠内だけで収めながらフレームワークについてなどの発展的な学習もできなくはないです。ですが、そういった細かい調整はある程度わかっている人だからこそできる部分でもあるので、まったく初めての人にはオススメし辛いわけです。
また、フレームワークの話が出ましたが、開発環境によってはフレームワークとの相性が悪くうまく動かせないケースもあります。筆者の経験として、1年ほど前にAWS cloud9でPHPの有名フレームワーク、cakePHPを動かそうとしたときに何をどうやってもうまく動かせず、泣く泣く挫折した記憶があります。
現在は状況が改善されているかもしれませんが、クラウド開発環境にはクラウド開発環境特有の問題点がある、ということは事実でしょう。そのため、技術的にも枯れており、おおよそ問題が発生しないであろう、昔ながらの仮想サーバ構築を紹介した、という経緯もあります。
ただ、まったくの初心者にはオススメし辛いというだけで、クラウド開発環境はとても可能性があり、コードの共有の簡単さやインスタントに環境構築ができるといった独自の強みがあるのも事実です。
興味のある方はぜひ試行錯誤しながら、使いこなす方法を探ってみてください。
PaizaCloudクラウドIDE
https://paiza.cloud/ja/
AWS cloud9
https://aws.amazon.com/jp/cloud9/
Codeanywhere
https://codeanywhere.com/
コマンドラインで実行する
PHPは上で紹介したように、サーバから実行するのが一般的ですが、WindowsのコマンドプロンプトやMac・Linuxのターミナルといったコマンドラインからも実行できます。
この場合、PCにPHPがインストールされている必要があります。ですが、XAMPPをインストールすると、PHPのパス通しまで行ってくれているため、おそらくここまで読み進めた方のPCにはPHPがインストール済みになっているはずです。
コマンドライン上で確認してみましょう。
コマンドプロンプト・ターミナルを起動して、以下のコマンドを入力してみてください。
php -v
以下のようにPHPのバージョンが表示されたら、PHPがインストール済みでパスが通っています。
PHP 7.3.0 (cli) (built: Dec 6 2018 02:17:00) ( ZTS MSVC15 (Visual C++ 2017) x86 ) Copyright (c) 1997-2018 The PHP Group Zend Engine v3.3.0-dev, Copyright (c) 1998-2018 Zend Technologies
もし、エラーが表示されてバージョンが確認できない場合、PHPがインストールされていないか、パスが通っていません。
公式サイトからダウンロードしてインストールするか、パスについて確認しましょう。
Linuxはこちら
https://www.php.net/downloads.php
Windowsはこちら
https://windows.php.net/download#php-7.3
さて、コマンドラインからPHPのプログラムを実行してみましょう。実行のための書式は以下のとおりです。
php 実行したいファイルのパス
例
php C:xampphtdocsindex.php
実行結果
Hello World!
今回は上で紹介したHello World!サンプルをコマンドラインから実行してみました。
いちいち仮想サーバを立ち上げて、ドキュメントルートまで行ってファイルを更新して、Webブラウザで読み込んで、という手間がかからないため、人によってはこちらの方法が性に合っているという場合もあるかもしれません。
ただ、フレームワークを使ったグラフィカルなWebサービスはさすがに表現できないので、あくまでもテキストベースで動作確認をしたいときのための方法として覚えておくのがいいでしょう。
より細かい使い方はこちらの記事でも紹介されているので、興味のある方は御覧ください。
まとめ
いかがでしたか?
今回はPHPのプログラムを実行する方法について、XAMPPを使った基本的な方法から、クラウド開発環境やコマンドラインを使った方法まで見てきました。
実行のために、ずいぶんと手間がかかったように感じられたかもしれませんが、環境構築は一度行ってしまえばしばらくはやらなくて済むものです。学習前のひと手間ということで、なんとか乗り切っていただけたらと思います。
学習が始まってしまえば、あとは習得すべきことを学び、実際に手を動かし、作りたいものに向けて着実に積み上げていくだけです。ぜひPHPの学習を楽しんでください。
お相手は、PHPで作ったものの中では、ブログシステムが一番気に入っているテックライターの平山でした。