mod_rewrite가 활성화되어 있는지 어떻게 테스트합니까?


17

우분투 12.04를 새로 설치할 때 apache2에서 워드 프레스 환경을 설정하고 있습니다.

친숙한 URL을 작동시키기 위해 mod_rewrite를 설정하려고합니다. 나는 인터넷에서 찾은 몇 가지 지침을 따르고 a2enmod를 사용했습니다.

지금. 아파치를 다시 시작한 후 모듈이 실제로로드되었는지 확인하고 싶습니다.

로드 된 모듈 목록을 얻기 위해 찾은 명령은 다음과 같습니다.

apache2 -t -D DUMP_MODULES

그러나 이것은 오류를 반환합니다.

apache2 : 잘못된 사용자 이름 $ {APACHE_RUN_USER}

그렇다면 실제로로드 된 모든 모듈을 나열하거나 mod_rewrite가 활성화되어 있는지 확인하려면 어떻게해야합니까?

답변:


18

KM01은 의미가 apachectl있지만 필요한 것을 제공 하지는 않습니다. 그러면 서버의 시작 / 중지 / 다시 시작 및 일부 상태 정보가 제공됩니다. php 파일 옵션은 작동하지만 일부 추가 작업이 필요합니다. 대신, 커맨드 라인에서 php를 실행하십시오 : $ php -i. phpinfo()명령 행에서만 출력되는 내용을 출력합니다.

을 실행하여 컴파일 된 모듈 목록을 얻을 수 $ apache2 -l있지만 LoadModule (또는 다른) 지시문을 사용하여 동적으로로드 된 모듈을 보는 데 도움이되지 않습니다.

의 항목을 보면 어떤 모듈이 동적으로로드되는지 확인할 수 있습니다 /etc/apache2/mods-enabled/. 일부는 구성을 위해 동일한 디렉토리에 추가 conf 파일이 있습니다. 해당 모듈은 두 번로드되지 않습니다. 에서 살펴보면 사용 가능한 모듈 목록을 동적으로로드 할 수 있습니다 /etc/apache2/mods-available/. 명령 줄에서로 활성화 할 수 있습니다 $ a2enmod <module_name>. 로 언로드 할 수 있습니다 $ a2dismod <module_name>.

활성화 / 비활성화가 완료되면 $ service apache2 restart또는로 아파치를 다시 시작해야합니다 $ apachectl graceful. 이 작업의 전부는 아니지만 대부분을 수행하려면 루트 (sudo) 권한이 필요합니다.


4

1) <?php phpinfo(); ?>PHP 파일을 입력하고 저장하고 서버에서 해당 파일을 실행하십시오.

2) 이제 정보 목록을 볼 수 있습니다. 브라우저의 검색 메뉴에서 단어 "mod_rewrite"를 검색하십시오.

3)“Loaded Modules”섹션에있는 경우 아래 그림과 같이이 모듈이 이미로드되어 있습니다. 그렇지 않으면 mod_rewrite 모듈을 활성화하기 위해 다음 단계로 이동해야합니다.

출처 : http://roshanbh.com.np/2008/04/check-enable-mod_rewrite-apache.html


4

apache2명령 을 사용하는 대신 apachectl명령이 있습니까? 와 같은 위치에 있어야합니다 apache2. 또는 다음을 사용하여 높은 권한으로 명령을 실행할 수 있습니다.sudo apache2 -t -D DUMP_MODULES


2

@Richard가 설명한 것처럼, 실제로 달성하기 위해해야 ​​할 일은 다음 내용의 파일을 갖는 것입니다.

<?php
    phpinfo();
?>

아파치 / php 설정에 대한 다양한 정보를 출력합니다. imagick이 설치되어 있는지 여부에 대한 다른 유용한 정보가 있습니다. 로드 된 모든 아파치 모듈도 있습니다.


2

PHP 정보가 활성화되어 있는지 여부를 항상 표시하지는 않습니다. 죄송합니다!

그러나 스택 오버플로이 페이지 이상은 않습니다 당신이 올바른 방향으로 지적 얻을.

또는 다음은 PHP를 모두 나열하는 것입니다.

<?php foreach( apache_get_modules() as $module ) echo "$module<br />";  ?>

2
phpinfo (또는 아파치 확장을 통한) 솔루션은 PHP가 Apache 모듈로 컴파일 / 사용되는 경우에만 작동합니다. * CGI, FPM 등에는 없습니다. 또한 AllowOverride 및 / 또는 Options에 따라 mod_rewrite를로드 할 수 있지만 (LoadModule) 다시 쓰기가 거부 될 수 있습니다.
julp December

2

mod_rewrite.php루트 디렉토리에 파일을 만들고 아래 코드를 넣으십시오.

<?php 
echo
"Mod_rewrite is activated!"
; ?>

이제 이전 .htaccess파일 이름을 바꿉니다.

새 .htaccess 파일을 만들고 아래 코드를 넣으십시오.

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

이제 저장을 누르십시오.

그런 다음 사이트를 방문하여 메시지를 받으십시오.


2

터미널 유형의 centos 6.5 이상

httpd -M | grep 'rewrite'

대답에 rewrite_module (공유)이 표시되면 설치되었음을 의미합니다. grep 'rewrite'를 제거하고 Apache 설치에 대한 모든 모듈 목록을 가져올 수 있습니다.


0

터미널 httpd2 -M에서 루트로 사용하는 Suse 유형 에서는로드 된 모듈 목록을 제공합니다. httpd2 -l컴파일 된 모듈 만 제공합니다. 이것은 아파치 2.4에서 작동합니다

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.