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.php
php.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-data
michele
sudo /usr/lib/apache2/suexec -V
ログ ファイルは にあるはずですが/var/log/apache2/suexec.log
、そのようなファイルは存在しません。次に、Apache は、suexec ラッパーのアクティブ化を通知として error.log ファイルに記録する必要があることを知っていますが、error.log にはそのような通知も見つかりません。したがって、何らかの理由で suexec がまったく起動していないと思われます。
ここで、呼び出しが成功したかどうかを判断するために suexec が行うチェックのリストを読みましたが、これらのチェックの結果を確認する方法がわかりません.. suexec ログ ファイルに書き込む必要があると書かれていますが、このファイル見えるように、作成されることはありません。
それで、私は何を間違っていますか?
どうもありがとうございました。