Обновляем ОС
apt-get update
apt-get upgrade
apt-get dist-upgrade
Устанавливаем Apache
apt install -y apache2
Устанавливаем PHP 7.3 из внешних репозиториев
apt install ca-certificates apt-transport-https lsb-release
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.3.list
apt-get update
apt-get install -y php7.3 php7.3-mysql libapache2-mod-php7.3 php7.3-xml php7.3-mbstring php7.3-apcu php7.3-intl php7.3-gd php7.3-cli php7.3-curl php7.3-ldap
Изменяем конфигурацию PHP 7.3
/nano /etc/php/7.3/apache2/php.ini
upload_max_filesize = 20M
memory_limit = 128M
Перезапускаем Apache
systemctl restart apache2
Устанавливаем и конфигурируем MySQL/MariaDB
apt-get install -y mariadb-server
mysql_secure_installation
Создаём пароль для Root(который в MySQL), на вопросы отвечаем: Y,Y,Y,Y
Создаём базу данных для MediaWiki и пользователя
mysql -u root -p
CREATE DATABASE mediawikidb;
GRANT ALL PRIVILEGES ON mediawikidb.* TO 'mediawikiuser'@'localhost' IDENTIFIED BY 'mediawikipss';
FLUSH PRIVILEGES;
exit;
Качаем пакет MediaWiki, разворачиваем его
cd /tmp/
wget https://releases.wikimedia.org/mediawiki/1.32/mediawiki-1.32.1.tar.gz
tar -xvzf /tmp/mediawiki-*.tar.gz
mkdir /var/lib/mediawiki
mv mediawiki-*/* /var/lib/mediawiki
ln -s /var/lib/mediawiki /var/www/html/mediawiki
Устанавливаем ImageMagick
apt-get install imagemagick
Заходим на сайт http://server/mediawiki и выполняем конфигурацию. В конце получаем файл LocalSettings.php, который необходимо расположить (в рассмотренном примере) в /var/lib/mediawiki. Заходим на сайт http://server/mediawiki и пользуемся.
Для авторизации в LDAP:
качаем расширение LdapAuthentication https://www.mediawiki.org/wiki/Special:ExtensionDistributor/LdapAuthentication и распаковываем его в /var/www/html/extensions/LdapAuthentication
выполняем запросы из файла /var/www/html/extensions/LdapAuthentication/schema/ldap-mysql.sql
выполняем корректировку файла LocalSettings.php по аналогии:
#
# LDAP Authentification
#
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array('My-DomainLDAP');
$wgLDAPServerNames = array('My-DomainLDAP' => 'ldap.domain.local');
$wgLDAPUseLocal=true;
$wgLDAPEncryptionType = array('My-DomainLDAP' => 'clear');
#
# разрешаем автосоздание пользователя
$wgLDAPDisableAutoCreate = array('My-DomainLDAP' => false);
$wgMinimalPasswordLength = 0;
#
#If you want to be able to pull preferences
$wgLDAPBaseDNs = array('My-DomainLDAP' => 'DC=domain,DC=local');
$wgLDAPSearchAttributes = array('My-DomainLDAP' => 'uid');
$wgLDAPLowerCaseUsername = array('My-DomainLDAP' => true);
$wgLDAPRetrievePrefs = array('My-DomainLDAP' => true);
$wgLDAPPreferences = array('My-DomainLDAP' => array( 'email' => 'mail','realname' => 'displayname','nickname' => 'cn'));
$wgShowExceptionDetails = true;
#
#LDAP Debug
$wgLDAPDebug = 2;
$wgDebugLogGroups["ldap"] = "debug.log";
#
#Synchronizing LDAP groups with MediaWiki security groups
$wgLDAPUseLDAPGroups = array('My-DomainLDAP' => true);
$wgLDAPLocallyManagedGroups = array('My-DomainLDAP' => array( 'wiki-admins', 'wiki-writers'),);
$wgLDAPGroupsPrevail = array('My-DomainLDAP' => true);
#
#Group options
$wgLDAPGroupUseFullDN = array('My-DomainLDAP' => true);
$wgLDAPGroupAttribute = array('My-DomainLDAP' => 'member');
$wgLDAPGroupObjectclass = array('My-DomainLDAP' => 'groupOfNames');
$wgLDAPGroupNameAttribute = array('My-DomainLDAP' => 'cn');
#
# разрешаем авторизацию только редакторам и администраторам
$wgLDAPRequiredGroups = array('My-DomainLDAP' => array('cn=wiki-editors,ou=groups,ou=corp-res-groups,o=rto,DC=domain,DC=local','cn=wiki-admins,ou=groups,ou=corp-res-groups,o=rto,DC=domain,DC=local' ) );
Для ограничения доступа к страницам
качаем расширение AccessControl https://www.mediawiki.org/wiki/Special:ExtensionDistributor/AccessControl
распаковываем его в /var/www/html/extensions/AccessControl
добавляем в LocalSettings.php:
require_once "extensions/AccessControl/AccessControl.php";
// sysop users can read all restricted pages
$wgAdminCanReadAll = true;
// don't redirect from page with search results for denied and
// anonymous users, if searching pattern is validate on any protected page.
$wgAccessControlRedirect = false;
на странице указываем нужные группы доступа
<accesscontrol>Administrators,IT:Department,Sales(ro)</accesscontrol>
apt-get update
apt-get upgrade
apt-get dist-upgrade
Устанавливаем Apache
apt install -y apache2
Устанавливаем PHP 7.3 из внешних репозиториев
apt install ca-certificates apt-transport-https lsb-release
wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | tee /etc/apt/sources.list.d/php7.3.list
apt-get update
apt-get install -y php7.3 php7.3-mysql libapache2-mod-php7.3 php7.3-xml php7.3-mbstring php7.3-apcu php7.3-intl php7.3-gd php7.3-cli php7.3-curl php7.3-ldap
Изменяем конфигурацию PHP 7.3
/nano /etc/php/7.3/apache2/php.ini
upload_max_filesize = 20M
memory_limit = 128M
Перезапускаем Apache
systemctl restart apache2
Устанавливаем и конфигурируем MySQL/MariaDB
apt-get install -y mariadb-server
mysql_secure_installation
Создаём пароль для Root(который в MySQL), на вопросы отвечаем: Y,Y,Y,Y
Создаём базу данных для MediaWiki и пользователя
mysql -u root -p
CREATE DATABASE mediawikidb;
GRANT ALL PRIVILEGES ON mediawikidb.* TO 'mediawikiuser'@'localhost' IDENTIFIED BY 'mediawikipss';
FLUSH PRIVILEGES;
exit;
Качаем пакет MediaWiki, разворачиваем его
cd /tmp/
wget https://releases.wikimedia.org/mediawiki/1.32/mediawiki-1.32.1.tar.gz
tar -xvzf /tmp/mediawiki-*.tar.gz
mkdir /var/lib/mediawiki
mv mediawiki-*/* /var/lib/mediawiki
ln -s /var/lib/mediawiki /var/www/html/mediawiki
Устанавливаем ImageMagick
apt-get install imagemagick
Заходим на сайт http://server/mediawiki и выполняем конфигурацию. В конце получаем файл LocalSettings.php, который необходимо расположить (в рассмотренном примере) в /var/lib/mediawiki. Заходим на сайт http://server/mediawiki и пользуемся.
Для авторизации в LDAP:
качаем расширение LdapAuthentication https://www.mediawiki.org/wiki/Special:ExtensionDistributor/LdapAuthentication и распаковываем его в /var/www/html/extensions/LdapAuthentication
выполняем запросы из файла /var/www/html/extensions/LdapAuthentication/schema/ldap-mysql.sql
выполняем корректировку файла LocalSettings.php по аналогии:
#
# LDAP Authentification
#
require_once( "$IP/extensions/LdapAuthentication/LdapAuthentication.php" );
$wgAuth = new LdapAuthenticationPlugin();
$wgLDAPDomainNames = array('My-DomainLDAP');
$wgLDAPServerNames = array('My-DomainLDAP' => 'ldap.domain.local');
$wgLDAPUseLocal=true;
$wgLDAPEncryptionType = array('My-DomainLDAP' => 'clear');
#
# разрешаем автосоздание пользователя
$wgLDAPDisableAutoCreate = array('My-DomainLDAP' => false);
$wgMinimalPasswordLength = 0;
#
#If you want to be able to pull preferences
$wgLDAPBaseDNs = array('My-DomainLDAP' => 'DC=domain,DC=local');
$wgLDAPSearchAttributes = array('My-DomainLDAP' => 'uid');
$wgLDAPLowerCaseUsername = array('My-DomainLDAP' => true);
$wgLDAPRetrievePrefs = array('My-DomainLDAP' => true);
$wgLDAPPreferences = array('My-DomainLDAP' => array( 'email' => 'mail','realname' => 'displayname','nickname' => 'cn'));
$wgShowExceptionDetails = true;
#
#LDAP Debug
$wgLDAPDebug = 2;
$wgDebugLogGroups["ldap"] = "debug.log";
#
#Synchronizing LDAP groups with MediaWiki security groups
$wgLDAPUseLDAPGroups = array('My-DomainLDAP' => true);
$wgLDAPLocallyManagedGroups = array('My-DomainLDAP' => array( 'wiki-admins', 'wiki-writers'),);
$wgLDAPGroupsPrevail = array('My-DomainLDAP' => true);
#
#Group options
$wgLDAPGroupUseFullDN = array('My-DomainLDAP' => true);
$wgLDAPGroupAttribute = array('My-DomainLDAP' => 'member');
$wgLDAPGroupObjectclass = array('My-DomainLDAP' => 'groupOfNames');
$wgLDAPGroupNameAttribute = array('My-DomainLDAP' => 'cn');
#
# разрешаем авторизацию только редакторам и администраторам
$wgLDAPRequiredGroups = array('My-DomainLDAP' => array('cn=wiki-editors,ou=groups,ou=corp-res-groups,o=rto,DC=domain,DC=local','cn=wiki-admins,ou=groups,ou=corp-res-groups,o=rto,DC=domain,DC=local' ) );
Для ограничения доступа к страницам
качаем расширение AccessControl https://www.mediawiki.org/wiki/Special:ExtensionDistributor/AccessControl
распаковываем его в /var/www/html/extensions/AccessControl
добавляем в LocalSettings.php:
require_once "extensions/AccessControl/AccessControl.php";
// sysop users can read all restricted pages
$wgAdminCanReadAll = true;
// don't redirect from page with search results for denied and
// anonymous users, if searching pattern is validate on any protected page.
$wgAccessControlRedirect = false;
на странице указываем нужные группы доступа
<accesscontrol>Administrators,IT:Department,Sales(ro)</accesscontrol>