「PHP/開発環境」の版間の差分

削除された内容 追加された内容
編集の要約なし
Ef3 (トーク | 投稿記録)
→‎PHPのプログラミング学習環境: PHPは動的なウェブページを構築することを大きく意識したプログラミング言語で、開発用のウェブサーバーを内蔵しています。 このため、特にApache HTTP Server/nginxやh2oなどでウェブサーバー環境を構築することなく、プログラミングの学習を開始できます。 実際の運用に開発用の内蔵ウェブサーバーを使うことは、パフォーマスやセキュリティの問題から非推奨ですが、ウェブサーバーとPHP処理系を連携するセットアップ(相応のネットワーク管理とシステム管理者権限とPHPの知識が必要)はハードルを高くしてしまうので、学習の開始には内蔵ウェブサーバーを使うのが良い選択でしょう。
タグ: 2017年版ソースエディター
1 行
== PHPに開発のプログラミング学習環境は必要か? ==
PHPは動的なウェブページを構築することを大きく意識したプログラミング言語で、開発用のウェブサーバーを内蔵しています。
このため、特に[[W:Apache HTTP Server|Apache HTTP Server]]/[[W:nginx|nginx]]や[[W:H2O (Webサーバ)|h2o]]などでウェブサーバー環境を構築することなく、プログラミングの学習を開始できます。
 
