Руководство:Удобные URL/Название страницы - nginx, Root Access, PHP в режиме CGI модуля

From mediawiki.org
This page is a translated version of the page Manual:Short URL/Page title - nginx, Root Access, PHP as a CGI module and the translation is 100% complete.

Данная конфигурация

  • Подтверждено, что данная конфигурация работает и была протестирована на версиях MediaWiki с 1.21 по 1.27.
  • Этот короткий формат URL-адреса был тщательно протестирован в течение двух лет в общедоступной среде. Он также был адаптирован для использования в рамках вики-фермы Gamepedia.
  • Предназначен для дистрибутива Ubuntu Linux. Он должен работать под другими дистрибутивами Linux с незначительной настройкой. Он также должен работать в Windows с дополнительной настройкой путей к папкам.
  • Вики - страница установлена в корневом каталоге html/http. Пример: /home/user/public_html или /var/www для других дистрибутивов Linux.
  • Страница будет доступна по ссылке example.com/Page_Title or www.example.com/Page_Title. Это также будет работать как wiki.example.com/Page_Title, поскольку любой поддомен должен работать в соответствии с директивой server_name и незначительной настройкой LocalSettings.php.
  • Страница по-прежнему доступна с example.com/index.php/Page_Title and example.com/index.php?title=Page_Title. Это здорово, так как, если ваша вики была ранее, старые ссылки и закладки в поисковых системах будут продолжать работать.
  • Просмотр файлов File:Image.jpg и аналогичных файлов с точкой в названии будет работать с этой настройкой.
  • Статические файлы будут обслуживаться с заголовком максимальным сроком действия, чтобы уменьшить нагрузку на сервер.
  • Эта конфигурация будет работать с robots.txt и другими файлами, застрявшими в корневом каталоге. Этот скрипт проверяет наличие файла для непосредственного обслуживания перед передачей запроса URI в MediaWiki.

конфигурация nginx

Следующая конфигурация nginx может быть добавлена непосредственно в файл /etc/nginx/nginx.conf для сервера, на котором размещен один сайт, или в файл /etc/nginx/sites-available/example.com для сервера с несколькими сайтами. Обязательно измените имена файлов server_name, root и файлов журнала доступа/ошибок.

Содержание этой страницы крайне неполно! Он не содержит важных настроек. Например, используя приведенную ниже информацию, ваша вики будет раскрывать личные данные общественности. Вместо этого используйте [$короткие URL-адреса служба коротких URL-адресов Reddwerks] для автоматического создания конфигурации, которая решает эти проблемы. Пример такой конфигурации следует добавить здесь!
server {
	server_name www.example.com example.com;
	listen 80;

	root /home/user/public_html;
	index index.php index.html index.htm;

	access_log /var/log/nginx/access-example.log;
	error_log /var/log/nginx/error-example.log;

	location ~ \.ht {
		deny all;
	}

	location / {
		try_files $uri $uri/ @rewrite;
	}

	location @rewrite {
		rewrite ^/(.*)$ /index.php;
	}

	location ^~ /maintenance/ {
		return 403;
	}

	location ~ \.php$ {
		include /etc/nginx/fastcgi_params;

		fastcgi_pass  127.0.0.1:9000;
		fastcgi_index index.php;

		fastcgi_param  SCRIPT_FILENAME	$document_root$fastcgi_script_name;

		try_files $uri @rewrite;
	}
}
  • Отредактируйте LocalSettings.php файл в корневом каталоге html и добавьте/обновите эти настройки:
$wgScriptPath	    = "";
$wgArticlePath      = "/$1";
$wgUsePathInfo      = true;
$wgScriptExtension  = ".php";

Если вы добавили конфигурацию в папку конфигурации, доступную для сайтов, обязательно создайте символическую ссылку в папку с поддержкой сайтов. Перезагрузите конфигурацию nginx, набрав: /etc/init.d/nginx reload

См. также