рдПрдХ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдФрд░ рд╕рд╛рдорд╛рдиреНрдп рдХреЛрдб рдХреЗ рд╕рд╛рде рдореАрдбрд┐рдпрд╛рд╡рд┐рдХреА рдХреА рдЙрдк-рдбреЛрдореЗрди рдмрд╣реБ-рд╕реНрдерд╛рдкрдирд╛

рдореИрдВ рдЗрддрдиреА рднрдпрд╛рдирдХ рд╣реЗрдбрд▓рд╛рдЗрди рдХреЗ рд╕рд╛рде рдХреНрдпрд╛ рдХрд╣рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛?

рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ - рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред

рдорд╛рди рд▓реАрдЬрд┐рдП рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреБрдЫ рдкреНрд░рдХрд╛рд░ рдХреЗ рдбреЛрдореЗрди рд╣реИрдВ, рдЬрд┐рд╕ рдкрд░ рд╣рдо рд╡рд┐рдХрд┐ рд╡рд┐рд╢реНрд╡рдХреЛрд╖реЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рдмрдирд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдкреНрд░рддреНрдпреЗрдХ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд╡рд┐рдХрд┐ рдХреЗ рд▓рд┐рдП, рд╣рдо рдПрдХ рдЕрд▓рдЧ рдЙрдкрдбреЛрдореЗрди рдЪрд╛рд╣рддреЗ рд╣реИрдВред рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рд╣рдо рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рд╕рдм рдПрдХ рд╣реА рдХреЛрдб рдкрд░ рдХрд╛рдо рдХрд░реЗ (рддрд╛рдХрд┐ рдЕрдкрдбреЗрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рд╣рдо рдПрдХ рд╣реА рдмрд╛рд░ рдореЗрдВ рд╕рдм рдХреБрдЫ рдмрджрд▓ рд╕рдХреЗрдВ), рдФрд░ рдпрд╣ рднреА рдХрд┐ рд╣рдорд╛рд░реЗ рд╕рднреА рд╡рд┐рдХрд┐рдпреЛрдВ рдореЗрдВ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХрд╛ рдПрдХ рд╣реА рдкрдВрдЬреАрдХрд░рдг рд╣реЛред

рдЗрд╕ рд▓реЗрдЦ рдореЗрдВ рдореИрдВ рдореАрдбрд┐рдпрд╛рд╡рд┐рдХрд┐ рдЗрдВрдЬрди рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рддрд░реАрдХреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдмрд╛рдд рдХрд░реВрдВрдЧрд╛ред

рдпрд╣ рдХреНрдпреЛрдВ рдЖрд╡рд╢реНрдпрдХ рд╣реИ?


рдореИрдВ рдЕрдкрдиреЗ рд╕реНрд╡рдпрдВ рдХреЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд╕рд╛рде рдЬрд╡рд╛рдм рджреВрдВрдЧрд╛ред рдореЗрд░реЗ рдкрд╛рд╕ рд╡рд┐рднрд┐рдиреНрди рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╕рд╛рдЗрдЯ рд╣реИрдВред рдФрд░ рдореИрдВ рд╣рдореЗрд╢рд╛ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдЦреЗрд▓реЛрдВ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕реА рди рдХрд┐рд╕реА рддрд░рд╣ рдХреЗ рдПрдХрд▓ рд╡рд┐рдХрд┐ рд╕рдВрд╕рд╛рдзрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ред

рдореЗрд░рд╛ рдкрд░рд┐рджреГрд╢реНрдп рдпрд╣ рд╣реИ:

Mediawiki рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред


рдЕрдм рддрдХ, рд╕рдм рдХреБрдЫ рд╕рд░рд▓ рд╣реИред рдЕрдкрдиреЗ рдкреНрд░рд╛рдердорд┐рдХ рдбреЛрдореЗрди рдкрд░ рд╣рдореЗрд╢рд╛ рдХреА рддрд░рд╣ Mediawiki рд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВред рдХреЛрдИ рд╕реВрдХреНрд╖реНрдорддрд╛ рдирд╣реАрдВред

рд╕рд░реНрд╡рд░ред


