パソいろ パソコンやIT関連、周辺機器や開発のことなど

パソコンや開発、Linuxやデータベースのことなど

postgresql10でcreatedb: database creation failed: ERROR: invalid locale name: "ja_JP.UTF8" エラー
システムにja_JPロケールがインストールされていない

rootで
localedef -i ja_JP -c -f UTF-8 -A /usr/share/locale/locale.alias ja_JP.UTF-8

postgresql再起動後、ja_JP.UTF8が使えるようになる
Windows10 64ビットパソコンにApache2.4とPHP7.4とPostgresql9.2をインストール
[apache2.4]

https://www.apachelounge.com/からバイナリをダウンロードしてインストール。
この記事の時点ではhttpd-2.4.41-win64-VS16.zip(64ビット版)。
解凍してできたApache24フォルダをC:\に移動。
そのApache24フォルダのbinにコマンドプロンプト(管理者権限?)で移動して
httpd -k install
上記コマンドを入力すると再起動後、自動起動するようになる。

ブラウザのアドレスバーに「 localhost 」と入れてIt Works!と出れば設定OK。
スタートアップ(C:\Users\ユーザー名\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup)にApacheMonitor.exeのショートカットを入れておけば起動・再起動などが簡単。

[php]
https://windows.php.net/ からダウンロード。
今回はスレッドセーフ版。
php-7.4.0-Win32-vc15-x64.zipをダウンロード。
展開したものをc:\ 直下に移動。



[httpd.conf]
apacheのhttpd.confの編集

Zend Framework を使う場合は LoadModule rewrite_module modules/mod_rewrite.so のコメントアウトをはずす
LoadModule php7_module C:\php-7.4.0-Win32-vc15-x64\php7apache2_4.dll
を追加。
AddType application/x-httpd-php .php を追加
もし、.htm .htmlのファイルにもPHPを組み込むのであれば、
AddType application/x-httpd-php .php .html .htm にする

httpd.conの末尾に
PHPIniDir "C:\php-5.6.16\php.ini"
フルパスで書かないと c:\windowsフォルダのphp.iniを見ようとする
PHPIniDir "C:\php-7.4.0-Win32-vc15-x64\php.ini"
(phpのフォルダ名などは適宜バージョンなどにより置き換えてください)


PHPとPostgreSQLがずっと接続できなくて、DBのドライバーにバグがあるのかと思っていたが、どうもそうではなく、libpq.dllにパスを通す仕様になったらしい。

windowsの環境変数のPATHにPHPのフォルダを追加したらphpinfoでpgsqlが見えるようになった。
php.iniのextension_dirのコメントアウトもはずす。


[Postgresql]

https://www.postgresql.org/download/windows/ からダウンロード。
ポストグレスのwindows版はテキストを手動で書き換える必要がないので、標準の場所(Program Files)にインストール
スタックビルダーは入れない