ググってもなかなか正解がみつからない,サーバ設定関連の Tips
主として,ディストリビューション ( Fedora Core ) に固有の know & how
- apache
- apache が .htpasswd ファイルを参照するときは,それが置かれているディレクトリに cd して行なっているようだ.
というのも,.htpasswd ファイルが置かれているディレクトリに実行属性がないと,BASIC 認証が通らないので ・・・
- apache + php + postgreSQL
- FC ( FC2 と FC3 で確認 ) のデフォルト設定では,apache の実行ユーザは nobody ではなく apache となっている.
よって posgreSQL の接続許可 ( pg_hba.conf で設定 ) は,ユーザ 「 apache 」 に対して行なうこと.
- FC ( FC2 と FC3 で確認 ) では,apache に php モジュールがデフォルトで組み込まれている. これは /etc/httpd/conf.d/ の下に置かれている *.conf を /etc/httpd/conf/httpd.conf がインクルードすることに依っている。
/etc/httpd/conf.d/php.conf のなかで php モジュールの LoadModule を行なっているので,/etc/httpd/conf/httpd.conf のなかで LoadModule すると,apache 起動の際に 「 module php4_module is already loaded, skipping 」 なる warning が表示される.
- 上記は,SSL についても同様である.
- さらに RedHat 系 ( FC2 と FC3 でも確認 ) では,pgsql.so は /etc/php.d/ の下に置かれている pgsql.ini 中の記述によりデフォルトで php に組み込まれる.
( /etc/php.ini には,「 packaged extension modules are now loaded via the .ini files found in the directory /etc/php.d; these are loaded by default. 」 と記述されている )
だから,/etc/php.ini のなかで extension = pgsql.so などと書く必要なし. 書けば逆に,postgreSQL モジュールの二重ロードにより pg_connect ( ) すらまともに動作しない.
( この pg_connect ( ) が失敗する際に 「 Too many open links 」 などという当を得ないエラーを吐くのも,混乱を招いている )
- /etc/php.ini を書き換えたら,apache を restart しないとそれが反映されない.
- iptables
- iptables で ftp のデータコネクションを masquerade させるためには,カーネルモジュール 「 ip_conntrack_ftp 」 と 「 ip_nat_ftp 」 が必要.
これらをロードするためには,/etc/sysconfig/iptables-config ファイルに IPTABLES_MODULES="ip_conntrack_ftp ip_nat_ftp" の行を記述して,iptables を再起動する.
- smb.conf
- Create されるファイルのパーミッション = <DOS ファイル属性を unix パーミッションに変換した値> ∩ <create mask 値> ∪ <force create mode 値>
- Create されるディレクトリのパーミッション = <DOS ディレクトリ属性を unix パーミッションに変換した値> ∩ <directory mask 値> ∪ <force directory mode 値>