PHPのプログラムを実行するには!?超初心者向けに手順と理由を解説


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のインストーラー初期画面

fig5
Nextをクリックします。

インストールフォルダの選択

Windowsの初期設定はC:\xamppです。変更しない場合はNextをクリックします。変更する場合は、画面右側のフォルダマークをクリックして、変更したいフォルダを選択します。

fig7

インストールするコンポーネントの選択

デフォルトでは、全てのコンポーネントが選択されています。特にこだわりが無ければそのままNextをクリックしてしまいましょう。

fig6

BitNami for XAMPPの追加インストール

BitNami for XAMPPはXAMPP上でWordPressを動かす際に便利な機能が搭載されたツールです。XAMPPでWordPressをカスタマイズしたい方などはインストールしておいてもいいでしょう。不要な方はチェックボックスのチェックを外してNextで先に進みます。

fig8

セットアップ中

プログレスバーが満タンになるまでしばらく待ちましょう。

インストール完了

fig10

動作を確認する場合は、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のダッシュボードを開くことができます。

http://localhost/dashboard/

ダッシュボードからは、PHPの情報を取得できるPHPinfoやグラフィカルにデータベースを扱えるphpMyAdminに直接移動できます。これらの機能が必要になった場合、ダッシュボードから簡単に接続できますので、覚えておいて損はないでしょう。

ダッシュボードが表示されたら、テストプログラムを実行してみましょう。今回はテストの定番、Hello World!を表示するプログラムです。

XAMPPでPHPを実行する場合、ソースファイルの置き場所に重要な意味があります。XAMPP(の内部で動作しているApache)は仮想のサーバであり、Webブラウザはその仮想サーバにアクセスすることでPHPを実行しています。

ということは、仮想サーバ内部に実行させたいファイルをおいてあげないと、Webブラウザからアクセスすることがそもそもできないわけです。

Webブラウザからアクセスできる仮想サーバのフォルダは、XAMPPをインストールしたフォルダの直下にあるhtdocsフォルダ以下になります。htdocsの構成はデフォルトで以下のようになっています。


例:Windows10にXAMPP3.2.3をインストールした際のhtdocs

そして、htdocsに対するファイル配置のルールは以下のとおりです。

    • htdocs直下にhoge.htmlというhtmlファイルを配置した場合
      → http://localhost/hoge.htmlというアドレスでアクセスできます。

 

  • htdocsの中にhogehogeというフォルダを作って、内部にfuga.htmlというファイルを配置した場合
    → http://localhost/hogehoge/fuga.htmlというアドレスでアクセスできます。

先程アクセスしたダッシュボードのアドレスは、
http://localhost/dashboard/
となっていましたが、じつは、dashbordフォルダにアクセスしていたんです。

このルールを守ることで、仮想サーバ内に好きなようにファイル、フォルダを設計することができます。

一般にhtdocsのこと(もしくはhtdocsまでのフルパス)をドキュメントルートと呼びます。Apacheについて本格的に学び始めた際によく目にすることになりますが、とりあえずそんなものがあるんだ、程度の認識で大丈夫です。

さて、テスト用のサンプルソースは次のようになります。

このサンプルを、htdocsフォルダ内部に作成しましょう。ファイル名はtest.phpとし、拡張子をphpにすることを忘れないでください。文字コードを指定できるエディタをお使いでしたら、文字コードをUTF-8に指定しましょう。

ファイルの配置が終わったら、以下のアドレスにアクセスしてください。

http://localhost/test.php

Hello World!が表示されたら、無事PHPのプログラムが実行できる環境ができあがりました!

実行結果

ここまでの手順がうまく行っていればブラウザの左上にHello Worldが表示される

最後に、蛇足ではありますが、今後本格的にプログラミングを学習していくのでしたら、専用のエディタを導入することをオススメします。作業効率が全然違いますし、上にあるような文字コード由来の文字化けなど、面倒な部分にもすぐに対応できるため、初心者といえども必須のツールです。

どのテキストエディタがいいかわからない場合は、atomかVisual Studio Codeから選ぶのが最近のオススメです。

これらの記事を参考に選んでみてください。


【初心者必見!】Visual Studio Codeの使い方を分かりやすく解説!
更新日 : 2019年5月28日

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のバージョンが表示されたら、PHPがインストール済みでパスが通っています。

もし、エラーが表示されてバージョンが確認できない場合、PHPがインストールされていないか、パスが通っていません。

公式サイトからダウンロードしてインストールするか、パスについて確認しましょう。

Linuxはこちら
https://www.php.net/downloads.php

Windowsはこちら
https://windows.php.net/download#php-7.3

さて、コマンドラインからPHPのプログラムを実行してみましょう。実行のための書式は以下のとおりです。

php 実行したいファイルのパス

実行結果

今回は上で紹介したHello World!サンプルをコマンドラインから実行してみました。

