メディアセンターが提供する下記のサーバで PHP が利用できます。
- 利用可能な PHP のバージョンは以下です。
- PHP 8.3 (推奨) / 8.2 / 8.1
- [サポート終了] PHP 8.0 / 7.4 / 7.2 / 5.6
- PHPを利用するためには、利用するサーバ毎にバージョンを設定する必要があります。
(注意)
最近、PHPで動作するCMS(コンテンツ管理システム)の脆弱性を狙った不正アクセスが報告されています。 CMSおよび利用プラグインの利用にあたっては、発行元のサイトを定期的に確認して頂き、常に最新バージョンを保つようにしてください。
PHPの利用方法
下記では、loginサーバにSSHログインして操作する方法を説明しています。ファイルの作成・編集はSFTP/SCPソフト等を使用することもできます。
サーバへのログイン方法は、下記を参照してください。
- loginサーバへのSFTP/SCP接続 (Windows/Mac)
- loginサーバへのSSHログイン (Windows / Mac)
WebサービスでPHPを利用する場合
メディアセンターのWebサービスでは、public_html フォルダ直下に「php.cgi」ファイルを作成し「php.cgi」ファイルのパーミッションを指定するのと、.htaccess を修正することでPHPが動作するようになります。
[loginサーバにSFTP/SCP で接続してファイル転送で作成]
- PC上でテキストファイル「php.cgi」を作成します。内容は、この2行です。
文字コードUTF-8(BOM無し)、改行コードLFで作成してください。#!/bin/sh
exec /var/www/cgi-bin/php83-cgi - ファイル転送ソフトでloginサーバにSFTP/SCP接続し、「php.cgi」ファイルを、public_html フォルダの直下に置いてください。パーミッションは、700 に変更してください。
- 次に、public_html フォルダの直下にある「.htaccess」ファイルに下記の2行を追加します(すでに該当する行がある場合は修正します)。 「.htaccess」ファイルがない場合は、下記の2行を含む「.htaccess」ファイルを public_html 直下に作成します。.htaccess のパーミッションは、604 にしてください。
※ACNAME の部分はあなたの個人アカウント名に置き換えてください。AddHandler php-cgi .php
Action php-cgi /~ACNAME/php.cgi - 「.htaccess」ファイルを置いたディレクトリ以下の「.php」ファイルが PHP8.3で動作するようになります。「.php」ファイルのパーミッションは、600 に設定します。
[loginサーバにログインしてコマンドで作成]
- loginサーバにsshでログインし、cd コマンドで public_htmlフォルダに移動します(homeサーバの設定はloginサーバで下記の内容を実施します)。$ はプロンプト(コマンド入力するところを表す)なのでコピーしない。
$ cd public_html
- 下記の2行を含む「php.cgi」ファイルを echo コマンドで作成します。
一行づつコピー&ペーストしてエンターキーで実行する。$ はコピーしない。$ echo -e '#!/bin/sh' > php.cgi
$ echo -e 'exec /var/www/cgi-bin/php83-cgi' >> php.cgi
以下のmoreコマンドで内容を確認します。
$ more php.cgi
(以下の2行が表示されたらOK)
#!/bin/sh
exec /var/www/cgi-bin/php83-cgi※上記では PHP8.3 を指定しています。
- 「php.cgi」ファイルのパーミッションを、chmodコマンドで 700 に変更します。
$ chmod 700 php.cgi
- 「.htaccess」ファイルに下記の2行を追加します(すでに該当する行がある場合は修正します)。 「.htaccess」ファイルがない場合は、下記の2行を含む「.htaccess」ファイルを public_html 以下に作成します。以下のコマンドは、スクリプトでログインしているアカウントで、自動でアカウント名を挿入して追加するものです。
$ /home/imctools/php-cgi/htaccess.sh >> .htaccess
この操作で .htaccess に朱書き部分が追加されます$ more .htaccess
AddHandler php-cgi .php
Action php-cgi /~ACNAME/php.cgi
(ACNAMEはあなたの個人アカウント名が自動で入力されます) - 「.htaccess」ファイルのパーミッションを、chmodコマンドで 604 に変更します。
$ chmod 604 .htaccess
- 「.htaccess」ファイルを置いたディレクトリ以下の「.php」ファイルが PHP8.3で動作するようになります。「.php」ファイルのパーミッションは、600 に設定します。
PHPプログラミングで利用する場合
サーバ上でプログラムを実行する際に、PHP8.3 の場合、/usr/bin/php83 を指定します。
$ はプロンプト(コマンド入力するところ)です。
#(例)バージョン確認のコマンド
$ /usr/bin/php83 -v
PHPのバージョンアップ方法
すでにpublic_htmlフォルダに「php.cgi」を設置済みの方は、「php.cgi」の内容を以下のように変更することでPHPのバージョンアップ(PHP7.4からPHP8.3へ)が可能です(バイナリのコピーは必要ありません)。PHP8.3 で動作しない場合は、PHP8.2 や PHP8.1 をお試しください。それでも動作しない場合はPHPプログラムが古いので最新のものに置き換えをご検討ください。
#!/bin/sh
exec /var/www/cgi-bin/php74-cgi
↓
#!/bin/sh
exec /var/www/cgi-bin/php83-cgi
※ ファイル名が、「php5.cgi」だった方は、「php.cgi」へファイル名を変更してください。
同時に、.htaccess にphp5-cgi や、php5.cgi と書かれてる方は、5 を削除して以下のように修正してください。
AddHandler php5-cgi .php
Action php5-cgi /~ACCOUNT/php5.cgi
↓
AddHandler php-cgi .php
Action php-cgi /~ACCOUNT/php.cgi
※セキュリティ上の理由等により、メディアセンターにおいて強制的にバージョンアップを行う場合があります(例:PHP5.6系を指定していてもPHP8.1系が使用される)。
PHP利用上の注意
メディアセンターのサーバは、学内利用者でサーバ資源を共有しています。他のユーザに迷惑がかからないよう、下記の点に十分に注意して利用してください。
- 文字コードと改行コードに気をつけてください
- 文字コードで UTF-8 を使う場合は、BOMなし にしてください。改行コードは、LF にしてください。
- 高負荷のプログラム実行は避けてください
- 単一プログラムでも高負荷で動作すると、サーバ全体の動作に影響を及ぼします。また一人が複数プログラムを同時動作させる場合でも同様な症状が発生する可能性があります。特に自作プログラムを動作させる場合は、十分なデバッグを行った上で利用するようにして下さい。
- パーミッションの設定は適切に行ってください
- ファイルのパーミッションの設定が不適当な場合、プログラムの動作に不具合が生じたり不正アクセス等の標的になる可能性があります。より安定、安全に利用するために、適切なパーミッションを設定してください。パーミッションについては ファイルの属性について をご覧下さい。
- デーモン等によるプログラム常駐は避けてください
- 原則としてセンターサーバ上で常駐するユーザプログラムの動作は禁止しています。検証が不十分な自作プログラムを共有サーバ上で動作させると、メモリリーク等のプログラムのバグによりサーバの動作に大きな影響を与える可能性があります。このような行為は避けるようにお願いします。
- PHPを利用したソフトウェアの管理を適切に行ってください
- PHPを利用したソフトウェア(CMSやwiki等)を導入する場合、継続的な管理が必要不可欠です。ソフトウェアの発行元サイトを定期的に確認して頂き、脆弱性対策や最新バージョンへのアップデートなど、必要な対策を随時行うようにしてください。
用語説明
- PHP … PHP (PHP:Hypertext Preprocessor ピーエイチピー ハイパーテキスト プリプロセッサーを再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語、プログラム言語です。 PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。
- CMS … コンテンツ管理システム(Contents Management System)の略。Webサイト構築のための専門知識(htmlファイルやCGIプログラミング)がなくても、Webサイトのコンテンツ作成や管理が行える仕組み。
- 不正アクセス … コンピュータやサーバに対して、正規のアクセス権を保持していないものが不正な手段によりアクセス権を取得し、不正に利用するあるいは利用を試みること。主な手段としては、ID/パスワードの盗用によるなりすましや、ソフトウェアの脆弱性の悪用がある。
- セーフモード … 共有サーバ上でPHPを動作させる際にセキュリティを高めるために導入された仕組み。セーフモードを有効にすることでPHPの一部機能が制限される。PHP5.4で廃止。