メディアセンターが提供する下記のサーバで PHP が利用できます。
・利用可能な PHP のバージョンは以下です。

  • PHP 8.1 (推奨)
  • PHP 8.0
  • PHP 7.4 (サポート切れ)
  • PHP 7.2 (サポート切れ)
  • PHP 5.6 (サポート切れ)

・PHPを利用するためには、利用するサーバ毎にバージョンを設定する必要があります。

    • loginサーバ(PHPプログラミング)
    • homeサーバ(Webサービス [個人アカウント/クラスアカウント] )

(注意)
最近、PHPで動作するCMS(コンテンツ管理システム)の脆弱性を狙った不正アクセスが報告されています。 CMSおよび利用プラグインの利用にあたっては、発行元のサイトを定期的に確認して頂き、常に最新バージョンを保つようにしてください。

 

PHPの利用方法

下記では、loginサーバにSSHログインして操作する方法を説明しています。ファイルの作成・編集はSFTP/SCPソフト等を使用することもできます。
サーバへのSSHログイン方法は、下記を参照してください。

  • loginサーバへのSSHログイン (Windows / Mac)

PHPプログラミングで利用する場合

サーバ上でプログラムを実行する際に、PHP8.1の場合、/usr/bin/php81 を指定します。PHP8.0の場合、/usr/bin/php80 を指定します。

$ /usr/bin/php81 -v
PHP 8.1.10 (cli) (built: Aug 30 2022 16:09:36) (NTS gcc x86_64)
Copyright (c) The PHP Group
Zend Engine v4.1.10, Copyright (c) Zend Technologies
with Zend OPcache v8.1.10, Copyright (c), by Zend Technologies

 

WebサービスでPHPを利用する場合

メディアセンターのWebサービスでは、public_htmlフォルダ以下に「php.cgi」ファイルを作成「php.cgi」ファイルのパーミッションを指定することでPHPで動作するようになります。

  1. loginサーバにsshでログインし、cdコマンドでpublic_htmlフォルダに移動します(homeサーバの設定はloginサーバで下記の内容を実施します)。
    $ cd ~/public_html
  2. 下記の2行を含む「php.cgi」ファイルを作成します。
    #!/bin/sh
    exec /var/www/cgi-bin/php81-cgi
    ※上記ではPHP8.1を指定しています。 PHP8.0にする場合は、php81-cgi の部分を php80-cgi に変更することで、指定できます。
  3. 「php.cgi」ファイルのパーミッションを、chmodコマンドで 700 に変更します。
    $ chmod 700 php.cgi
  4. 「.htaccess」ファイルに下記の2行を追加します(すでに該当する行がある場合は修正します)。 「.htaccess」ファイルがない場合は、下記の2行を含む「.htaccess」ファイルを public_html 以下に作成します。
    ※ACCOUNTの部分はそれぞれ対応するアカウント名に置き換えてください。

    AddHandler php-cgi .php
    Action php-cgi /~ACCOUNT/php.cgi

  5. 「.htaccess」ファイルのパーミッションを、chmodコマンドで 604 に変更します。

    $ chmod 604 .htaccess

  6. 「.htaccess」ファイルを置いたディレクトリ以下の「.php」ファイルが PHP8.1で動作するようになります。「.php」ファイルのパーミッションは、600 に設定します。上記設定をコマンドで実施するスクリプトも用意してあります。

—- .htaccessの修正
$ cd
$ cd public_html
$ /home/imctools/php-cgi/htaccess.sh >> .htaccess
この操作で.htaccessに追加されます

$more .htaccess
AddHandler server-parsed .html
AddHandler php-cgi .php
Action php-cgi /~ACNAME/php.cgi (ACNAMEは個人アカウント名です)

朱書き部分が追加されたところです。

—– php.cgiの作成
$ cd
$ cd public_html
利用するバージョンに合わせてコピーをしてください。
$ cp /home/imctools/php-cgi/php81.cgi php.cgi # PHP8.1を使う場合

パーミッションを700に変更します。
$ chmod 700 php.cgi

 

PHPのバージョンアップ方法

public_htmlフォルダに設置した「php.cgi」の内容を以下のように変更することでPHPのバージョンアップ(PHP7.2からPHP8.1へ)が可能です(バイナリのコピーは必要ありません)。PHP8.1 で動作しない場合は、PHP8.0をお試しください。それでも動作しない場合はPHPプログラムが古いので最新のものに置き換えをご検討ください。

#!/bin/sh
exec /var/www/cgi-bin/php72-cgi

#!/bin/sh
exec /var/www/cgi-bin/php81-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で廃止。