рдЕрдкрдиреА рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдореЗрдВ рдореИрдВ nginx рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВред рдпрд╣ рдЕрдкрд╛рдЪреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдмрд╣реБрдд рддреЗрдЬ рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐ рдпрд╣ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рд╣реИред

рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рдореБрдЦреНрдп рдбреЛрдореЗрди рдХреЗ рдХрд┐рд╕реА рднреА рдЙрдкрдбреЛрдореЗрди рдкрд░ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╡реИрд╕реЗ рднреА рд╕рдорд╛рди рдХреЛрдб рдХрд╛ рдХрд╛рд░рдг рдмрдирддрд╛ рд╣реИред рдпрд╣ рдмрд╕ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
server {
server_name playwiki.ru *.playwiki.ru;
root /wwwroot/playwiki.ru ;
index index.php;
}

рдпрд╣рд╛рдБ рдпрд╣ рдзреНрдпрд╛рди рджреЗрдиреЗ рдпреЛрдЧреНрдп рд╣реИ рдХрд┐ рдирдЧреНрдиреЗрдХреНрд╕ рдХреЛ рдЕрдкрд╛рдЪреЗ рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ рдХреБрдЫ рдЕрдВрддрд░ рд╣реИред рддрдереНрдп рдпрд╣ рд╣реИ рдХрд┐ рдЪрд╛рд╣реЗ рдЖрдк рдХрд┐рд╕реА рднреА рдЙрдк-рдбреЛрдореЗрди рдкрд░ рдЬрд╛рдПрдВ, server_name рд╣рдореЗрд╢рд╛ рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рд╡рд╛рд▓рд╛ рдкрд╣рд▓рд╛ рд╣реИред

рдЗрд╕рд▓рд┐рдП, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдХреИрд╢ рдХреЛ рд╣рдореЗрд╢рд╛ $ _SERVER ['SERVER_NAME'] рдореЗрдВ "playwiki.ru" рджреНрд╡рд╛рд░рд╛ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛, рдЬрд┐рд╕рдХреЗ рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рдореАрдбрд┐рдпрд╛рд╡рд┐рдХреА рдЗрдВрдЬрди рдореЗрдВ рдЧрд▓рдд рд░реАрдбрд╛рдпрд░реЗрдХреНрдЯ рд╣реЛрдЧрд╛ред

рдЗрд╕ рдмрдЧ рдХреЛ рддреБрд░рдВрдд рдареАрдХ рдХрд░реЗрдВ:

LocalSettings.php рдореЗрдВ рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рдореЗрдВ рд╣рдо рд▓рд┐рдЦрддреЗ рд╣реИрдВ:
include ( 'My_ExtFunctions.php' );
$_SERVER[ 'SERVER_NAME' ] = ($pw_subdomain_prefix) ? $pw_subdomain_prefix . ".playwiki.ru" : "playwiki.ru" ;

рдЕрдВрдд рдореЗрдВ, рддреБрд░рдВрдд рд╣рдорд╛рд░реА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
include ( 'My_LocalSettings.php' );

рдпрд╣рд╛рдВ, рдЙрд╕реА рд╕рдордп, рдореИрдВрдиреЗ рдЕрдкрдиреА рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде рджреЛ рдлрд╛рдЗрд▓реЗрдВ рдХрдиреЗрдХреНрдЯ рдХреАрдВ, рдХреНрдпреЛрдВрдХрд┐ рдореИрдВ LocalSettings.php рдХреЛ рдЕрдзрд┐рднрд╛рд░ рдирд╣реАрдВ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ред

$ pw_subdomain_prefix My_ExtFunctions.php рдХреЗ рдЕрдВрджрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ:
function getMySubDomainPrefix() {

$a = $_SERVER[ 'HTTP_HOST' ];
$a = substr($a, 0, strpos($a, ".playwiki" ));
if ($a == 'www' ) $a = '' ;

// secure it!
$a = str_replace( "\t" , "" , str_replace( "\r" , "" , str_replace( "\n" , "" , $a)));
$a = str_replace( "*" , "" , str_replace( "'" , "" , str_replace( "\"" , "" , $a)));
$a = str_replace( " " , "" , str_replace( "," , "" , str_replace( "." , "" , $a)));
$a = str_replace( "/" , "" , str_replace( "//" , "" , str_replace( "\0" , "" , $a)));

return $a;

}

