• 締切済み

PHP4とpostgreSQLについて

始めまして、私はi-mode用のランキングサイトを運営しております。 どなたかご回答いただけますと幸いです。どうぞよろしくお願いいたします。  昨年末、レンタルサーバーへ依頼しプログラムを作成し新たにPHP4より postgreSQLを呼び出す形でサイトをリニューアルしたのですが、サーバーが急に 重くなり正常な運営が困難な状態になっております。 サイトは現在TOPページ3万PV/日ほどでリニューアル前はこの倍はありました。 登録サイト数は380ほどです。 現在のサーバースペックですがCPUはP3の700M、メモリ768MBです。OSはLinux、 wwwサーバーはApacheです。 DBサーバーを別に用意すればよいと助言されたのですが、本当にそれでよいのか、なにかプログラム的に問題があるのではとも思いまして他の方のご意見も参考に したほうがよいと判断してご相談させていただいております。 私にはまだPHPとpostgreSQLの知識が浅くこのような情報でよいのかもわかりませ んがどうぞよろしくご回答くださいませ。 サイトURLは下記に記載いたします。 http://web-iranking.com/rank.php

  • CGI
  • 回答数2
  • ありがとう数1

みんなの回答

  • alfeim
  • ベストアンサー率58% (114/195)
回答No.2

PostgreSQLのテーブルにはvacuumをかけてますか? データベースは更新作業も該当部分を書き換えずに新たなデータを追記して古いデータに無効マークをつけるだけで済ませます そうやって運用していくうちにデータベースのクエリー速度が落ちていくので定期的にごみ掃除が必要になります というわけでvacuumdbを使ってみてください

回答No.1

 まずは、原因をログ等から調べてください。  DBサーバーに接続できないほどクライアントが多いなら、「Too many client...」等のエラーが帰ってきてるはずです。他には、システム状態を見て 空きCPU、Memoryが多いようでしたら、Apacheの「MaxClients」「MaxSpareServers」を増やすことにより対応できると思います。  また、PHPではなく、Apacheのモジュールを使うことによりプログラム的な 処理は早くなるはずです。  後トップページではなく、ランキングに使用するページへのアクセスが増えて いるということはありませんか?  その辺のApacheのログ等ももう少し調べてみてはどうでしょう?

