パーソナルツール
現在位置: ホーム すべてのサービス ホームページ作成・公開(HUC12) センターサーバにおけるPHP利用について

センターサーバにおけるPHP利用について

メディアセンターが提供する以下のサーバでPHPが利用できます。

以下はホームページを作成し、PHPをご利用される方のみお読み下さい!PHPを利用しない方には関係ありません!

2016年12月1日より新たにPHP バージョン 5.6系7.0系の提供を開始します。このことにより、PHP5.4系、5.6系、7.0系の3バージョンが利用できますが、5.4系の提供は2017年9月29日(金)に提供を終了します。なお、5.1系、5.3系の提供は2017年3月30日(木)をもって終了しました。

利用するバージョンにより設定方法が異なるため、以下を参考に各自で設定をお願いします。
    • loginサーバ(PHPプログラミング)
    • homeサーバ(Webサービス [個人アカウント/クラスアカウント/グループサービス] )
    • hostingサーバ(PHPプログラミング/Webサービス)
(注意)

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

お知らせ

  • 2017/3/30 PHP 5.1系・5.3系の提供を終了
  • 2016/12/1 PHP 5.6.28 , PHP 7.0.13 の提供を開始
  • 2015/8/17 PHPの利用方法を更新しました。バイナリのコピーを必要としない方法を掲載しました。
  • 2015/7/29 PHP 5.4.41 の提供を開始
  • 2013/12/5 PHP 5.3.27 の提供を開始

PHPの利用方法

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

それぞれのサーバへのSSHログイン方法は以下を参照してください。

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

  1. サーバ上でプログラムを実行する際に、PHP5.6系の場合、/usr/bin/php56 を指定します。PHP7.0系の場合、/usr/bin/php70 を指定します。
    $ /usr/bin/php56 -v 
    PHP 5.6.28 (cli) (built: Nov 24 2016 17:53:25)
    Copyright (c) 1997-2016 The PHP Group
    Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies

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

センターのWebサービスでは、PHPをCGIモードで動作させる必要があります。 以下のように設定を行うことで、public_htmlフォルダ以下の「.php」ファイルが指定したバージョンのPHPで動作するようになります。

  1. loginサーバまたはhostingサーバにsshでログインし、cdコマンドでpublic_htmlフォルダに移動します。(homeサーバの設定はloginサーバで以下の内容を実施します)
    $ cd ~/public_html
  2. 以下の2行を含む「php.cgi」ファイルを作成します。
    #!/bin/sh
    exec /var/www/cgi-bin/php56-cgi
    ※上記ではPHP5.6系を指定しています。 PHP7.0系にする場合は、php56-cgi の部分を php70-cgi に変更することで、指定できます。
  3. php.cgi」ファイルのパーミッションを、chmodコマンドで0700(または0500)に変更します。
    $ chmod 0700 php.cgi
  4. 「.htaccess」ファイルに以下の2行を追加します(すでに該当する行がある場合は修正します)。 「.htaccess」ファイルがない場合は以下の2行を含む「.htaccess」ファイルを public_html 以下に作成します。
    ※ACCOUNTの部分はそれぞれ対応するアカウント名もしくはグループ名に置き換えてください。
    AddHandler php-cgi .php
    Action php-cgi /~ACCOUNT/php.cgi
    ホスティングドメイン(adminアカウント)の場合は以下のように記述します。
    AddHandler php-cgi .php
    Action php-cgi /php.cgi
  5. 「.htaccess」ファイルのパーミッションを、chmodコマンドで0604(または0404)に変更します。
    $ chmod 0604 .htaccess
  6. 「.htaccess」ファイルを置いたディレクトリ以下の「.php」ファイルがPHP5.6系、PHP7.0系で動作するようになります。「.php」ファイルのパーミッションは0600(または0400)に設定します。

 

上記設定をコマンドで実施するスクリプトも用意してあります。

■ homeサーバの個人アカウント、およびホスティングアカウントの場合
---- .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/php70.cgi php.cgi	# PHP7.0を使う場合
$ cp /home/imctools/php-cgi/php56.cgi php.cgi	# PHP5.6を使う場合
$ cp /home/imctools/php-cgi/php54.cgi php.cgi	# PHP5.4を使う場合

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

 ■ homeサーバのグループサービスの場合
$ sudo -u GNAME -s
$ [sudo] password for ACNAME: (パスワード入力)
上記でグループ権限になります(GNAMEはグループ名です)
$ cd
$ cd public_html
この後は個人アカウントと同じです。

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

public_htmlフォルダに設置した「php.cgi」の内容を以下のように変更することでPHPのバージョンアップ(PHP5.4系からPHP5.6系へ)が可能です(バイナリのコピーは必要ありません)。

#!/bin/sh
exec /var/www/cgi-bin/php54-cgi
                         ↓
#!/bin/sh
exec /var/www/cgi-bin/php56-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.3系を指定していてもPHP5.6系が使用される)。

PHP利用上の注意

センターサーバは、学内利用者でサーバ資源を共有しています。他のユーザに迷惑がかからないよう、以下の点に十分に注意して利用してください。

  • 高負荷のプログラム実行は避けてください
  • 単一プログラムでも高負荷で動作すると、サーバ全体の動作に影響を及ぼします。また一人が複数プログラムを同時動作させる場合でも同様な症状が発生する可能性があります。特に自作プログラムを動作させる場合は、十分なデバッグを行った上で利用するようにして下さい。

  • パーミッションの設定は適切に行ってください
  • ファイルのパーミッションの設定が不適当な場合、プログラムの動作に不具合が生じたり不正アクセス等の標的になる可能性があります。より安定、安全に利用するために、適切なパーミッションを設定してください。パーミッションについては ファイルの属性について をご覧下さい。

  • デーモン等によるプログラム常駐は避けてください
  • 原則としてセンターサーバ上で常駐するユーザプログラムの動作は禁止しています。検証が不十分な自作プログラムを共有サーバ上で動作させると、メモリリーク等のプログラムのバグによりサーバの動作に大きな影響を与える可能性があります。このような行為は避けるようにお願いします。

  • PHPを利用したソフトウェアの管理を適切に行ってください
  • PHPを利用したソフトウェア(CMSやwiki等)を導入する場合、継続的な管理が必要不可欠です。ソフトウェアの発行元サイトを定期的に確認して頂き、脆弱性対策や最新バージョンへのアップデートなど、必要な対策を随時行うようにしてください。

用語説明

  • PHP … PHP (PHP:Hypertext Preprocessor  ピーエイチピー ハイパーテキスト プリプロセッサーを再帰的に略したものです) は、広く使われているオープンソースの汎用スクリプト言語、プログラム言語です。 PHP は、特に Web 開発に適しており、HTML に埋め込むことができます。
  • CMS … コンテンツ管理システム(Contents Management System)の略。Webサイト構築のための専門知識(htmlファイルやCGIプログラミング)がなくても、Webサイトのコンテンツ作成や管理が行える仕組み。
  • 不正アクセス … コンピュータやサーバに対して、正規のアクセス権を保持していないものが不正な手段によりアクセス権を取得し、不正に利用するあるいは利用を試みること。主な手段としては、ID/パスワードの盗用によるなりすましや、ソフトウェアの脆弱性の悪用がある。
  • セーフモード … 共有サーバ上でPHPを動作させる際にセキュリティを高めるために導入された仕組み。セーフモードを有効にすることでPHPの一部機能が制限される。
     PHP:セーフモード  http://php.net/manual/ja/features.safe-mode.php
ドキュメントアクション