Symfoware

Symfowareについての考察blog

Arch Linux + nginx + php-fpm + Postgresqlな環境を作成する

Arch LinuxにPostgresqlをインストールしてみました。
Arch LinuxにPostgresqlをインストールする


このデータベースにphpから接続してみたいと思います。





nginx + php-fpm



以前、nginx + php-fpm + MySQLの環境を構築してみたことがあります。
Arch Linuxにnginx + php-fpm + mysqlの環境を作成する

これを参考に、nginx + php-fpmの環境を作成します。





pacmanでnginx、php-fpm、php-pgsqlをインストール。


# pacman -S nginx php-fpm php-pgsql





次に、php.iniを編集します。


# vi /etc/php/php.ini





編集するのは、
open_basedirに/etc/nginx/html/を追加。
extensionのpdo_pgsql.soとpgsql.soのコメントをはずし、有効にする。
という2箇所です。


#/etc/nginx/html/を追加
#open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/
open_basedir = /etc/nginx/html/:/srv/http/:/home/:/tmp/:/usr/share/pear/


#コメントをはずして有効化
extension=pdo_pgsql.so
extension=pgsql.so





編集がおわったら、php-fpmを起動しておきます。


# rc.d start php-fpm






次は、nginx.confの編集です。


# vi /etc/nginx/conf/nginx.conf





編集箇所の抜粋は以下の通り。


    server {
        listen     80;
        server_name localhost;

        #charset koi8-r;

        #access_log logs/host.access.log main;

        location / {
            root html;
            index index.html index.htm index.php;
        }



        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ \.php$ {
            try_files     $uri =404;
            root         html;
            fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include        fastcgi_params;
        }
    }






nginx.confの編集が終わったら、nginxを起動します。


# rc.d start nginx





phpinfoを表示させて動作確認します。


# vi /etc/nginx/html/info.php





内容はこんな感じ。


  1. <? phpinfo(); ?>



http://[サーバーIP]/info.phpにブラウザでアクセスするとphpinfoが表示されます。
pdo_pgsqlとpgsqlがちゃんと読み込まれてます。

62_001.png




簡単な接続サンプルを書いて、phpからPostgresqlに接続できるか試して見ました。


  1. <html>
  2. <head><title>PHP TEST</title></head>
  3. <body>
  4. <?php
  5. $conn = "host=localhost dbname=test user=pguser password=pwd";
  6. $link = pg_connect($conn);
  7. if (!$link) {
  8.     die(pg_last_error());
  9. }
  10. print('Connect OK!<br>');
  11. pg_close($link);
  12. ?>
  13. </body>
  14. </html>





ちゃんと接続できているようです。

62_002.png






【参考URL】

NginxでのCakePHPサイト設置

PostgreSQLへ接続




関連記事

テーマ:データベース - ジャンル:コンピュータ

  1. 2012/05/07(月) 22:01:04|
  2. PostgreSQL
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Arch Linux + Postgresqlで障害管理ツールMantisを動かす | ホーム | Postgresql 9.1のCOPYでファイルの文字コードを指定する>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
https://symfoware.blog.fc2.com/tb.php/943-87544176
この記事にトラックバックする(FC2ブログユーザー)