KUSANAGI上でnginxでmailmannoCGIを動かしたい

TOP Forums 使い方全般(Fixing KUSANAGI) KUSANAGI上でnginxでmailmannoCGIを動かしたい

KUSANAGI上でnginxでmailmannoCGIを動かしたい

Tagged: , ,

Viewing 1 reply thread
  • Author
    Posts
    • #110
      terakin
      Participant

        皆様

         こんにちは。寺薗と申します。 
         やや困ったことに出くわしてしまいましたので、ご相談させてください。

         うちのサイトはWordPressをメインにしつつあるのですが、実は一般的なサーバーとしても運用していて、その中にCGIを利用しなければならないものが出てきました。はっきり申し上げますとmailmanです。
         mailmanはウェブインタフェースがPythonをベースとしたCGIプログラムで、メール管理はこのウェブインタフェースからしかできません(その他の操作は割とコマンドラインなどで対応できるのですが)。
         なお、管理用のツールは/usr/lib/mailman/cgi-bin以下に存在しています。

         今回いろいろなウェブを参考にして、以下のようなやり方をとってみました。
        ・既存のKUSANAGI環境に影響を与えないように、ポート8080をベースとしてmailman専用の環境を構築
        ・こちら (http://blog.asial.co.jp/838) を参考にspawn−fcgiをインストール。
        ・php-fastcgiを/usr/bin以下に作成。

        #!/bin/sh
        if [ grep -c "nginx" /etc/passwd = “1” ]; then
        FASTCGI_USER=nginx
        elif [ grep -c "www-data" /etc/passwd = “1” ]; then
        FASTCGI_USER=www-data
        elif [ grep -c "http" /etc/passwd = “1” ]; then
        FASTCGI_USER=http
        else
        # Set the FASTCGI_USER variable below to the user that
        # you want to run the php-fastcgi processes as

        FASTCGI_USER=
        fi

        /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9001 -C 6 -u $FASTCGI_USER -f /usr/bin/php-cgi

        ポイントですが、いちばん最後の行で本来はポート9000のところ、これがすでに使用されていたため、9001都への区しています。
        ・この状態でサービス起動
         sudo systemctl start php-fastcgi (正常に終了)
        ・こちら (http://jhshi.me/2014/11/16/mailman-configuration-with-nginx-plus-fastcgi-plus-postfix-on-ubuntu/) を参考に、Mailman用のconfファイルmailman.confを/etc/nginx/conf.d以下に作成

        server {
        server_name example.jp;
        listen 8080;

        root /usr/lib/mailman/cgi-bin;

        location /mailman {
        root /usr/lib/mailman/cgi-bin;
        fastcgi_split_path_info (^/mailman/[^/]+)(/.*)$;
        fastcgi_pass unix:///var/run/fcgiwrap.socket;
        include /etc/nginx/fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param PATH_INFO $fastcgi_path_info;
        }

        location /mailman-icons {
        alias /usr/lib/mailman/icons;
        }

        location /pipermail {
        alias /usr/lib/mailman/archives/public;
        autoindex on;
        }
        }

        ・これでnginxを再起動(reload)して試してみているのですが、確かにサイトアクセスはしているものの、ずっとアクセスしっぱなしでmailman管理画面が出てこない、という状態になってしまっています。CGIとしてうまく動作していないようです。

         他の設定もいろいろ試してみたのですが、どうもKUSANAGI側ですでに設定されているFastCGIの設定とかち合っている可能性があります。ただ、そこに手を入れるのはあまりに危険なので、なるべく触れずに…というところです。
         なお、サーバーのメインの設定(ポート80を使用)は別途別ファイルで管理しており、そちらは問題なく稼働しています。
         また、「ずっとアクセスし続ける」という症状がファイアウォールによるものの可能性があるため、念のためfirewalldの稼働を止めて試してもみたのですが、結果は変わりません。

         あまりKUSANAGIの利用方法としてCGIを使う(PHP以外の)というやり方は考えにくいかと思いますが、実は既存コンテンツでも一部CGIをまだ利用しているものがありますので、CGIが稼働できるとありがたい、という面はあります。

         私もnginxの管理に慣れていないという面もありますが、何かヒント、あるいは解決法になります点をご教示いただけますと大変助かります。何卒よろしくお願いいたします。

      • #111
        nullpopopo
        Moderator

          お世話になります。濱田です。

          上記の情報のみでの判断となってしまいますが、
          /usr/bin/php-fastcgi
          で TCP 9001番ポートを指定されておりますが、一方で
          /etc/nginx/conf.d/mailman.conf
          では、UNIXドメインソケットを指定されておりますので、この不一致が原因で正常にアクセスできないのでは、と推察します。

          以上、ご確認いただけますでしょうか。

      Viewing 1 reply thread
      • You must be logged in to reply to this topic.

      Next article

      フォーラムについて