$pw_subdomain_prefix = getMySubDomainPrefix();

рдЙрдк рдбреЛрдореЗрди рдХреЗ рд▓рд┐рдП Mediawiki рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░реЗрдВред


рддреЛ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ $ pw_subdomain_prefix рдореЗрдВ рд╣рдорд╛рд░реЗ рдЙрдкрдбреЛрдореЗрди рдХрд╛ рдирд╛рдо рд╣реИред рд╕рднреА рдХреЛрдб My_LocalSettings.php рдореЗрдВ рд▓рд┐рдЦреЗ рдЬрд╛рдПрдВрдЧреЗ ред

рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддреНрд╡рдЪрд╛ рд╕реЗрдЯ рдХрд░реЗрдВ:
$wgDefaultSkin = 'monobook' ;

рдЪрд▓реЛ рдЦрд╛рд▓ рдХреЛ рдПрдХ рдЙрдкрдбреЛрдореЗрди рдХреЗ рдЕрдиреБрд░реВрдк рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ рдЦреЛрдЬрд╛ рдЬрд╛рддрд╛ рд╣реИ (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, wow.playwiki.ru рд╕реНрдХрд┐рдиреНрд╕ / рд╕реНрдХрд┐рди / рд╕реНрдХрд┐рди_рд╡реЙ / рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдП:
$wgStylePath = "{$wgScriptPath}/skins" . (($pw_subdomain_prefix == '' ) ? '' : "/skin_$pw_subdomain_prefix" );
$wgStyleDirectory = "{$IP}/skins" . (($pw_subdomain_prefix == '' ) ? '' : "/skin_$pw_subdomain_prefix" );

рдЪрд▓реЛ рдбреЗрдЯрд╛рдмреЗрд╕ рдХреЛ рдЙрдкрдбреЛрдореЗрди рдкрд░ рдирд┐рд░реНрднрд░ рдмрдирд╛рддреЗ рд╣реИрдВред рдореЗрд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, www.playwiki.ru рдкрд░ рд╡рд┐рдХреА "playwiki" рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ (рдпрд╣ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдореБрдЦреНрдп рдЖрдзрд╛рд░ рд╣реЛрдЧрд╛, рдЖрджрд┐), рдФрд░ рдЙрдкрдбреЛрдореЗрди рд╡рд┐рдХреА playwiki_wow, playbiki_la2, рдЖрджрд┐ рдЬреИрд╕реЗ рдбреЗрдЯрд╛рдмреЗрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдЧрд╛ред
if ($pw_subdomain_prefix) $pw_subdomain_prefix = '_' . $pw_subdomain_prefix;
$wgDBname = 'playwiki' . $pw_subdomain_prefix;

рд╕рд╛рдЭрд╛ рддрд╛рд▓рд┐рдХрд╛рдУрдВ рдХреЛ рд╕реЗрдЯ рдХрд░рдирд╛ (рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛, рдЖрдИрдкреА рдмреНрд▓реЙрдХ рдХрд░рдирд╛):
$wgSharedDB = 'playwiki' ; // The $wgDBname for the wiki database holding the main user table
$wgSharedPrefix = 'wk_' ; // The $wgDBprefix for the database, if not used, this can be omitted
$wgSharedTables = array( 'user' , 'user_properties' , 'ipblocks' , 'user_groups' );

рд╣рдо рдХреБрдХреАрдЬрд╝ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рдбреЛрдореЗрди рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд┐рд╕реА рднреА рдЙрдкрдбреЛрдореЗрди рдкрд░ рд▓реЙрдЧ рдСрди рд░рд╣реЗ рдХрд┐рд╕реА рднреА рдЙрдкрдбреЛрдореЗрди рдкрд░ рд▓реЙрдЧ рдСрди рд░рд╣реЗ:
$wgCookieDomain = '.playwiki.ru' ;

рд╣рдо рдкреНрд░рддреНрдпреЗрдХ рд╡рд┐рдХрд┐ рдЙрдкрдбреЛрдореЗрди рдХрд╛ рдЕрдкрдирд╛ рд▓реЛрдЧреЛ рдмрдирд╛рддреЗ рд╣реИрдВ:
$wgLogo = "images/logo$pw_subdomain_prefix.png" ;

рдЕрдкрд▓реЛрдб рдЫрд╡рд┐рдпрд╛рдВ рд╕реЗрдЯ рдХрд░рдирд╛ (рд╡рд┐рднрд┐рдиреНрди рдлрд╝реЛрд▓реНрдбрд░реЛрдВ рдореЗрдВ):

$wgEnableUploads = true ;
$wgUploadDirectory = "images" ;
if ($pw_subdomain_prefix) $wgUploadDirectory .= "/img$pw_subdomain_prefix" ;
$wgUploadPath = "{$wgScriptPath}$wgUploadDirectory" ;

$wgUploadDirectory = "{$IP}/$wgUploadDirectory" ;

рдЙрд╕реА рд╕рдордп, рд╣рдо рдЕрдирдзрд┐рдХреГрдд рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЛ рд╕рдВрдкрд╛рджрди рдкреНрд░рддрд┐рдмрдВрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
$wgGroupPermissions[ '*' ][ 'edit' ] = false ;
$wgGroupPermissions[ '*' ][ 'createpage' ] = false ;
$wgGroupPermissions[ '*' ][ 'createtalk' ] = false ;

$wgGroupPermissions[ 'user' ][ 'edit' ] = true ;
$wgGroupPermissions[ 'user' ][ 'createpage' ] = true ;
$wgGroupPermissions[ 'user' ][ 'createtalk' ] = true ;

$wgGroupPermissions[ 'sysop' ][ 'edit' ] = true ;
$wgGroupPermissions[ 'sysop' ][ 'createpage' ] = true ;
$wgGroupPermissions[ 'sysop' ][ 'createtalk' ] = true ;

$wgGroupPermissions[ 'bureaucrat' ][ 'edit' ] = true ;
$wgGroupPermissions[ 'bureaucrat' ][ 'createpage' ] = true ;
$wgGroupPermissions[ 'bureaucrat' ][ 'createtalk' ] = true ;

рд╡рд┐рдХреА-рд╡рд┐рд╢реНрд╡рдХреЛрд╢ рдХрд╛ рдкреНрд░рдЬрдирдиред


рдпрд╣рд╛рдВ рд╕рдм рдХреБрдЫ рдмрд╣реБрдд рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдирд╣реАрдВ рд╣реИред

рд╡рд┐рдХреА рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдореИрдВрдиреЗ рдмреЗрд╕ рдбрдВрдк рдХреА рдирдХрд▓ рдХреАред рдЕрдм, рдЬрдм рдореБрдЭреЗ рдПрдХ рдирдИ рд╡рд┐рдХреА рдЬреЛрдбрд╝рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рддреЛ рдореИрдВ рдПрдХ рдирдпрд╛ рдбреЗрдЯрд╛рдмреЗрд╕ рдмрдирд╛рддрд╛ рд╣реВрдВ, рдЕрдзрд┐рдХрд╛рд░реЛрдВ рдХреЛ рдкрдВрдЬреАрдХреГрдд рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдЗрд╕ рдбрдВрдк рдХреЛ рд╡рд╣рд╛рдВ рддреИрдирд╛рдд рдХрд░рддрд╛ рд╣реВрдВред

рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ - рд╕рд╣рд┐рд╖реНрдгреБред рдпрд╣ рджреЗрдЦрддреЗ рд╣реБрдП рдХрд┐ рд╡рд┐рдХрд┐рдпреЛрдВ рдХреЛ рдкреНрд░рддрд┐ рджрд┐рди 10 рдЯреБрдХрдбрд╝реЗ рдЙрдард╛рдиреЗ рдХреА рдпреЛрдЬрдирд╛ рдирд╣реАрдВ рд╣реИред :)

Source: https://habr.com/ru/post/In114607/


All Articles