関連するQ&A

  • PHPとPostgreSQLとの連携

    今、WindowsXPでPHPとPostgreSQLを連携 させたいのですがなかなか上手く行きません。 どなたか、分かる方がいれば宜しくお願いします。 環境 OS→Windows HomeEdition Apache→Apache HTTP Serber2.0.59 PHP→PHP4.4.4 PostgreSQL→PostgreSQL8.1.4 です。 PostgreSQLの中にtest_dbというデータベースをつくり setuzoku.phpから接続できるかどうかのif文を作り確認 していますが、何度やっても接続失敗と出ます。 <?php $con = pg_connect("user='postgres' dbname='test_db' password='grjtf'"); if (! $con) { print "接続失敗"; } else { print "接続成功"; } ?>

  • PHPとPostgreSQLがつながらない

    PHPとPostgreSQLの初心者です。PHPとPostgreSQLを 使ってプログラムを作ろうと思ってます。 開発はPC上で、PostgreとPHPサーバはLinuxマシンに あります。まず最初にPostgreのインストールですが、 Fedora Core5 に着いていたPotsgreSQL8.1.3を入れ ました。設定としては、 postgresql.confでは listen_address='localhost,192.168.1.3' としました。192.168.1.3はLinuxマシンのローカル アドレスです。 pg_hba.confではconnectionのところで host all all 192.168.1.3 255.255.255.0 tyust としました。その後 host all all 0.0.0.0 255.255.255.0 tyust とかいろいろ試してみました。 一方PHPの方はほとんど何も設定をしていません。と いうか設定方法がよくわかりません。 以上の環境で、簡単なPHPプログラムをPostgreにつなげないで実行したところ問題なく動きました。 20行くらいのPHPを書いてみましたが、特に問題はあ りませんでした。 PostgreSQLの方は、PCからSSHで入って、接続テスト 用のDBを作り、テーブルも3つ作って、データを数件 Insertしました。 いよいよPHPからDBにつなぐことになったのですが、 プログラム上では以下のように書きました。 <?php    print "こんにちは"; $conn = pg_connect ('host=192.168.1.3 port=5432 dbname=phptest user=postgres');    print "こんばんは"; if (!$conn) { print "PostgreSQLへの接続に失敗です"; exit(); } else ・ ・ して実行したところ、「こんにちは」は表示されま したが、「こんばんは」以下はは表示しませんで した。$conn の先には進んでいないようです。 当然ここに書いた以外にも設定を変えてみましたが、 つながりませんでした。よろしくお願いします。

    • 締切済み
    • PHP
  • PHP+PostgreSQLを使ってPDFファイル管理DBを作成したい。

    現在、PostgreSQL+PHPでPDFファイル管理DBを作成したいと思っています。 開発環境は、 Solaris8 Apache1.3.12 PostgreSQL7.1.3 PHP-4.1.0 で行っています。 今、PostgreSQLのラージオブジェクトを使用してPDFファイルをDBに登録したいと考えております。 ここで、質問なのですがPDFファイルをDB登録するときにライブラリ等必要なものがありますでしょうか? また、PHP+PostgreSQLの環境で、PDF管理DBのサンプルがあったら教えていただけないでしょうか? よろしくお願いいたします。

    • 締切済み
    • PHP
  • PostgreSQL

    これから、PHP4&PostgreSQLでサイト開発を行いたいと 考えています。 一応、RED HAT Linuxのサーバーは設置してありますが、 作業の効率(使い慣れているだけ・・)を考えると、windows上で開発して、サーバーに移植したいと考えています。 WINDOWSマシンにはApacheをインストールしてあります。 PHP4については、Win32バージョンがあることは確認しましたが、PostgreSQLについては、Win32バージョンは存在しているのでしょうか? 書籍にはあるらしき事が記載されていましたが、どこからダウンロードできるかが分かりません。 もし、ご存知の方がいらっしゃれば、そのサイトを教えて頂けませんでしょうか? 宜しくお願い致します。

  • phpのインストールについて

    phpで別サーバ(DBのみ)のpostgresqlに接続しようとした場合、接続できませんでした。 php-pgsql?かpgsql.soが無いのが原因ぽいのですが、検索してもyumでインストールとかばかりでソースからインストールした際の記述がみつけられませんでした… phpインストール時にpostgres(php-pgsql?)を有効するにはどうしたらいいのでしょうか? ちなみにpostgresqlとphpが同一サーバ内にインストールされているサーバ(現環境)からこのDBのみのサーバにTCP/IPで接続はできました。 OS:CentOS4.5(共に) apache2.2.6 php:5.2.5 postgres8.2.5 php cofigureオプション ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex よろしくお願いします。

    • ベストアンサー
    • PHP
  • CからPHP・PostgreSQL

    はじめまして。 私は、学校でC言語を中心に2年間勉強をしました。 そして、今年の四月就職したのですが、その会社ではPHPで仕事をさせられています。 全くしたことがなかったので、五ヶ月たった今でも表面的なところしか理解しておらず、apache?postgreSQL?などがなんのことかもほぼ理解しておりません。 仕事場で勉強することはできないので、家で勉強をしようと思うのですが、何を用意すればいいのかまったくわかりません。 上記のことが練習勉強できるようにするには、家で何をそろえればいいのでしょうか? 僕の理解度としては以下のとおりです。 (1)apache = サーバ? (2)postgreSQL = データベース? (3)PHP = web専用のプログラミング言語? 最後に?がついているのはこんなもんかな?としてしか理解していないからです。 よろしければいろいろご教授お願いいたします。

  • PHPとPostgreSQLにおいて

    こんばんわー。質問させて下さい。 PostgreSqlでテーブルを作成しました。 ---------------------------- [test_db] id:integer name:varchar(128), number integer ---------------------------- 上記のテーブルの構成をPHPプログラム内で取得 したいのですが、ご存知の型いらっしゃいますか? ちなみにPHP4です。 とりあえず浮かんだ考えは、 一度レコードをSELECTしてそれぞれのフィールドの型と大きさを取得する方法なんですが、レコードが存在していないとできないと思います。 すみませんが、宜しくお願い致します。

    • ベストアンサー
    • PHP
  • WinowsXPでPHPからPostgreSQLにアクセスできません。

    Windows上でPHPを利用してPostgreSQLにアクセスを試みているのですが Fatal error: Call to undefined function pg_connect() in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\dbtest.php on line 13 というエラーが出てアクセスできません。 調べていくうちにnfo.phpのConfigure Commandに"--with-pgsq"がないのが原因とはわかったのですが、下記開発環境での[php.ini],[httpd.conf]の設定をいろいろ試しましたが(勿論再起動も)info.phpのConfigure Commandに"--with-pgsq"が表示されないのです。 どなたか、アドバイスしていただけることがありましたらよろしくお願いします。 開発環境 OS:WindowsXP SP2 PHP:5.26 Apache:2.2 PostgreSQL:8.2

    • 締切済み
    • PHP
  • PHPからPostgreSQLにアクセスするには?

    PostgreSQL-Ver8.0.2のWindows版をWindowsXP上に導入し、pgAdmin IIIなどを使いなんとか自前のユーザ名、パスワードを設定して、データベースおよびテーブルを作成しました。そしてコマンドプロンプト上では、Linux環境と似たようなコマンドラインからの入出力ができるようです。 ところが、PHPにDBアクセスのルーティンを埋込み実行するとエラーになります。おそらく、PostgreSQLサーバー起動時のパラメータ設定およびパスの通し方に問題があると考えられるのですが、どなたかご存知の方お知恵を貸してくださいませんか? エラーメッセージは下記の通りです。 Fatal error: Call to undefined function: pg_connect() in C:\Apache2……

  • Postgresqlが接続できない

    環境はxp、apache2、php5、Postgresql8.2です。 ただ今PHPとPostgresqlの勉強をしています。 PHP5で作成したプログラムでPostgresqlへアクセスするのですが,全く応答がありません。 ブラウザで表示後、ソースを見ると Parse error: syntax error, unexpected T_VARIABLE in C:\Program Files\Apache Group\Apache2\htdocs\sample\aa.php on line 10 というエラーが表示されます。 aa.phpの10行目は $d_base = pg_connect("user=postgres password=0000 dbname=test"); と、データベースに接続しています。 どこがおかしいのか ご教示して頂けたら幸いです。

専門家に質問してみよう