나는 그것을 원한다고소 실행 프로그램Debian Stretch(Apache 2.4.25)에서 PHP 사용.
데비안 패키지의 기본 모듈 세트 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