• ベストアンサー

WebARENAのDBサービス

現在、レンタルサーバーで、PHPとMySQLを 使ったサイトを運営していますが、 アクセスが増え、too many connectionエラーが 出るようになりました。 今回は自分で調べて解決しましたが、 コンテンツ作成からサーバー管理まで、 すべてを自分でするのは非効率的だと思えてきました。 そこでWebARENAの共用サーバに、DBサービスをプラスして申し込もうかと思うのですが(DBはPostgreSQLになりますが)、 このDBサービスのクオリティはどの程度でしょうか? たとえば同時にDBに接続できるコネクションの数はどのくらいでしょう? WebARENAのサーバはかなり安定している印象がありますが、 実際に使っておられる方のご意見を聞かせて頂ければ嬉しいです。

質問者が選んだベストアンサー

  • ベストアンサー
  • ikspiari
  • ベストアンサー率48% (29/60)
回答No.3

CGI 版の PHP とは、Perl での CGI とほぼ同じと考えてください。 要するに、拡張子が .cgi で cgi-bin ディレクトリ内で Apache とは別プロセスにて動作します。 ですから、mod_php と違いパフォーマンスは劣ります。 また、記述方法も Perl と同じくスクリプトの行頭に #!/usr/local/bin/php4 と記述しなくてはいけません。 バージョンは、先日入れ替えがあり最新版の 4.3.1 です。 一応、PHP3 も使えます。 DB のディスク容量について問い合わせたところ、 「将来的には制限を設ける可能性がある。」との事でした。 ちなみに DB MANAGER はとてもシンプルな作りで、SQL が叩けます。 どうしてもホスティングに拘るとして、 私自身が使った事はありませんが、RapidSite もよさそうな感じがしないでもないです。

参考URL:
http://www.rapidsite.jp/
sunuinu
質問者

お礼

なるほど、Perlと同じ感じになるんですね。 負荷軽減策を講じて、しばらくは 安定して稼働できそうなんですが、 やっぱり専用サーバだと、なにか問題が起こった時に、 解決にかかる時間が結構大きくなってしまうので、 ホスティングで その部分を人に任せられるのはやはり魅力です。 RapidSiteも見てみます。 ありがとうございました。

その他の回答 (2)

  • ikspiari
  • ベストアンサー率48% (29/60)
回答No.2

WebARENA Suite使っています。 DB MANAGERのシステムが見たくて一ヶ月だけDBオプションの契約をしました。 DB MANAGERが見たかったので実際のパフォーマンスまでは解り兼ねますが、 まず、DBの容量は無制限です。 しかし、WebARENA Suiteはセキュリティ上、PHPがCGIで動作します。(mod_phpじゃない。) セキュリティ上の都合とはいえ、PHPの最大の売りが実装されていないのが痛いです。 それと、今時、基本ディスク容量50MBというのもどうかと。 普通に利用する分には何の問題もありませんし、安心感もありますが。 私の結論としては、自由度の低いホスティングの方が効率悪い気がします。

sunuinu
質問者

お礼

ありがとうございます。 容量無制限は魅力的ですね。 CGI版のphpがどんなものなのか、 良くは知らないのですが、機能的・パフォーマンス的に 結構違ってくるものでしょうか。

  • akino4
  • ベストアンサー率18% (35/185)
回答No.1

