レンタルサーバーでPHP †
レンタルサーバーでPHPってどうよ †
この章ではPHPが使えるレンタルサーバーをいくつか紹介します.
読者の方の中で,PHPに興味があってもなかなかどの会社が自分に最適か分からないものですよね.
今回は筆者の経験上で「自分が業者を選ぶなら?」という視点で気になる項目をピックアップし,レンタルサーバー業者の方にアンケートの協力を頂きました.
共有サーバで気をつけなければいけないこと †
共有サーバを契約する上では下記のことに気をつけなければいけないでしょう.
- 使用できるディスク容量
- 最近は共有サーバでも比較的多くのディスクを使用できることが多いですが,自分が運用したいサイトが必要なディスク容量に足りるかどうかの確認は必要になります.
また,ディスク容量がウェブサイト用とメールボックス用を共有する業者もあります.
こういった場合はより余裕のある容量のプランを検討する必要があるでしょう.
- ファイルアップロードできるファイルサイズ
- ファイルアップロードを必要とする場合,ファイルのアップロードがそもそもできるか,またどの程度までのサイズのファイルをアップロードできるか確認する必要があるかもしれません.
- 他の契約者の情報が見えないか
- 共有サーバの場合,ひとつのサーバに複数のユーザが存在することになります.
最近はVPSなどとよばれる仮装マシンを用意し,他のユーザから隔離された環境を作る共有サーバが多くなってきました.
しかし通常の共有サーバよりコストが高い場合が多く,またよりマシン負荷が高くなりがちです.
そういったサーバの必要性やいっそ専有サーバの検討などをする方がいい場合もあるかもしれません.
- データベースの負荷
- XOOPSなど比較的データベースへのアクセスが多いアプリケーションを使う場合,まれに「データベースの負荷が高すぎる」と警告をされる場合があると聞きます.
自分が使用するアプリケーションがどれ位の負荷をかけるか,予想されるページビューなどをあわせて事前に検討しておくと運用後のトラブルを軽減できるかもしれません.
- 転送量制限
- ウェブの閲覧は当然サーバからブラウザまでデータが転送されていくのですが,多くの業者で転送量の制限があります.
もしより多くのページビューが想定される場合や大きなファイルのアクセスが見込まれる場合,この転送量制限がゆるい,あるいは無制限のところを選ぶ必要があるかもしれません.
占有サーバで気をつけなければいけないこと †
占有サーバを契約する上では共有サーバの場合ほどのポイントはありませんが,下記のことに気をつけなければいけないでしょう.
- メンテナンスはされているか
- 共有サーバでもメンテナンスがどれ位されているかということは重要な要素ではありますが,占有サーバの場合,基本的に契約者がメンテナンスを行わなければならない場合が殆どでしょう.
ですから,サーバのメンテナンスについて注意する必要がより必要になってきます.
基本的に占有サーバは「自分が設定したとおり」に動作します.設定も業者の規約内であれば何でもできるので,基本的に契約者・管理者の能力が高くある必要があるともいえます.
アンケート項目 †
アンケートの項目はほぼPHPに特化したものになっています.
過不足も多少あるとは思いますが,業者の比較検討が可能なレベルにあると思います.
共通 †
- 会社名
- サービス業者名です.
- 会社URL
- サービス業者のURLです.
- サービス名
- 提供するサービスプラン名です.業者によっては複数プランの提供があります.
- サービス案内URL
- サービスについての紹介があるページのURLです.
- サービス概要
- サービスについて,おおまかな概要です.
- サービス全体のアピール
- サービスのアピールポイントです.
- 標準価格*1
- PHPを使用する上で必要な料金価格です.PHPの提供が有料の場合はその料金も含んだ金額になっています.
- サーバーを共有する顧客数は?
- 共有サーバーの場合の一台のサーバーでの顧客数です.
この数が多いほど負荷は高くなりがちになると考えられます.
- バックボーンはどの程度か?
- サーバーが接続されているバックボーン(ネットワーク)の回線速度です.
この数字が大きいほど基本的にはスループットが出ると考えられます.
- PHPへの取り組み
- サービス提供にPHPを組み込むにあたって気をつけていることや意気込みなどを書いていただきました.
- その他レンタルサーバー全体についてへの取り組み
- PHPだけに限らず,レンタルサーバーを提供するに当たって気をつけていることや意気込みなどを書いていただきました.
PHPサポート †
PHPをサポートする上でのバージョンや保守体系など基本的なことを質問してみました.
- 対応するPHPのバージョンは?
- サーバーを借りたときにインストールされているPHPのバージョンについてです.
ただし,サーバーの導入時期によって若干バージョンが違う可能性もあると思われます.
また,特に商用ディストリビューションなどを採用している場合,バグや脆弱性の対策を数値的なバージョンアップではなく,パッチ当て*2を行っている場合がありますので,必ずしも「最新のバージョンじゃないから危険」というわけではありません.
- PHPの提供形態は?
- PHPは実際の運用には一般的に「DSO*3」「CGI」「CLI」3つの種類が存在します。
通常「DSO」形式で提供される場合が多いですが,3種類の形式それぞれの挙動や特徴は若干違います*4ので,気になる方は公式サイトにて確認することをお勧めします.
- PHPのアップデートは積極的に行っているか?
- PHPも年に数回バージョンアップが行われます.
それに追従しているかということです.
また,アップデートも新しいPHPが公開されたり,脆弱性の公開がされてから迅速に対応されるか? などについてです.
- PHPスクリプトについて問題へのサポートは行っているか?
- 顧客がPHPスクリプトを独自でインストールした場合のサポートを行うかどうかを質問してみました.
残念ながらやはり殆どの場合,顧客責任になるようです.
- mbstringモジュールをサポートしているか?
- PHPでは日本語を扱う場合,mbstringモジュール*5が使えるかどうかで状況ががらっと変わってきますので,対応についての質問をしてみました.
- GDモジュールをサポートしているか?
- GDモジュール*6は主に画像を扱うモジュールです.グループウェアでのチャート表示やフォトアルバムアプリケーションのサムネイル作成などで使用されることが多いようです.
こういった場合にGDモジュールが使用できるかどうかは重要なポイントになります.
PHP設定 †
業者によってはセキュリティの面からPHPの機能を制限している場合があります.
また,共有サーバではroot権限がないために設定が細かく変更できない場合があります.
ここではその辺りについての質問をしてみました.
- ファイルアップロードは許可しているか?
- 業者によってはセキュリティ強化のためにファイルアップロードを許可していないところがあります.
そもそもファイルアップロードが必要ない場合はそういった業者を選定することはいいことですし,必要な場合は残念ながら選択から外す必要が出てきます.
- ファイルアクセス・コマンド実行に制限をかけているか?
- こちらもセキュリティの面からファイルの読み書きや,コマンド実行に制限をかけているかどうかの質問です.
特に共有サーバの場合,この辺りの制限がかかっている場合があります.
- php.ini(ないし相当)を直接編集できるか?
- PHPの設定の大本であるphp.iniを修正できるかどうかの質問です.
php.iniの修正ができるかどうかでどこまでPHPの挙動を変更できるかが変わってきます.
ある程度の設定はhttpd.confや.htaccess*7,またはini_set()関数*8で変更できる場合もありますが,php.iniでしか変更できない場合があります.
自分がどこまでの設定ができなければいけないのか,PHPの公式マニュアル*9を参照しながら検討してみるといいでしょう.
PEAR・PECL †
ここでは最も有名なPHPのライブラリ集合体であるPEAR*10が標準で使用できるか,どこまで使用できるか? といった質問です.
殆どの場合,PEARは標準で組み込まれていないか,PHPに付属のものだけが使用できるといった状態のようです.
PEARはただのPHPスクリプトの集合体です.
その為,その気になればFTPなどで後からインストールすることも可能です.
また,業者によるPEARのインストールはバージョン管理が自分でできないともいえるので,業者に任せるか自分で管理するかも合わせて検討してください.
PECLとはphp.netで公式に配布しているPHPの拡張モジュールです.
PECLはPHPスクリプトではなく,C言語などで記述されたネイティブバイナリのため,PEARと比較して高速に動作します.
PHP 5だとPDOなど有名です*11.
ただし,PECLはその成り立ち上ftpアップロードで対処ということがなかなか困難です.
現状PECLがなければ困る場面は殆どありませんが,あえて質問をしてみました.
- PEARは使用できるか?
- そのままの質問です.PEARが使用できるかどうかです.
- コアパッケージ以外で使用できるPEARパッケージはあるか?
- PEARのコアパッケージ以外のものがインストールされているかどうかの質問です.
- 使用できるPECLパッケージはあるか?
- そのままの質問です.PECLが使用できるかどうかです.
その他のライブラリ †
- その他のライブラリは標準で使用できるか?
- PHPには有名なライブラリが多く存在します.例えばJpGraph*12・ADODB*13やSmarty*14などです.
これらはただのPHPスクリプトなので,PEARなどと同様FTPでインストールできますが,元々インストール済みの方が楽な場合もあります*15.
そういった視点から質問をしてみました.
- なんらかのアクセラレータ系は組み込まれているか
- PHPはアクセスの度にスクリプトを解析し,実行されます.
その為処理速度がどうしても遅くなりがちです.
そういった問題に対処する一つの手段にアクセラレータの導入があります.
アクセラレータは夢否と頃ではZendOpimizer*16・ionCube Accelerator*17・eAccelarator*18などがあります.
データベース †
PHPの既存アプリケーションはデータベース(以後RDBMS)と連動するものが殆どです.
また,新規開発を行ううえでも昨今ではRDBMSとの連動ができなければならないケースも非常に増えています.
ここではRDBMSについての質問をしてみました.
- 連動できるRDBMSは何があるか?
- PHPと連動できるRDBMSに何を提供しているか質問してみました.
最近はMySQLを提供している業者が増えてきています.
ただし提供しているからといって必ずしも基本料金だけで利用できるとは限らないので注意してください.
- 使用できるデータベース数はどれ位あるか?
- ここでいうデータベース*19とはいわゆる「データ」のことです.
通常データベースは使用目的毎に分けることが多いく*20,「使用できるデータベース数イコール使用できるアプリケーション数」ともいえる場合があります.
ただし,既存のアプリケーションでは場合によってはデータベース内のテーブルの接頭語*21を任意に指定できるようにし,ひとつのデータベースでの混在時のテーブル名の衝突を回避している場合もあります.
- 使用できるアカウント数はどれ位あるか?
- 通常RDBMSへの接続には「アカウント名*22」と「パスワード」の組を用いて認証を行います.
この組を何セットもてるかということです.
セキュリティの観点から使用目的毎にこの認証情報を分けるほうが好ましい場合があるので,質問してみました.
- 使用できるディスク容量はどれ位あるか?
- データベースで使用できるディスク容量です.
通常RDBMSのデータベースは容量制限が困難なので,システム上制限がかけられない場合があります.
しかし何らかの方法で制限されている可能性があるので,使用用途によってどれくらいの容量が必要かを見積もり,業者選定をする必要があります.
PHPアプリケーション †
オープンソースで提供されているPHPアプリケーションなどが標準で提供されているかを質問してみました.
昨今だと日本ではXOOPSが有名でしょう.
自分が使いたいアプリケーションが最初からインストールされていれば,運用開始までのインストールや設定などの負荷を軽減できる場合があります.
- XOOPSなどのアプリケーションの容易な組み込みに対応しているか?(インストーラーが用意されているなど)
- なんらかの手段でアプリケーションを簡単にインストールできるかどうかの質問です.
- それに対応しているアプリケーションになにがあるか?(アプリケーション名でも「掲示板」などの機能名でも)
- どういった機能のアプリケーションが用意されているかといった質問です.
ただし気をつけることは,これらのインストールされたPHPアプリケーションの設定や運用のサポートは行われていない場合が多いということです.
ウェブサーバー関連 †
ここでは基本的なウェブサーバに立ち戻った質問をしています.
特にサーバの管理権限がない場合,ウェブサーバの細かい制御に.htaccessを使用することは多く,注意しておくべきポイントになるのではないでしょうか?
- ウェブサーバーに何を使用しているか?(可能な限りバージョンまで)
- 多くの場合,ウェブサーバにはapacheを使用していると思います(今回のアンケート結果もすべてapacheでした)
しかしWindowsのレンタルサーバの場合,IISなどが使用されている場合もあります.
もし使用しているウェブサーバがapacheの場合,バージョン1.3系列と2.0系列で設定が微妙に違うので気をつけてください.
- httpd.conf(ないし相当)を直接編集できるか?
- httpd.confはapacheの設定ファイルです.殆どの場合,何らかの管理権限がなければ直接設定ファイルを編集をすることはできません.
そのため,共有サーバではほとんどの場合,コントロールパネルで変更できるといったレベルになるでしょう.
- .htaccess(ないし相当)を使用できるか?
- .htaccessと呼ばれるファイルは,設置ディレクトリ以下でのapacheの動作を制御するファイルです.
一番多く使われるんはディレクトリに認証をかけるときでしょう.
業者によってはこのファイルはセキュリティ上の観点から使用できないようになっている場合があります.
自分が使用しようとしている環境が.htaccessファイルが使用できなければいけないか気をつけてください.
- .htaccess(ないし相当)でPHPの設定ができるか?
- php.iniが編集できない場合でもいくつかの項目が.htaccessで設定できる場合があります.
ここでは.htaccessでPHPの設定をすることが許可されているかどうか質問してみました.
- .htaccess(ないし相当)でアクセス制限ができるか
- はじめに書いたとおり,.htaccessは認証などのアクセス制限に仕様されることが最も多いでしょう.
ということでそれについて質問してみました.
サーバー機能関連 †
ここではサーバーとしての基本的な項目を質問してみました.
- サーバーOSは何か
- 読んで字のごとくサーバーOSに何を使用しているかです.
- sshやtelnetなどのコマンドラインは使用できるか?
- サーバーで作業を行っていると,何かとサーバー上で作業をしたくなる,する必要が出てくる場合があります.
そういったときにsshやtelnetなどでサーバーにログインできるかできないかは重要な要素になってきます.
そういった面から使用できるかどうか質問してみました.
- mail()やsendmailコマンドを用いたメール送信を許可しているか?
- サーバー業者によってはspam発信を防止するため,mail()関数やsendmailコマンドが使用できなくなっているところがあります.
また,そういったコマンドを使用せずに直接TCP/IPのソケットを開いてメール送信をすることができない業者も存在します.
それが問題にならない場合はいいのですが,例えばグループウェアなどを設置したい場合には非常に大きな問題になるでしょう.
そういった意味で質問をしてみました.
- 管理用コントロールパネルは用意されているか?
- 理論上サーバーを一番きめ細かく制御できるのはコンソールでのコマンドなどを用いたメンテナンスです.
しかしコントロールパネルを用いることでその設定時間を短縮したり,サーバー管理の知識が乏しい場合の補助をしてくれる場合があります.
ここではそういった便利なコントロールパネルが提供されているかどうかを質問してみました.
その他の環境関連 †
ここではその他若干マニアックなことを質問してみました.
マニアックといってもスクリプトの暗号化やSSLの対応はビジネス的には気になるところです.
また,BBSなどで作成したファイルは一般ユーザーから簡単に削除できない場合があり,そういう問題の回避サクを持っているか? といった意味の質問などもしてみました.
- スクリプトの暗号化環境を提供しているか?
- PHPのスクリプトは通常ただのテキストファイルなので,テキストエディタで参照すれば誰でもロジックが読めます.
これは場合によっては暗号化をどうやっているか? パスワードは何か? などがばれてしまう可能性をはらんでいます.
これはスクリプト言語全体にいえることですが,バイナリファイルにしなくても実運用できてしまうメリットがデメリットになる瞬間です.
幸いPHPの場合,いくつかの方法でスクリプトの暗号化が可能です.
ここではそういったスクリプトの暗号化についてサポートしているかどうか質問してみました.
- SSL環境をサポートしているか?
- コマースサイトの作成など,個人情報や重要事項を含んだサイトを構築する上ではSSLは欠かせません.
ここではそういった用途用にSSL三京の構築をサポートしているかどうかを質問してみました.
- imagemagickなどコマンドベースの画像編集は可能か
- PHPでは一般的にGDライブラリを用いて画像の加工を行います.
しかしUNIX・Linuxなどの環境ではもう一つimagemagickというソフトウェアを用いた画像の加工を行うケースがあります.
変換後の画質や元素材に対しての得て不得手もそれぞれ変わってくる場合があることからimagemagickが使用できるかどうか質問してみました.
- PHP(apache)が作成したファイルの削除サポートはあるか?
- 前述の通り,一般的にウェブ経由でPHPが作成したファイルはFTPやroot権限など管理権限がないアカウントでのファイル操作では削除することができません*23.
そのため,場合によってはこの問題を業者にサポート依頼して削除してもらわなければならない場面もあるかもしれません.
そういった観点からこの質問をしてみました.
- 独自ドメインに対応しているか?
- 廉価のサービスではサブドメイン(「<好きなどメイン>.example.com」といったような形式)でのみサービスを受けられる場合があります.
一般的に企業サイトの場合ほとんどそういったドメインでの運用は行いません.
そのため,こういった用途では独自ドメインを使用することができるかどうかがわからなければなりません.
そういった観点からこの質問をしてみました.
- バーチャルドメインに対応しているか?
- 通常共有サーバーのサービスに契約した場合、使用できるドメイン数はひとつです.
これがいくつもてるかという質問です。
占有サーバは技術的には使用したい数だけバーチャルドメインは保持できますが,SSLを使用するときはSSLの枚数分グローバルIPアドレスが必要になることに注意してください.
終わり †
近年常時接続が当たり前になり,いわゆるブロードバンドネットワークが流行っているおかげで自宅サーバでPHPを用いている人も多いと思います*24しかし,電源の問題や,保守他をまじめに検討すると,レンタルサーバを使用することは時として非常に有効です.是非このアンケートなども参考に業者選定をしていただければと思います.
また,日本PHPユーザ会のウェブサイト*25にも鮮度が古いものが多いですが,レンタルサーバなどが紹介されていますので,参考にしてみるといいでしょう.
最後に今回アンケートに協力いただきました企業および担当者の方々にお礼を申し上げたいと思います.
みなさまのご協力がなければ完成することができませんでした.
ありがとうございます.