いちいち仮想サーバを立ち上げて、ドキュメントルートまで行ってファイルを更新して、Webブラウザで読み込んで、という手間がかからないため、人によってはこちらの方法が性に合っているという場合もあるかもしれません。

ただ、フレームワークを使ったグラフィカルなWebサービスはさすがに表現できないので、あくまでもテキストベースで動作確認をしたいときのための方法として覚えておくのがいいでしょう。

より細かい使い方はこちらの記事でも紹介されているので、興味のある方は御覧ください。

PHPを継続的に学習するコツ

PHPの学習をしていて、わからないところが多く何回も調べながらやるのは正直、嫌になってしまいますよね。そこで、どのようにすれば継続的に学習を続けて行けるのかそのコツをご紹介します。

目的を明確にする

まずは、なぜPHPを学んでいるのか明確にしましょう。例えば、PHPを学んで

  • Webサイトが作りたい
  • WordPressの編集がしたい
  • エンジニアとして転職したい
  • フリーランスを目指したい


など、目的は色々あると思います。

この目的を明確にすることがとても大事で、PHPを学ぶ学習意欲に繋がっていきます。目的がないまま学習をしていると、学習すること自体が目的になってしまい、ゴールのない果てしない道を進むことになります。その結果、挫折してしまう人が多いのが現状となっています。

そうならないためにも、PHPを学ぶ目的は言えるようにしましょう。もし言えない場合は、学ぶプログラミング言語自体間違っている可能性もあります。なので、しっかり目的から学んでいる言語があっているか確認しましょう。

学習プランを決める

目的が明確になったら、次に学習プランを立てましょう。この学習プランを立てずに学習している人が多いのですが、学習プランがないと自分が今どのくらい進んでいて、後どのくらい学習をすればいいのか見えないので、学習をすること自体がきつく長続きしません。

学習を継続的に続けるためには学習プランは必須とも言えます。いつまでに、どのレベルになっていて、最終的なゴールはいつ達成するのかはしっかり決めましょう。

先生を見つける

「何度もエラーになって、自分で調べては修正する」この繰り返しがPHPを学習していると起こります。調べてもよくわからないし、時間もかかってしまってプラン通りに学習が進まないというのは当然のように起こります。

調べて直したけどうまく動かないしどうなってんの

このように思い、学習をすること自体に嫌気が指して挫折してしまう人も多いです。

そうならないためにも、「先生」を見つけることが大事になります。先生と言ってもそう簡単に探せそうにないですよね。最近ではSNSでもコミュニティーが増え、相談しやすい環境が増えてきています。こういったコミュニティーや勉強会を利用して先生を見つけるのも一つの手です。

自分に投資することも大事

学習サイトやアプリなど、無料で学習できる環境が整ってはいるものの自分に投資して学習をすることも大事です。本や有料学習サイトは、無料では学べない範囲の学習や機能が付いているので、効率的に学習をすることが可能です。

そして、投資のもう一つの方法がプログラミングスクールで学ぶことです。

独学と違い、プログラミングスクールでは上で紹介した学習を継続するためのサポートが徹底されているので、最も効率の良い学び方と言えるでしょう。先生も自分で探す必要がないので、エラーなどで躓いて時間がかかる心配もありません。

ですが、当然いきなりスクールに入るのは抵抗がありますよね。

その場合は、弊社で行っている無料体験レッスンへ参加してみてください。この無料体験レッスンでは、なぜPHPを学ぶのかその目的をヒアリングして、本当にPHPを学ぶべきなのか、その学習プランはどのように立てるのかなどの提案をしています。

目的をヒアリングすることで、あなたに最適な言語や学習プランが分かるので、最速でエンジニアを目指せるイメージがわきます。

手軽にしかもオンラインでも受けられるので、ぜひ一度目的を明確にしてみましょう。

無料体験レッスンに申し込む

まとめ

いかがでしたか?

今回はPHPのプログラムを実行する方法について、XAMPPを使った基本的な方法から、クラウド開発環境やコマンドラインを使った方法まで見てきました。

実行のために、ずいぶんと手間がかかったように感じられたかもしれませんが、環境構築は一度行ってしまえばしばらくはやらなくて済むものです。学習前のひと手間ということで、なんとか乗り切っていただけたらと思います。

学習が始まってしまえば、あとは習得すべきことを学び、実際に手を動かし、作りたいものに向けて着実に積み上げていくだけです。ぜひPHPの学習を楽しんでください。

お相手は、PHPで作ったものの中では、ブログシステムが一番気に入っているテックライターの平山でした。

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

平山 晃

平山 晃

フリーのエンジニア・ライター。
プログラミング、ライティング、マーケティングなど、あらゆる手段を駆使して、
ハッピーなフルリモートワーカーを目指し中。

最近興味がある分野は深層強化学習。
積みゲー、積ん読がどんどん増加しているのがここ数年の悩み。
実は侍エンジニア塾の卒業生だったりします。

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説