欲しい訴訟実行プログラムDebian Stretch(Apache 2.4.25)でPHPを使用する。
Debianパッケージの基本モジュールセットcgid
とphp7.0
。
これはVirtualHost
テストシステムで使用されたブロックです。
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
ScriptAlias /cgi-bin/ /var/www/cgi-bin/
<Directory "/var/www/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Require all granted
</Directory>
SuexecUserGroup testuser testuser
</VirtualHost>
/var/www/cgi-bin
これはプロセスのUIDを印刷する単純なPerlスクリプトでうまく機能します。1000
suexecが正しく機能していることを確認するためにスクリプトが印刷されます。私も予想される行を得ますsuexec.log
。
[2017-07-28 11:54:27]: uid: (1000/testuser) gid: (1000/testuser) cmd: moo.cgi
しかし、同様のPHPスクリプトを使用すると、suexec
スクリプトは呼び出されず、スクリプトはApacheユーザーとして実行されます。
suexecをPHPスクリプトで使用するにはどうすればよいですか?
答え1
PHPページを処理するには、php7.0モジュールを有効にしてください。無効にしてインストールしてくださいPHP-CGI次のようにアクティブにします。
AddHandler cgi-handler .php
Action cgi-handler /usr/bin/php-cgi7.0