LINUX.ORG.RU

Перенести http://example.org/mediawiki на http://example.org/

 , ,


0

2

Арендую VDS, запустил на нём Ubuntu 18.04, установил Mediawiki, настроил по Quick Start Guide, захожу по httр://айпи/mediawiki - работает. Купил домен, теперь httр://example.org/mediawiki тоже работает. При обращении к этому адресу, я получаю переадресацию на httр://123.123.123.123/mediawiki/index.php/Заглавная_страница

Теперь надо превратить httр://example.org/mediawiki в httр://example.org/. Примерно как Лурк: там формат не lurkmore.ru/wiki/Статья, а lurkmore.ru/Статья. Мне именно так и нужно, потому что на этом домене нет ничего, кроме Wiki.

Сначала я попробовал делать что-то по руководству: https://www.mediawiki.org/wiki/Manual:Short_URL/Apache/ru У меня ничего не получилось. Я вернул всё в исходное состояние, и пошёл просить совета на ЛОРе.

Сейчас httр://example.org/ выдаёт «Apache2: It works!», а httр://example.org/mediawiki выдаёт, собственно, Wiki

Первое, что я сделал, это разрешил .htaccess в Apache. Я сделал это при помощи этой инструкции, отредактировав файл /etc/apache2/sites-available/000-default.conf

Второе, что я сделал, это удалил (забэкапил) /var/www/html/index.html. Теперь выдаёт не «Apache2: It works!», а список файлов на сервере (пустой).

Потом я попробовал вносить правки в /etc/mediawiki/LocalSettings.php и /var/www/.htaccess. Но получилась фигня.

В LocalSettings.php я внёс следующее:

$wgArticlePath = "/wiki/$1"; 
$wgUsePathInfo = true;

Потом подумал, и решил, что это же получится example.org/wiki. Не сильно лучше, чем example.org/mediawiki Больше похоже на переименование. А мне надо, чтобы example.org выдавало Wiki. Внёс изменения, стало так:

$wgArticlePath = "/$1"; 
$wgUsePathInfo = true;

В .htaccess я внёс следующее:

RewriteEngine On
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/mediawiki/index.php [L]

И опять же, по аналогии с предыдущим случаем, я внёс изменение:

RewriteEngine On
RewriteRule ^/?(/.*)?$ %{DOCUMENT_ROOT}/mediawiki/index.php [L]

Перезапускаю Апач. Проверяю. Ошибка 500.

Так как правильно сделать?

★★★★★

Последнее исправление: ZenitharChampion (всего исправлений: 5)
Ответ на: комментарий от anonymous

Вот например, если в /etc/mediawiki/LocalSettings.php внести это:

$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

А в конфиг Apache2 изменения пока не вносить, то теперь, при обращении к httр://example.org/mediawiki, я получаю переадресацию на: http://example.org/wiki/Заглавная_страница. И ошибку 404 «не существует такой странички».

А если удалить wiki/ и оставить только $1, то, при обращении к httр://example.org/mediawiki, я получаю переадресацию на: httр://example.org/Mediawiki. Туда же, но с большой буквы. И такого файла нет, так как Linux чувствителен к регистру.

А ещё в конфиге есть интересная вещь:

## The URL base path to the directory containing the wiki;
## defaults for all runtime URL paths are based off of this.
## For more information on customizing the URLs
## (like /w/index.php/Page_title to /wiki/Page_title) please see:
## https://www.mediawiki.org/wiki/Manual:Short_URL
$wgScriptPath = "/mediawiki";

Может оставить только /?

ZenitharChampion ★★★★★
() автор топика
Ответ на: комментарий от anonymous

А вот что выдаёт Апач:

/var/www/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration

Абсолютно все руководства по Апачу начинаются со строчки конфига:

RewriteEngine On

Только я вносил это не в /etc/apache2/vhosts.d/default_vhost.include, а в /var/www/.htaccess, потому что директории /etc/apache2/vhosts.d у меня нет.

Может, дело в этом? Хотя в твоём же руководстве, в третьем шаге, предлагают вносить в .htaccess код, который также начинается с RewriteEngine On

ZenitharChampion ★★★★★
() автор топика
Последнее исправление: ZenitharChampion (всего исправлений: 4)
Ответ на: комментарий от ZenitharChampion

module not included in the server configuration

Ну я даже не знаю, в чем проблема.

anonymous
()
Ответ на: комментарий от ZenitharChampion

/var/www/.htaccess: Invalid command 'RewriteEngine'

$sudo a2enmod rewrite
$sudo systemctl restart apache2
shrub ★★★★★
()

У меня все работает вот как, примерно (поменял файл /etc/apache2/conf-available/mediawiki.conf):

<IfModule mod_ssl.c>
        <VirtualHost _default_:443>
                ServerName wiki.example.com
                Protocols h2 http/1.1
                SSLEngine on
                SSLCertificateFile      /path/to/bundle.crt
                SSLCertificateKeyFile /path/to/decrypted.key
                SSLProtocol -all -SSLv2 -SSLv3 -TLSv1 +TLSv1.1 +TLSv1.2
                SSLHonorCipherOrder on
                SSLCompression Off
                SSLCipherSuite ALL:!ADH:RC4+RSA:+HIGH:+MEDIUM:-LOW:-SSLv2:-SSLv3:-EXP:!kEDH
                DocumentRoot /var/lib/mediawiki
        </VirtualHost>
</IfModule>

<Directory /var/lib/mediawiki/>
        Options +FollowSymLinks
        AllowOverride All
        <IfVersion >= 2.3>
                Require all granted
        </IfVersion>
        <IfVersion < 2.3>
                order allow,deny
                allow from all
        </IfVersion>
</Directory>

# some directories must be protected
<Directory /var/lib/mediawiki/config>
        Options -FollowSymLinks
        AllowOverride None
    <IfModule mod_php7.c>
        php_admin_flag engine off
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine off
    </IfModule>
</Directory>
<Directory /var/lib/mediawiki/images>
        Options -FollowSymLinks
        AllowOverride None
    <IfModule mod_php7.c>
        php_admin_flag engine off
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine off
    </IfModule>
</Directory>
<Directory /var/lib/mediawiki/upload>
        Options -FollowSymLinks
        AllowOverride None
    <IfModule mod_php7.c>
        php_admin_flag engine off
    </IfModule>
    <IfModule mod_php5.c>
        php_admin_flag engine off
    </IfModule>
</Directory>

Infra_HDC ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.