Назад | Перейти на главную страницу

Как проверить, включен ли mod_rewrite?

Я настраиваю среду для wordpress на apache2 при новой установке ubuntu 12.04.

Чтобы получить дружественные URL-адреса, я пытаюсь настроить mod_rewrite. Я выполнил некоторые инструкции, которые нашел в сети, и использовал a2enmod.

Сейчас. после перезапуска apache я хотел бы проверить, действительно ли модуль загружен.

Я нашел команду для получения списка загруженных модулей:

apache2 -t -D DUMP_MODULES

Однако это возвращает ошибку:

apache2: неправильное имя пользователя $ {APACHE_RUN_USER}

Итак, как мне на самом деле перечислить все загруженные модули или иным образом проверить, включен ли mod_rewrite?

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>.

Когда вы закончите включение / выключение, вы должны перезапустить apache с помощью $ service apache2 restart или $ apachectl graceful. Вам потребуются права root (sudo) для выполнения большей части, если не всей этой работы.

1) Тип <?php phpinfo(); ?> в файл php, сохраните его и запустите этот файл на сервере.

2) Теперь вы можете просмотреть список информации, просто введите слово «mod_rewrite» в меню поиска браузера.

3) Если он находится в разделе «Загруженные модули», то этот модуль уже загружен, как вы видите на рисунке ниже, в противном случае вам нужно перейти к следующему шагу для включения модуля mod_rewrite.

источник:http://roshanbh.com.np/2008/04/check-enable-mod_rewrite-apache.html

Вместо того, чтобы использовать apache2 команда, у вас есть apachectl команда? Он должен находиться в том же месте, что и apache2. Или вы можете выполнить команду с повышенными привилегиями, используя sudo apache2 -t -D DUMP_MODULES

На centos 6.5+ при типе терминала

httpd -M | grep 'rewrite'

Если в ответе вы видите rewrite_module (shared), это означает, что он установлен. Вы можете удалить grep 'rewrite' и получить список всех модулей для вашей установки Apache.

Как объяснил @Richard, но для этого вам действительно нужно иметь файл со следующим содержимым:

<?php
    phpinfo();
?>

Это распечатает различную информацию о вашей конфигурации apache / php. Другие полезные вещи, которые вы найдете там, будут, если будет установлен imagick или нет. Все загруженные модули apache тоже там.

Информация PHP не всегда показывает, включен он или нет. Сожалею!

Тем не мение, эта страница на Stack Overflow делает чтобы вы указали в правильном направлении.

В качестве альтернативы, вот несколько php, чтобы перечислить их все:

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

Просто создай mod_rewrite.php в корневом каталоге и поместите в него следующий код:

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

Теперь переименуйте свой старый .htaccess файл

Просто создайте новый файл .htaccess и поместите приведенный ниже код.

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

Теперь нажмите "Сохранить".

Затем посетите свой сайт, вы получите сообщение.

В suse введите root в терминале httpd2 -M, что дает список загруженных модулей. httpd2 -l дает только скомпилированные модули. Это работает для apache 2.4