それ以前に、 PHPが受け付けるDBのコネクション数(ApacheでやってるとApacheの設定依存) と、バックエンドDBの受け付けるコネクション数を調整するのが セオリーでは??? too many connectionが問題じゃなくてそもそもマシンのリソースが もう限界というのなら、まだ話が見えるのですが・・・(^^;

sunuinu
質問者

お礼

アドバイスありがとうございます。 一応、色々なサイトを調べて、 mysqlのmax_connectionsの値を増やしました。 これで解決できているのかどうかは、 またピークにならないと分からないですが… Apacheの設定にも依るんですね。 見直してみます。 たぶん時間をかければ、自分で出来ないわけでは ないと思うのですが、 何からなにまで自分でやるよりも、 得意分野に注力した方が結果が出るんじゃないかと 考えて、 他社の共用サーバーを使ったらどうかな、 と思った次第です…。

関連するQ&A

  • DBサーバーはどれがいいのですか?

    MySQL、PostgreSQL、SQLサーバー、ORACLEデータベースについて 仮に、ユーザが5000万人のSNSを作った場合、MySQLやPostgreSQLで対応できますか? 検索に時間がかかったりするのでしょうか? その場合、DBをORACLEにしたほうがいいのでしょうか? ■費用について もし、DBサーバーを1台設置して、ORACLEにした場合、初期費用や毎月のコストはどのくらいになるのでしょうか? ORACLE対応のDBサーバーの金額等も教えて頂ければ幸いです。 あと、SNSの会員が10万人までだとしたら、 MySQL、PostgreSQL、SQLサーバー、ORACLEのうちだと、どれがコスト的に一番効率的でしょうか?

  • DBサーバとWebサーバの連携について

    お世話になります。 Web,DBサーバを同一サーバ上で動かしていたのですが、今回WebとDBを別々に作ろうと思っております。 ここで、PHPをWebサーバとDBサーバ間で連携させたいのですが、同一でないサーバー上にDBサーバを置く場合、Webサーバ側のPHPインストール時の--with-pgsql=の後のオプションはどのようにすればよいのでしょうか? それともWebサーバ上にDBサーバを作って、PostgreSQLクライアントとして動作させ、DBサーバへアクセス出来るようにしなければならないのでしょうか? 後、DBサーバ側にはPostgreSQLの他にMySQLも動作させたいのですが、同一サーバ上に二つのDBサーバがあるのはやはりセキュリティ的には良くないのでしょうか? 回答の程宜しくお願い致します。

  • PHPからのDB接続がうまくいかない

    mysqlやpsqlからはつながるのに、phpMyAdminやphpPgAdminで同じホスト、ユーザー名、パスワードを指定してもアクセス拒否されてしまいます。 具体的には、仮想化環境にゲストとしてウェブサーバーとDBサーバーの2台があり、2台は別々の仮想ブリッジインターフェイスに接続されていて、仮想化ホストがiptablesでアクセス制限、ルーティングを行っております。 mysqlやphpMyAdmin、psqlやphpPgAdminはどちらも同じウェブサーバーからDBサーバーをホストとして指定してアクセスしています。 DBサーバーのMySQLもPostgreSQLも次のような感じでユーザーを追加してあります。(PostgreSQLはpg_hba.confもMySQLと同じ内容になるよう設定済み) GRANT ALL PRIVILEGES ON *.* TO 'ユーザー名'@'ウェブサーバーアドレス' IDENTIFIED BY 'パスワード'; phpMyAdminに接続先情報を設定して接続しようとすると次のようなメッセージが表示されます。 「#2003 - Can't connect to MySQL server on 'DBサーバーアドレス' (13) サーバが応答しません。」 phpPgAdminでは次のメッセージが表示されます。 「ログインに失敗しました」 ちなみに、すべてのアドレスからの接続を許可するようにSQLサーバーを設定しても同じでした。 どこか設定が抜けているのでしょうか。 宜しくお願いいたします。

  • Heartbeatでの複数サービスの冗長化について

    Heartbeatにおいて、複数のサービスの冗長化をとりたいと考えています。 検討している構成としては、 『DBサーバー1台、Webサーバー1台、予備サーバー1台』 の環境において予備サーバーでDBサーバーのPostgreSQLとWebサーバーのApacheをそれぞれ冗長化させ、 もしWebサーバーのApacheが死んだら予備サーバーのApacheを起動し、 もしDBサーバーのPostgreSQLが死んだら予備サーバーのPostgreSQLを起動させる といった感じです。 HeartbeatはHeartbeat2.1.2とバージョン1系の設定にて行っております。 このような構成は、Heartbeatでは構成可能なのでしょうか? Heartbeatに関する情報を色々と読んでいたのですが、 単一のクラスタ構成に沿った設定ファイルの書き方などしか見つけられず 行き詰まってしまいましたもので。。

  • 物理的に離れたDBに同時に値を記録するには?

    ASPを使用して、物理的に離れているDBサーバーに、 フォームで入力された値、あるいはSession変数などに格納された値を、同時に記録したいのですが、 どうすれば良いのでしょうか? LAN内部に存在する二つのDBサーバーの場合は Server.CreateObject("ADODB.Connection") を使用してそれぞれのDBサーバーのコネクションを 作成すれば大丈夫なのですが、同じLAN内部に 存在しない二つのDB(東京・大阪など)に全く同じ データーを記録したいのですが。。。 一つ目のDBサーバーの存在するASPファイルの処理の中で、 もう一つのDBサーバーにデーターを記録する為には、どのようなコマンドを使用すれば、二つ目の DBサーバー内に用意してあるデータ記録用ASPファイル を実行して、そのデーターを二つ目のDBサーバーに 記録できるのでしょうか?

  • 2つの異なるサーバーのDBを扱う

    現在、Visual Studio 2005(BASIC) を使って、Aのサーバー(IIS)に画像データを貯めるWebプログラムを作成しようとしています。この管理にはMDB形式のDBを使用する予定です。 ところが、このサービスを利用できるユーザーの管理は、Bのサーバー(UNIX MySQL)のDBで管理されています。 このように、Aのサーバーで動作するWebプログラムからBのサーバーのDBに接続することは可能なのでしょうか?

  • Windows2000erverで使えるフリーDBは?

    先日NetMeetingのサーバー構築法について質問した者です。イモヅル式に疑問が湧いてきてしまい、再び質問させていただきます。 Windows2000Serverで使える安価な(あるいはフリーの)DBソフトはありますか? MySQLとかPostgreSQLとかの名前だけは知っていますが、多分Unix、Linux系サーバーにしか使えないのではないでしょうか。 またWindows2000Serverをインターネット上に置いて公開する場合、ライセンス料が高額になると聞きましたが、いくらぐらいなんでしょうか? よろしくご教授をお願いいたします。

  • 別サーバーのDB同士を結合することは可能でしょうか?

    お世話になっております。 MYSQL5を利用しております。 この度、別サーバーのDB同士を結合することは可能かどうか、もし可能であればサンプルを頂けないかと思い、投稿させて頂きました。 [現在使用しているDBサーバ] kagoyaサーバーのDB(MYSQL) sakuraサーバーのDB(MYSQL) [上記DBを結合させるコードを記述したファイルを置くサーバー] kagoyaサーバー 現在kagoyaサーバーにてそれぞれのDBからそれぞれのDBにアクセスして値を取得するところまでは出来ております。二回SQLを書いているのですが、これを一度でどうしても済ませたいと思い、JOINを使用して結合できないか調べてみました。 http://q.hatena.ne.jp/1178781253 http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1113186486?fr=rcmd_chie_detail 上記URLのように、同サーバー内なら可能のようですが、実際にやってみたのですが、「mysql_query($sql, $db);」の第二引数でどちらのDBに接続すればいいかわからず、両方試してみましたがダメでした。(自分が書いたソースを破棄してしまったためうろ覚えなのですが、返ってきたresource はresource #13でした。) 結局できるのかできないのかわからないままの状態です・・・。もしわかる方がいましたら、どうかご教授下さい!よろしくお願い致します!

  • PHPが使える無料サーバについて

    質問が重複してたらすいません。 PHP(~4)くらいと、 DB(MYSQLかPOSTGRESQL) が使える無料サーバでよいのがあったら 教えてください。 ひとつ、借りてるのがあるのですが MYSQLの日本語がどうしても とおらないので(ここはあきらめました) よろしくお願いしす。

    • 締切済み
    • PHP
  • DB接続ができなくなって困っています!

    いつも参考にさせていただいております。 今回、自宅のPCに構築した開発環境のDBに、急に接続できなくなりました。 ==================================== 【開発環境】※ASP環境 OS :windows 8 IIS:8.0 DB :(1)MySQL 5.5.32   ※「mysql-connector-odbc-5.2.5」もインストール済。  (2)Access2013 ==================================== 先日まで、問題なくDBに接続できていましたが、寝ぼけて何かの設定を変えてしまいました。 ※恥ずかしながら、気づいたら設定変更後で何の設定を変えたのか不明です。。。 すると、今まで正常に接続できていたMySQLとAccessが、以下のエラーで接続できなくなりました。 ==================================== 【MySQL接続】 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Driver Manager] データ ソース名および指定された既定のドライバーが見つかりません。 【Access接続】 Microsoft OLE DB Provider for ODBC Drivers エラー '80004005' [Microsoft][ODBC Driver Manager] 指定された DSN には、ドライバーとアプリケーションとのアーキテクチャの不一致が含まれています ==================================== なお、接続箇所のロジックは以下となります。 ==================================== 【MySQL接続】 Set oCn = Server.CreateObject("ADODB.Connection") oCn.Open UDL_FILE(※1), "", "" ※1 上記「UDL_FILE」は、以下の内容を設定しているUDLファイルを読み込んでいます。 ------------------------ [oledb] ; Everything after this line is an OLE DB initstring PROVIDER=MSDASQL;DRIVER={MySQL ODBC 5.2 Unicode Driver};SERVER=localhost;USER=hogeU;PASSWORD=hogeP;DATABASE=hoge; ------------------------ 【Access接続】 Set poCnMdb = Server.CreateObject("ADODB.Connection") poCnMdb.Open DNS(※2), "", "" ※2 上記「DNS」は、ODBCデータソース アドミニストレーター(32bit版)で登録したシステムDSNです。 ------------------------ ドライバー:Microsoft Access Driver(*.mdb) ------------------------ ==================================== MySQLやODBCドライバーの再インストールを試みましたが、上記エラーが解消されません。 自業自得なのは重々承知しておりますが、復旧できなくて大変困っています。 お忙しいところ申し訳ありませんが、復旧方法のご教授をお願いいたします。 以上です。