PHPについて
(いずれもCGI版、コマンドライン版をご提供)
- PHPを利用するには
- webからのご利用
- PHPのバージョン切り替え方法
- コントロールパネルのアカウント一覧から、コンテンツ管理アカウント
(ftpアカウント)に指定されているアカウントの設定を開いて「web/CGIの設定」
にてPHP5.3、PHP5.4、PHP5.5、PHP7.0、PHP7.2、PHP7.4の切り替えが行えます。(PHP5.6、PHP7.1は未提供)
- 切り替えを行うと、コンテンツディレクトリに.htaccessが作成され次のような記述が追加されます。
Action php-script /.system_cgi/php74.cgi (PHP7.4の場合)
- 一部のコンテンツディレクトリのPHPバージョンを変更したい場合
一部のディレクトリ以下の階層のみ変更したい場合は、.htaccess ファイルを作成して次のいずれかの記述を行ってください。
◎ PHP7.4の場合 Action php-script /.system_cgi/php74.cgi ◎ PHP7.2の場合 Action php-script /.system_cgi/php72.cgi ◎ PHP5.4の場合 Action php-script /.system_cgi/php54.cgi ◎ PHP5.3の場合 Action php-script /.system_cgi/php53.cgi ※PHP7.2は2020年11月30日で開発チームのサポートが終了する予定です。 ※PHP5.4はCentOS7のパッチを流用して2024年の6月まで長期サポートの予定です。 (サポート期間は変更する場合がございます) ※PHP5.3はすでに開発チームでのサポートが終了しております。
- コマンドラインから利用するPHP
コマンドラインや.forwardなどからPHPを利用する場合は /usr/local/bin/php もしくは特定のPHPのバージョン毎のパス名を指定します。 スクリプト(バッチファイル)として利用する場合はスクリプト冒頭で次のように php.iniを指定してください。#! /usr/local/bin/php74 -c/home/55/abc1200/.php/php.ini (php7.4の場合)
※-c の後に空白を入れないでください。 - PHPのバージョンと指定するパス名は次のとおりです。
バージョン パス PHP5.4 /usr/local/bin/php
※設定により実行するPHPバージョンを変更可PHP7.4 /usr/local/bin/php74 PHP7.2 /usr/local/bin/php72 PHP5.4 /usr/local/bin/php54 PHP5.3 /usr/local/bin/php53
- /usr/local/bin/phpは2017年2月1日からはPHP5.4として動作するように変更いたしました。
- /usr/local/bin/phpの実行PHPバージョン切り替えについて
- /usr/local/bin/php はお客様のホームディレクトリ直下に php-cli-version.txt というファイル名でバージョン番号を書き込むことで任意のバージョンで動作するように変更することができます。
- バージョンとphp-cli-version.txtに書き込む番号の対応は次のとおりです。
PHPバージョン 記入する番号 PHP7.4 74 PHP7.2 72 PHP5.4 54 PHP5.3 53
- PHPの環境設定(php.ini)
- デフォルトではコンテンツ管理アカウントのディレクトリ直下に .php というディレクトリが作られ、その中にphp.iniが置かれています。
- php.iniの内容は即時に反映されます。
- 一部のディレクトリ以下でのみ変更したい場合、専用のphp.iniを作成・指定することができます。
- 専用のphp.iniの指定はCGI版の場合.htaccessファイルを設置して、次の記述を行ってください。
setenv PHPRC /home/11/abc1200/example.jp/mycontents ← php.iniを置いたディレクトリ
- コマンドライン版をご利用の場合は、先の説明のとおり-cオプションで php.iniをご指定ください。
- PHP5.3以降ではphp.iniに次の記述が必要です。
date.timezone = Asia/Tokyo
- PHP5.4以降ではphp.iniに次の記述が含まれている場合、エラーになり実行できません。
allow_call_time_pass_reference register_long_arrays register_globals magic_quotes_gpc magic_quotes_runtime magic_quotes_sybase
PHP5.4ではregister_globalsやmagic_quotesの機能自体が廃止されております。 詳しくはこちらのページもご参照ください。 - PHPのバージョンによりモジュールによっては「extension=」の記述を
削除する必要がある場合がございます。モジュール一覧中で「本体組み込み」
になっているものはextension=でのロードは行わないように変更が必要です。
このページ下のモジュール一覧でご確認ください。
- CGI版とモジュール版の違い
当社サーバのPHPはいずれもCGI版としてご提供しております。
apacheモジュールとして動作する場合との違いをまとめました。
- モジュール版(※1) CGI版 実行権限 httpd(システム権限) お客様アカウント php.iniの設定変更 不可 可能 phpの設定変更 htaccess(※2) php.ini(※3) 実行時のメモリー制限 8MB(一律に制限) php.iniで変更 可能(※4) BASIC認証 利用できます 利用可能(※5)
※1 当社サーバではモジュール版はご提供いたしておりません。
※2 当社サーバではhtaccessにphp_value/php_flagsがありますとInternal Server Errorになります。
※3 前項「PHPの環境設定」をご覧ください。 ※4 最大値はCGIの実行制限(ご契約プラン毎に異なります)によります。
※5 CGI版でのBASIC認証利用につきましては本ページの「phpでBASIC認証行う」をご覧ください。
- webからのご利用
- ご利用いただけるPHPのモジュール
赤色のモジュールは 利用する場合にはお客様のphp.iniの末尾に次のように記述を追加してくださ い。
例) extension=json.so extension=pgsql.so
青色のモジュールはphp.iniへの記述追加は不要です。
モジュール
解説
備考
GD(gd.so)
グラフィックライブラリGD
- ImageMagick(imagick.so)
画像処理関数
PHP5.4、PHP7.0、PHP7.2でご利用いただけます。 mcrypt(mcrypt.so)
暗号化ライブラリmcryptの利用
- hash/mhash
チェックサム・ハッシュ関数
- xml
XMLのサポート
PHP5.5以降では本体組み込みになりました。 DOM(dom.so)
XML用のAPI
- xmlreader(xmlreader.so)
XMLのサポート
試験的導入
xmlwriter(xmlwriter.so)
XMLのサポート
試験的導入
simplexml(simplexml.so)
XMLのサポート
試験的導入
xmlrpc (xmlrpc.so)
XMLを使用したリモート実行機能
- spl
PHPのための標準的インタフェースやク ラス
- socket(sockets.so)
通信用socketのサポート
- FTP(ftp.so)
FTPプロトコルのサポート
- curl(curl.so)
各種通信プロトコルのサポート
- openssl(openssl.so)
暗号通信ライブラリopensslのサポート
- mbstring(mbstring.so)
日本語のサポート
- mecab(mecab.so)
日本語の形態素解析エンジン
php7.4からは提供中止 iconv(iconv.so)
文字コード変換ライブラリ
- pcre
perl互換正規表現のサポート
- Zlib(zlib.so)
圧縮ライブラリのサポート
- filter(filter.so)
入力データの検証用モジュール
- session(session.so)
セッション機能のサポート
- PostgreSQL(pgsql.so)
PostgreSQLデータベース
- MySQL(mysql.so)
MySQLデータベース
PHP7.0以降では廃止されました。mysqliをご使用ください。 MySQLi(mysqli.so)
MySQL改良版拡張モジュール
PHP5.4ではphp.iniへの追加必要。PHP7.xでは追加しなくともご利用いただけます。 SQLITE
SQLITEデータベースのサポート - PDO(pdo.so) データベースアクセス用インタフェース
(pdo_mysqlなどで使用) ※2- pdo_sqlite(pdo_sqlite.so)
SQLITEをPDOインタフェースから利用する ためのドライバ(sqlite.soの関数とは使い 方が異なります) - pdo_mysql(pdo_mysql.so) MySQLをPDOインタフェースから利用するた めのドライバ(mysql.soの関数とは使い方 が異なります) 試験的導入
pdo_pgsql(pdo_pgsql.so) PosqgreSQLをPDOインタフェースから利用するた めのドライバ(pgsql.soの関数とは使い方 が異なります) 試験的導入
bcmath(bcmath.so)
任意精度数学関数
- json(json.so)
JavaScriptオブジェクトのシリアライズ機能
- gettext(gettext.so)
国際化プログラムの作成支援ライブラリ
- Calendar(calendar.so)
日付変換のサポート
- zip(zip.so)
ZIPのサポート
- opcache(opcache.so)
OPcache
プログラムをキャッシュして高速化します。PHP7.0以降でご利用いただけます。 intl(intl.so)
国際化関数
PHP5.4、PHP7.0、PHP7.2でご利用いただけます。
試験的導入 → 予告なくシステムから取り除かれる場合のある機能
php5.3までのSQLite(sqlite.so)は他にspl.soとsimplexml.soが必要です。
extension=simplexml.so extension=spl.so extension=sqlite.so
のように依存するモジュールを先に記述してください。
PDOモジュール(pdo_mysql.soなど)も他に依存するモジュールがあります。
extension=simplexml.so extension=spl.so extension=pdo.so extension=pdo_sqlite.so (MySQLの場合はpdo_mysql.so)
のように依存するモジュールを先に記述してください。
OPcacheを使用することでPHPのプログラムをプリコンパイルした状態でファイルに残してキャッシュとして利用することができます。これによりPHPプログラムの実行が高速になります。
PHP7.0/PHP7.2でOPcacheを利用する場合はphp.iniに次の記述を加えてください。zend_extension=opcache.so opcache.file_cache = /home/33/abc1200/.php/tmp opcache.file_cache_only = on
- opcacheは zend_extension= で読み込み設定します。extension=ではありませんのでご注意ください。
- /home/33/abc1200 の部分はお客様のホームディレクトリに置き換えてください。
- opcache.file_cacheで指定したディレクトリにプリコンパイルされたプログラムが書き出されます。
- php7.4の機能詳細(phpinfo)は こちら をご覧ください。
- php5.4の機能詳細(phpinfo)は こちら をご覧ください。
- php7.2の機能詳細(phpinfo)は こちら をご覧ください。
- fastcgiによる高速化実行 PHP7.4/PHP7.2/PHP7.0でのOPcacheによるプログラムのプリコンパイル、キャッシュの他、fastcgiを使用してプロセスの半常駐化させることによって応答性能を向上させることが可能です。
fastcgiによるPHP実行高速化はこちらのページをご覧ください。→ [fastcgiによるPHP実行高速化]
PHPにはフォームから入力した文字列の文字コード(漢字コード)を自動的に変換する機能があります。正しく漢字を扱う場合は次のようにphp.iniファイルでPHPの漢字コードを指定してください。- 文字コードについて
【php.iniへの記述例】
[mbstring]
mbstring.http_input = auto
mbstring.encoding_translation = off ← 文字化け対策ではoffを推奨mbstring.internal_encoding = EUC-JP ← プログラムに合わせて指定します
mbstring.http_output = EUC-JP ← プログラムに合わせて指定しますmbstring.script_encoding = EUC-JP ← プログラムに合わせて指定します
※ 文字コードは EUC-JP、SJISなどが指定できます。
次のようにphp.iniへの記述の追加と、セッション情報保存用ディレクトリの作成が必要です。- セッション(sessionモジュール)のご利用について
セッション情報保存用のディレクトリを作成してください。お客さまのホームディレクトリが /home/11/abc1200 の場合は、この下などに /home/11/abc/1200/.php/tmp のような名前でディレクトリ(フォルダ)を作成してください。ディレクトリのパーミッションは700にしてください。
php.iniに次の内容を追加してください。
-
【php.iniへの記述例】
session.save_path = /home/11/abc/1200/.php/tmpディレクトリはお客さまのホームディレクトリに合わせてください。
ディレクトリはあらかじめ作成しておいてください。
-
- コントロールパネルでCGI版PHP/SuExecへの環境変更を行った場合はこの設定が自動的に行われ、ディレクトリも作成されます。
モジュール版PHPのようにCGI版PHPでBASIC認証を行いたい場合は次のようにhtaccessで設定を追加することでIISなどで利用されている「HTTP_AUTHORIZATION」環境変数を使用した認証(※)が可能になります。- phpでBASIC認証行う
設定は次のように.htacessに記述を追加してください。
RewriteEngine On RewriteCond %{HTTP:Authorization} ^(.*) RewriteRule ^(.*) - [E=HTTP_AUTHORIZATION:%1]
HTTP_AUTHORIZATION変数に対応していないプログラム(PHP_AUTH_USER/PHP_AUTH_PWのみを使用するもの)に関してはプログラムに一部修正が必要です。
こちらのサンプルプログラムを参考にしてください。 BASIC認証サンプルプログラム
※pukiwikiやphpMySQLAdminなどがHTTP_AUTHORIZATION変数に対応しておりますので修正は不要です。
※コントロールパネルでPHP5を使用するように設定した場合は自動的にこの設定が行われます。
index.html など拡張子が.phpでないファイルもPHPのファイルとして扱いたい場合は htaccessファイルを作成して、その中に次のように記述してください。- .htmlや.htmのファイルをPHPとして実行する
AddHandler php-script .php .htm .html
※モジュール版PHPとは設定方法が異なりますのでご注意ください。
※この設定はサーバに本来必要のない負荷をかける場合がありますので、必要なディレクトリのみに限定してご利用ください。
- その他
- PHPに関するサポートはできませんのでお客様の責任においてご利用ください。
- バージョンアップにともなって大きな変更が発生する場合には事前にお知らせページに掲載いたしますのでお客様自身で影響をご検討いただき、必要な修正を行っていただく必要があります。大きな変更がない場合には特にお知らせはいたしません。