6

mod_fastcgi を fpm で動作させることに成功しました。これにより、fpm プール定義を介してスクリプトを実行する user:group を設定できます。ただし、たとえば、mod_fastcgi を介して実行される Python スクリプトに類似した代替手段がないため、suexec を使用して、選択した user:group を使用して mod_fastcgi を介して任意のスクリプトを実行する方法を学習しようとしています。

私はこの作業構成から始めています:

#/etc/apache2/sites-available/test1
<VirtualHost *:80>
    ServerName test1.slothcompany.net
    DocumentRoot /var/www/test1

    LogLevel Debug
    ErrorLog /var/www/test1/error.log

    <Directory /var/www/test1/>
        Options Indexes Includes FollowSymLinks ExecCGI
        AllowOverride All
        DirectoryIndex index.php
        AddHandler php5-fastcgi .php
        Action php5-fastcgi /php5.fcgi
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

#/var/www/test1/php5.fcgi
#!/bin/bash
PHPRC="/var/www/test1/php.ini"
PHP_FCGI_CHILDREN=5
export PHPRC
export PHP_FCGI_CHILDREN
exec /usr/bin/php5-cgi

正しいパスを示すphpInfo()を入れました。/var/www/test1/index.phpphp.ini

suexec次に、 iを有効にするには:

  • インストール済みapache2-suexec:sudo apt-get install apache2-suexec
  • アクティブ化mod_suexec:sudo a2enmod suexec
  • 変更されたファイルのパーミッション:sudo chown -R michele:michele /var/www/test1
  • 次の行を vhost 構成に追加しました。SuexecUserGroup michele michele
  • サイトを再アクティブ化し、Apache を再起動しました。sudo a2dissite test1 && sudo a2ensite test1 && sudo service apache2 restart

user:groupmichele:micheleはシステムに存在します。実行すると、以前とまったく同じように出力がtest1.slothcompany.net表示され、代わりに出力されます。phpInfo()echo exec('whoami');www-datamichele

sudo /usr/lib/apache2/suexec -Vログ ファイルは にあるはずですが/var/log/apache2/suexec.log、そのようなファイルは存在しません。次に、Apache は、suexec ラッパーのアクティブ化を通知として error.log ファイルに記録する必要があることを知っていますが、error.log にはそのような通知も見つかりません。したがって、何らかの理由で suexec がまったく起動していないと思われます。

ここで、呼び出しが成功したかどうかを判断するために suexec が行うチェックのリストを読みましたが、これらのチェックの結果を確認する方法がわかりません.. suexec ログ ファイルに書き込む必要があると書かれていますが、このファイル見えるように、作成されることはありません。

それで、私は何を間違っていますか?

どうもありがとうございました。

4

1 に答える 1