PHPことはじめ

PHPはWeb開発に適した言語で、しばしばサーバサイドの処理や、HTMLへの埋め込みに利用されます。

Webのフロントエンドは今はJavascriptが主流となっていますが、サーバサイドやWordpressなどではまだまだ現役です。

PHPとは

PHP: Hypertext Preprocessorは、主にWebで使用されるスクリプト言語です。PHPの最も大きな特徴は、HTMLに直接埋め込むことができることです。

<body>
    <? echo "これはPHPで出力したもの" ?>
    <p>これはHTMLで出力したもの</p>
</body>

PHPのコード部分はPHPであることを示すために<?php ... ?>または<? ... ?>で囲みます。このようにして埋め込んだコードは、サーバ側で処理されます。つまり、ブラウザで表示する時点で、すでにPHPのコードが処理されたものが送られてくるということです。

PHPのみのコードの場合、?>が省略されることがしばしばあります。

しかし、近年ではHTMLにPHPを埋め込むことを意識することはありません。というのも、近年はサーバサイドフレームワークを利用し、bladeなどのテンプレートエンジンというものを使用して表示内容を組み上げることが主であるためです。

そのため、サーバ側でデータなどの処理をさせることが主となっています。

環境構築

まずは、PHPが動く環境を導入する必要があります。

PHP単体を導入するもの以外にも、XAMPPでWordprsesやその他環境をまとめて導入する方法もあります。

Windows

まずは、https://www.php.net/downloadsからPHPをダウンロードします。

ページ内の”Windows downloads”から”x64″のzipをダウンロードしてください。

スレッドセーフとノンスレッドセーフの違いは、HTTPリクエストに対してスレッド単位 (マルチスレッドになる) で立ち上がるか、プロセス単位で立ち上がるかの違いです。

Apacheがモジュール版であればスレッドセーフを、CGI版であればノンスレッドセーフの方をダウンロードしてください。

単に学習目的であればどちらでも良いです。

ダウンロードしたら、適当な場所にファイルを展開します。基本的にはCドライブ直下で良いです。

配置したら、設定→システム→バージョン情報 (Windows11の場合) からシステムの詳細設定を開き、システム環境変数の”Path”に”php.exe”が入っているフォルダを追加すれば完了です。C直下に入れた場合はC:\php-8.1...のような感じになります。

php env

これで完了です。

Mac

過去バージョンのMacではデフォルトでインストールされていましたが、現在は手動で導入する必要があります。

導入する際はターミナルでhomebrewを利用します。

入っているかわからない場合、ターミナルでphp -vを実行し、バージョンが表示されたら入っています。

とはいえ、おそらく古いので新しいバージョンを入れることを推奨します。

# brewを最新にする (必要な場合)
brew update

# php@8のバージョン検索
brew search php@8

# 見つかったバージョンから最新の安定版を指定
brew install php@8.1

PHP7の最新はPHP7.4です。brew install php@7.4で導入できます。

インストールしたらパスを通します。

# 下はphp8.0の場合のパス
export PATH=$PATH:/usr/local/opt/php@8.1/bin:/usr/local/opt/php@8.1/sbin

# 設定読み込み直し
. ~/.zshrc

# バージョン確認
php -v

これで完了です。

Linux

Linuxの場合はコマンドに細かい差異はありますが、大まかな流れは同じです。

Ubuntu

古いPHPバージョンで良い場合は、suto apt install phpのみでokです。

まずはリポジトリを導入します。

sudo add-apt-repository ppa:ondrej/php
sudo apt update

導入したら、導入できるバージョンを確認します。最新バージョンの記載があれば大丈夫です。

$ sudo apt show php
Package: php
...
Description: server-side, HTML-embedded scripting language (default)
 ...
 PHP version (currently 8.1).

N: There is 1 additional record. Please use the '-a' switch to see it

最新バージョンになっていたらあとは導入して終わりです。

sudo apt install php

mbstring等が必要な場合は、sudo apt install php8.x-mbstring等としてください。

Amazon Linux2の場合

Amazon Linux 2の場合、最初からamazon-linux-extrasでPHP8.0を導入できます。ただ、最新版ではありません。

初期状態ではPHP8を導入できないため、まずはリポジトリを導入します。yumが使えるのでcentosと同じと思いきや、そうは行かないようです。

sudo amazon-linux-extras install epel
sudo yum update
# remi 導入
sudo yum -y install https://rpms.remirepo.net/enterprise/remi-release-7.rpm

リポジトリを導入したら、導入できるPHPのバージョン等を確認します。

# amazon linuxやcentos系の場合
yum list | grep php8

次にインストールですが、普通にphpを指定すると旧バージョンされてしまうため、バージョンを明示する必要があります。

sudo yum install --enablerepo=epel,remi,remi-php81 php81-php php81-php-mbstring ...

インストールは完了していますが、この状態ではphp -vではなくphp81 -vのようにしないと呼べないため、シンボリックリンクを貼ります。

sudo ln -s /usr/bin/php81 /usr/bin/php

これでphp -vのように、php81のようにする必要がなくなります。

更新もちょっと面倒になるので、基本的にはamazon-linux-extrasを利用することをおすすめします。

php.ini/etc/opt/remi/php81/php.iniにあります。/etc/php.iniではありません。

動作確認

まずはバージョンを表示できるか確認します。

php -v

これを実行し、バージョンが表示されたら導入できています。

導入したら、実際に簡単なPHPのコードを書いて動かします。

<?
print("Hello, PHP World!");

コマンドライン上で実行して、メッセージが表示されたら完了です!

$ php .\app.php
Hello, PHP World!

まとめ

PHPの特徴は、HTMLに埋め込んでサーバ側で処理したHTMLを利用できることです。埋め込み以外でもサーバ側の機能向きであるため、Webアプリのサーバサイドにしばしば使用されます。

旧バージョンのPHPを導入する場合は簡単ですが、最新版を入れる際は少々面倒なので注意が必要です。

php env thumb

役に立ったらシェアしよう!