実際の運用に開発用の内蔵ウェブサーバーを使うことは、パフォーマスやセキュリティの問題から非推奨ですが、ウェブサーバーとPHP処理系を連携するセットアップ(相応のネットワーク管理とシステム管理者権限とPHPの知識が必要)はハードルを高くしてしまうので、学習の開始には内蔵ウェブサーバーを使うのが良い選択でしょう。
多くのWindows系言語とは違って、PHPそのものはシンプルですので、自分自身の実行環境以外、何も付属していません(ただし、PHP 5.4以降、実運用には使えませんが、[http://www.php.net/manual/ja/features.commandline.webserver.php 開発目的用に、webサーバー]が内蔵されました。)。
 
=== いまの環境にPHPがインストールされているか? ===
例えば、WindowsでC++アプリケーションを開発する場合、Microsoft Visual Studioなど統合開発環境というのがありますが、PHPの場合は、実行環境以外の機能とソフトは自力で整えることになります。
いまの環境にPHPがインストールされているか確認しましょう。
 
コマンドラインから
PHPでweb開発する場合、最低限webサーバー、およびOSが必要になります。データベースを使う場合はデータベースも必要になります。
php -v
を実行します
PHP 8.1.9 (cli) (built: Aug 15 2022 09:39:52) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.9, Copyright (c) Zend Technologies
with Zend OPcache v8.1.9, Copyright (c), by Zend Technologies
:のように表示されていたらPHPはインストールされています。
:: [[#内蔵ウェブサーバーを使ってみる]]に進んでください。
もし
php: Command not found.
:のようの表示されたら、PHPはインストールされていません。
:次のような手順でPHPをインストールしてください。
 
== 使用するオペレーションシステム ==
PHPは多くのUnixとUnix互換OS、とWindowsのようなUnix非互換OSで動作します。
 
=== Windows ===
これら機能をまとめて提供するパッケージにはLAMP、またはXAMPPなどがあります。ただしWindows版のXAMPPでは、Windowsの日本語環境での文字コードがUTF系でなくSHIFT-JISを用いているという問題から、XAMPPのWindows版で日本語を表示するのが、やや面倒です。いちおう、アップロードするHTMLファイルの文字コードをUTF-8にしておけば、Windows版XAMPPにアップロードしたHTMLファイルは日本語が表示されますので、設定がよく分からなければHTMLファイルの文字コードをUTF-8にしておいてください。
[https://windows.php.net/download/ 公式のWindows向けダウンロードページ]にビルド済みバイナリーが提供されています。
 
もしあなたが、Microsoft Visual Studio を使っているのであれば、Visual Studio Marketplace から、[https://marketplace.visualstudio.com/items?itemName=DEVSENSE.PHPToolsforVisualStudio2022 PHP Tools for Visual Studio 2022]をインストールすることで、Visual Studio に統合された、PHP開発環境を使用できます。
どっちみち、Linux系では、ほぼUTF-8だけですので、事実上、インターネットにアップロードされているファイルの文字コードは、現状では原則としてUTF-8です。(世界中のサーバのほとんどはOSがLinuxです。)
 
もしあなたが、Visual Studio code(vscode)を使っているのであれば、Visual Studio Marketplace から、[https://marketplace.visualstudio.com/items?itemName=DEVSENSE.phptools-vscode PHP Tools for Visual Studio Code]をインストールすることで、vscode に統合された、PHP開発環境を使用できます。
 
=== macOS ===
LAMPはUnix系で動くに対して、XAMPPはUnixとWindowsのどちらも対応しています。
PHP は macOS X (10.0.0) から macOS Monterey (12.0.0) までの macOS にバンドルされています。デフォルトのウェブサーバーでPHPを有効にするには、Apacheの設定ファイルhttpd.confの数行をアンコメントする必要がありますが、CGIやCLIはデフォルトで有効になっています(ターミナルプログラムで簡単にアクセスできます)。
 
macOS Monterey 以降は、標準ではバンドルされていないので、[https://brew.sh/ homebrew] を使ってインストールするか、ソースコードからビルドします。
XAMPPは、以下のサイトから無料でダウンロードできます。
 
brew install php
* [http://www.apachefriends.org/en/xampp.html XAMPP Downloads]
 
=== FreeBSD ===
XAMPPパッケージのインストール方法は、リンク先の公式サイトにあります。各OSごとに「FAQ」(「よくある質問と答え」の意味)があり、そこにインストール方法の解説も記載されています。
ports/pkg コレクションに lang/php81 lang/php81-extensions があります。
 
portmaster でビルドしインストール
# portmaster lang/php81 lang/php81-extensions
pkg でビルド済みバイナリーをインストール
# pkg install lang/php81 lang/php81-extensions
 
=== GNU/Linux ===
XAMPPが無くても、PHPのプログラムは作成可能です。
多くのGNU/Linuxのディストリビューションでは、PHPが標準でインストールされています。
 
くわしくは、利用中のディストリビューションとパッケージマネージャーのマニュアルを参照してください。
最低限、webサーバーとして、たとえば Apache (アパッチ)などのwebサーバーがインストールできれば充分です。
XAMPP の「A」とは Apacheの頭文字のことです。
 
== テキストエディター ==
なお、Sambaはwebサーバーではなくファイルサーバー用ソフトなので、sambaではPHPアプリの開発は困難です。
Windows の「メモ帳」(notepad.exe)のようなプレーンテキストの編集できるエディターが必要です。
HTMLの編集ができる環境であれば、そのまま使えます。
 
== 内蔵ウェブサーバーを使ってみる ==
内蔵ウェブサーバーは、アプリケーションの開発を支援するために設計されています。また、テスト目的や制御された環境で実行されるアプリケーションのデモにも有用です。このサーバーは、フルスペックのウェブサーバーではありません。<u>公共のネットワークで使用することはできません。</U>
 
内蔵ウェブサーバーの起動
Apacheさえインストールできれば、あとは webブラウザやテキストエディタなどでも、作業や動作確認ができます。XSAMPPの「M」とは、MariaDBか、あるいは MySQL などといったデータベース管理ソフトのことですが、とりあえずPHPの勉強の初歩では当面は、データベース管理ソフトは不要ですし、データーベース管理ソフトが無くても、入門レベルのPHPプログラムなら動作確認は出来ます。
% mkdir -p ~/public_html
% cd ~/public_html
% php -S localhost:8000
[Sun Dec 4 11:28:00 2022] PHP 8.2.0RC7 Development Server (http://localhost:8000) started
:のように起動します。
::<code>localhost:8000</code>は、ネットワークからアクセスできないホストにローカルなアドレスのポート8000でウェブブラウザーからのアクセスを待ちます。
::<code>localhost</code>を<code>0</code>に変えると到達可能な全てのホストからアクセス可能になります。
::本来のHTTPのポート 80 は、システム管理者権限がないと開けないので、8000に仮にしました。
::ポート8000 が衝突していたら、 8080…8888 のような上のポートに逃げるのが良いでしょう。
終了するには
^C
: CTRLを押しながら C をタイプします。
 
1行だけのプログラムを入力しサーバーを起動します。
echo '<?php phpinfo() ?>' > phpinfo.php
php -S localhost:8000
[Sun Dec 4 11:28:00 2022] PHP 8.2.0RC7 Development Server (http://localhost:8000) started
 
ここで、<code>http://localhost:8000/phpinfo.php</code>をウェブブラウザーで開くと、PHPの諸元が表示されます。
== エディタ ==
[[HTML]]と一緒に入力してプログラミングできるので、テキストエディタ(windowsでいう「メモ帳」のようなアプリ)さえあれば開発は可能です。(なお、「Word」などのワープロソフトはテキストエディタではありません。ワードでは、けっしてプログラムのコードを書かないでください。)
 
ターミナルを見ると
他の言語に経験があれば、なじんだテキストエディタが、ほとんどそのまま使えます。
[Sun Dec 4 11:34:22 2022] PHP 8.2.0RC7 Development Server (http://localhost:8000) started
[Sun Dec 4 11:34:36 2022] 153.187.15.4:8864 Accepted
[Sun Dec 4 11:34:36 2022] 153.187.15.4:7852 Accepted
[Sun Dec 4 11:34:36 2022] 153.187.15.4:8864 [200]: GET /phpinfo.php
[Sun Dec 4 11:34:36 2022] 153.187.15.4:8864 Closing
[Sun Dec 4 11:34:42 2022] 153.187.15.4:7852 Closed without sending a request; it was probably just an unused speculative preconnection
[Sun Dec 4 11:34:42 2022] 153.187.15.4:7852 Closing
のように内蔵ウェブサーバーとウェブブラウザーの様子が表示されます。
 
サーバー停止
== 使用するOS ==
^C
Linuxの場合、一般のデスクトップ版のOSでも、サーバー用のPHPアプリの開発が可能です。
 
コマンドラインから phpinfo.php を実行(先頭五行)。
なので、PHPの勉強の最初の段階では、わざわざサーバー版Linuxをインストールする必要が無いです。
% php phpinfo.php | head -5
phpinfo()
PHP Version => 8.2.0RC7
System => FreeBSD localhost 13.1-STABLE FreeBSD 13.1-STABLE #0 6480563d0: Thu Aug 25 19:34:52 JST 2022 root@localhost:/usr/obj/usr/src/amd64.amd64/sys/SV1G amd64
Build Date => Dec 2 2022 13:42:14
 
おなじコードでも、ウェブサーバーからの実行と、コマンドラインからの実行で出力に違いがありますが、実行そのものはできています。
 
;まとめ
:学習のために、内蔵ウェブサーバーを使います
:内蔵サーバーは、<code>php -S localhost:8000</code>で起動し、カレントディレクトリーにあるコンテンツが公開されます。
:内蔵サーバーは、CTRL-Cで終了します。
 
{{stub}}
[[Category:PHP|かいはつかんきよう]]