Як перевірити, чи увімкнено mod_rewrite?


17

Я налаштовую середовище для wordpress на apache2, в новій установці ubuntu 12.04.

Для того, щоб дружні URL-адреси працювали, я намагаюся налаштувати mod_rewrite. Я дотримувався деяких інструкцій, які знайшов у мережі, і користувався a2enmod.

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

Команда, яку я знайшов для отримання списку завантажених модулів, така:

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/. Деякі мають додатковий конф-файл у тому самому каталозі для конфігурації. Ці модулі НЕ завантажуються двічі. Ви можете побачити список доступних модулів для динамічного завантаження, переглянувши /etc/apache2/mods-available/. Ви можете ввімкнути їх у командному рядку за допомогою $ a2enmod <module_name>. Ви можете їх розвантажити $ a2dismod <module_name>.

Після завершення включення / відключення потрібно перезапустити apache за допомогою $ service apache2 restartабо $ apachectl graceful. Для виконання більшості робіт, якщо не всіх, вам знадобляться кореневі (судові) привілеї.


4

1) Введіть <?php phpinfo(); ?>файл php і збережіть його та запустіть цей файл на сервері.

2) А тепер ви можете перелічити інформацію, просто шукайте слово «mod_rewrite» у меню пошуку браузера

3) Якщо він знайдений в розділі «Завантажені модулі», цей модуль вже завантажений, як ви бачите на малюнку нижче, інакше вам потрібно перейти до наступного кроку для включення модуля 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();
?>

Це виводить різну інформацію про вашу конфігурацію apache / php. Інші корисні речі, які ви знайдете там, були б, якщо встановити Imagick чи ні. Усі завантажені модулі apache також є.


2

Інформація про PHP не завжди показує, включена чи ні. Вибачте!

Тим НЕ менше, ця сторінка більше на переповнення стека робить , щоб ви вказали в правильному напрямку.

Крім того, ось якийсь php, щоб перерахувати їх усіх:

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

2
Ви праві, рішення phpinfo (або через розширення apache) працює лише в тому випадку, якщо PHP компілюється / використовується як модуль Apache. Не в * CGI, FPM тощо. Крім того, mod_rewrite може бути завантажений (LoadModule), але в переписуванні може бути відмовлено, згідно AllowOverride та / або Options.
липень

2

Просто створіть mod_rewrite.phpфайл у вашому кореневому каталозі та вставте в нього код нижче:

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

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

Просто створіть новий .htaccess файл і введіть наведений нижче код.

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

Тепер натисніть зберегти.

Тоді завітайте на ваш сайт, ви отримаєте повідомлення.


2

На центос 6.5+ на термінальному типі

httpd -M | grep 'rewrite'

Якщо у відповіді ви можете побачити rewrite_module (спільний), це означає, що він встановлений. Ви можете видалити grep 'переписати' та отримати список усіх модулів для установки Apache.


0

Для типу suse як root у терміналі httpd2 -M, що дає список завантажених модулів. httpd2 -lдає лише складене в модулі. Це працює для apache 2.4

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.