답변:
우분투에 있으므로 다음을 시도하십시오.
apache2ctl -M
apache2: bad user name ${APACHE_RUN_USER}
sudo apache2ctl -M | sort
apache2ctl
있지만 맨 페이지 나에 나열되어 있지 않습니다 apache2ctl --help
. 그 (것)들을 통해 전달되기 때문 httpd
입니다. httpd 문서 에만 나열되어 있습니다.
httpd -M
내장 또는 공유되는 모듈을 알려줍니다.
httpd
실행 파일 의 전체 경로를 지정하십시오 .
apache2
이고 그렇지 httpd
않기 때문에 찾을 수 없습니다.
원격 서버에서 명령을 실행할 수 없으면 위의 답변 중 아무것도 작동하지 않습니다. "사용자"권한 만 있거나 전혀없는 경우 test.php
스크립트 작성을 시도하십시오 .
<pre>
<?php
print_r(apache_get_modules());
?>
</pre>
PHP가로 설치된 경우에만 작동합니다 mod_php
.
어쩌면 이것은 httpd
, apachectl
또는 프로세스에 액세스 할 수없는 공유 호스트의 일부 사람들에게 도움이 될 것입니다 .
활성화 된 모듈 : ls /etc/apache2/mods-enabled/
사용 가능한 모듈 : ls /etc/apache2/mods-available/
실제로 여기에 세 가지 질문이 있다고 생각합니다. 나는 당신이 묻는 것이 확실하지 않습니다.
이것은 (보통) 아파치 배포판의 modules 디렉토리에 있습니다. 보통 / etc / httpd / modules /
최소한 기본 시스템 아파치의 경우 / usr / sbin / httpd -M을 사용하여 확인할 수 있습니다. 특정 구성 파일 / usr / sbin / httpd -M -f / path / to / config / file을 확인하려는 경우
많은 정보를 얻으려면, 당신이 그것을 볼 수 에 http : // 컴퓨터 이름 / 서버 정보 / 이 기본적으로 구성되어 있지 않은, 당신은해야 할 것 구성 . 그것을 정보 누출의 그것 조금, 그래서 그것을 구성 현지 사람들 만 볼 수 있습니다
컴퓨터를 사용 중이고 실행중인 사용자가 될 수있는 경우 프로세스를 확인하여로드 된 내용을 볼 수도 있습니다. 다음과 같은 방법으로 상위 프로세스를 찾을 수 있습니다.
ps -ef | gawk '/httpd/ && $3 == 1{print $2}'
그런 다음 확인
cat /proc/PID_FROM_ABOVE/maps
Redhat / CentOS httpd
를 사용하는 경우 대신 에이 ( 가) 사용됩니다 apache2ctl
.
즉,
httpd -M
그러나, httpd
당신이 기대하는 길에는 거의 없습니다.
CentOS 5.8에서 실제 경로는임을 확인할 수 있습니다 /usr/sbin/httpd
.
/usr/sbin/httpd -M
그러나 이것이 경로가 아니면 발견 할 수 있습니다. 내가 할 수 있었던 방법은 다음과 같습니다.
먼저, 데몬을 제어하는 데 사용되는 데몬을 확인했습니다.
less /init.d/httpd
40 라인 전후
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
어디에서 찾을 수 있는지 정확히 말해주었습니다. 도움이 되었기를 바랍니다.
젠투에서 apache2ctl modules
나열된 모듈을 실행 하고 볼 수 있습니다.
PHP 스크립트 내에서 확인 (mod_xsendfile의 경우) :
if (in_array(PHP_SAPI, array('apache','apache2filter','apache2handler'))
&& in_array('mod_xsendfile', apache_get_modules()))
\\doSomething();
apache_get_modules () 가 해당 컨텍스트에서 작동하지 않기 때문에 PHP가 CGI로 실행될 때 PHP_SAPI를 검사 하지 않습니다. 또한 이것이 php <5.0.0에서 실행되면 apache2handler
컨텍스트 만 예상 결과를 생성합니다.
나는 당신을 돕기 위해 작은 파이썬 스크립트를 만들었습니다. https://github.com/zioalex/unused_apache_modules 를 확인하십시오
이것이 당신이 기대할 수있는 것입니다 :
curl http://localhost/server-info > http_modules_test.txt
cat http_modules_test.txt| python find_unused_apache_mod.py
1
Module name mod_python.c
Configuration Phase Participation: 4
Request Phase Participation: 11
Current Configuration: 3
2
Module name mod_version.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 1
3
Module name mod_proxy_connect.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 0
To remove safely:
['mod_proxy_connect.c']
POPPED: mod_proxy_connect.c
To KEEP: ['mod_python.c', 'mod_version.c', 'mod_proxy_connect.c']