Как установить MediaWiki с Nginx на CentOS 7
На этой странице
- Что мы будем делать
- Предпосылки
- Шаг 1. Установите Nginx на CentOS 7
- Шаг 2. Установите и настройте PHP-FPM.
- Шаг 3. Установите и настройте базу данных MariaDB.
- Шаг 4. Загрузите и настройте MediaWiki
- Шаг 5. Создание SSL Letsencrypt в CentOS 7
- Шаг 6. Настройка виртуального хоста Nginx для MediaWiki
- Шаг 7. Установка MediaWiki через Интернет
- Языковая конфигурация
- Проверка среды
- Конфигурация базы данных
- Настройки базы данных
- Создать нового пользователя-администратора
- Дополнительная конфигурация MediaWiki
- Установка MediaWiki
MediaWiki – это популярная вики-программа, изначально разработанная для использования в Википедии. Это бесплатная вики-программа с открытым исходным кодом, написанная на языке программирования PHP. Инструмент, созданный Магнусом Манске в 2002 году, теперь имеет версию 1.30. MediaWiki используется многими крупными компаниями, включая Nginx, Intel, Novell и т. д.
В этом руководстве мы обсудим, как шаг за шагом установить MediaWiki с веб-сервером Nginx на CentOS 7. Мы также расскажем, как установить и настроить стек LEMP для установки MediaWiki, включая создание и настройку нового бесплатного SSL Letsencrypt для Безопасность MediaWiki.
Что мы будем делать
- Установите Nginx на CentOS 7.
- Установка и настройка PHP-FPM
- Установите и настройте базу данных MariaDB.
- Загрузить и настроить MediaWiki
- Создание нового SSL Letsencrypt в CentOS 7
- Настройка виртуального хоста Nginx для установки MediaWiki
- Установка MediaWiki через Интернет
- Настроить скин MediaWiki по умолчанию
Предпосылки
- Сервер CentOS 7
- Привилегии root
Шаг 1 — Установите Nginx на CentOS 7
В этом руководстве мы будем использовать веб-сервер Nginx для установки MediaWiki. В CentOS 7 пакет Nginx не существует. Поэтому нам нужно установить его из стороннего репозитория EPEL (Extra Packages for Enterprise Linux).
Обновите все пакеты и установите репозиторий EPEL в системе CentOS 7, используя приведенную ниже команду yum.
yum -y update
yum -y install epel-releaseЗатем установите веб-сервер Nginx.
yum -y install nginx
После завершения установки Nginx запустите сервер и включите его автоматический запуск при загрузке системы.
systemctl start nginx
systemctl enable nginxИтак, веб-сервер Nginx был установлен на сервере CentOS 7. Проверьте статистику сети с помощью команды netstat, и в результате вы должны получить HTTP-порт, используемый службой Nginx.
netstat -plntu
Шаг 2 — Установите и настройте PHP-FPM
В этом уроке мы будем использовать PHP 7.0. И здесь, на этом этапе, мы установим PHP 7.0 (включая расширения) и настроим PHP-FPM для установки MediaWiki.
Мы будем использовать пакеты PHP 7.0 из стороннего репозитория webtatic. Добавьте новый репозиторий webtatic для установки PHP 7.0 с помощью приведенной ниже команды.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Теперь мы можем установить PHP 7.0 со всеми необходимыми расширениями, используя приведенную ниже команду yum.
yum -y install ImageMagick php70w-fpm php70w-intl php70w-xml php70w-curl php70w-gd php70w-mbstring php70w-mysql php70w-cli php70w-pear php70w-pecl-apcu
На этом установка PHP 7.0 на CentOS 7 завершена.
Далее мы настроим службу PHP-FPM. Мы отредактируем файл php.ini для настройки информации о пути CGI, а затем отредактируем конфигурацию www.conf для настройки службы PHP-FPM. Затем мы настроим PHP-FPM для выполнения под файлом sock (с пользователем и группой nginx).
Отредактируйте файл php.ini с помощью редактора vim.
vim /etc/php.ini
Раскомментируйте строку ниже и измените значение на 0.
cgi.fix_pathinfo=0
Сохраните изменения и выйдите из редактора.
Теперь отредактируйте файл конфигурации PHP-FPM www.conf.
vim /etc/php-fpm.d/www.conf
Измените значение строки пользователя и группы на nginx.
user = nginx
group = nginxТеперь измените значение переменной listen в файле php-fpm.sock, как показано ниже.
listen = /run/php-fpm/php-fpm.sock
Нам нужно настроить разрешения sock-файла, а также владельца каталога sock-файла. Раскомментируйте строки listen.owner и listen.group и измените соответствующие значения на nginx.
listen.owner = nginx
listen.group =nginx
listen.mode = 0660Для дополнительной настройки раскомментируйте строки ниже.
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmpВот и все. Сохранить и выйти.
Затем создайте новый каталог для конфигурации пути сеансов.
Запустите приведенные ниже команды для создания каталога сеансов.
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/После этого запустите службу PHP-FPM и включите ее автоматический запуск при загрузке системы.
systemctl start php-fpm
systemctl enable php-fpmПроверьте PHP-FPM с помощью приведенной ниже команды netstat.
netstat -pl | grep php
И убедитесь, что в результате вы получили файл php-fpm.sock.
Шаг 3. Установите и настройте базу данных MariaDB.
MediaWiki поддерживает базы данных MySQL/MariaDB и SQLite. Однако в этом руководстве мы будем использовать базу данных MariaDB.
Для начала установите MariaDB с помощью приведенной ниже команды yum.
yum -y install mariadb mariadb-server
После завершения установки запустите mariadb и включите его запуск при загрузке системы.
systemctl start mariadb
systemctl enable mariadbТеперь нам нужно настроить пароль root для базы данных MariaDB. Выполните следующую команду, чтобы настроить пароль root для MariaDB.
mysql_secure_installation
Введите Y и нажмите Enter.
Set root password? [Y/n] Y
TYPE ROOT PASSWORD HERE
Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] YMariaDB была установлена в системе CentOS 7, и был настроен пароль для пользователя root.
Далее мы создадим новую базу данных для MediaWiki. В частности, мы создадим новую базу данных с именем mediawikidb, с новым пользователем/владельцем mediawiki и паролем mypassword.
Подключитесь к оболочке mysql с помощью команды mysql.
mysql -u root -p
TYPE YOUR ROOT PASSWORDТеперь выполните следующие запросы mysql для создания новой базы данных для MediaWiki.
create database mediawikidb;
grant all privileges on mediawikidb.* to 'localhost' identified by 'mypassword';
flush privileges;
exit;Созданы новая база данных и пользователь для установки MediaWiki.
Шаг 4 — Загрузите и настройте MediaWiki
В этом руководстве мы будем использовать последнюю версию (1.30) MediaWiki и загрузим весь исходный код MediaWiki из репозитория. Итак, нам нужен git и несколько пакетов, установленных в системе.
Установите git и другие пакеты с помощью приведенной ниже команды yum.
yum -y install git zip unzip composer
После завершения установки создайте новый каталог /var/www/mediawiki и клонируйте исходный код mediawiki в этот каталог.
mkdir -p /var/www/mediawiki
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawikiЗатем перейдите в каталог /var/www/mediawiki и установите некоторые зависимости PHP, необходимые для установки MediaWiki, с помощью команды composer, как показано ниже.
cd /var/www/mediawiki
composer install --no-devТеперь измените права собственности на каталог mediawiki на nginx (как пользователя, так и группу).
chown -R nginx:nginx /var/www/mediawiki
Исходный код MediaWiki был загружен в каталог /var/www/mediawiki, и все зависимости были установлены.
Шаг 5 — Создайте SSL Letsencrypt на CentOS 7
Из соображений безопасности MediaWiki будет работать только при HTTPS-соединении. И все запросы к HTTP будут перенаправлены на HTTPS веб-сервером Nginx.
Чтобы запустить MediaWiki по безопасному соединению HTTPS, нам нужны SSL-сертификаты. Поэтому мы будем использовать бесплатный сертификат SSL от Letsencrypt.
Установка позволяет зашифровать инструмент командной строки с помощью приведенной ниже команды yum.
yum -y install letsencrypt
После завершения установки остановите службу Nginx с помощью команды systemctl.
systemctl stop nginx
Далее мы создадим новый SSL-сертификат с помощью команды letsencrypt. Но перед этим убедитесь, что службы HTTP и HTTPS добавлены в Firewalld.
Вот как вы добавляете новые службы HTTP и HTTPS в Firewalld.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reloadСоздайте новый бесплатный сертификат SSL, позволяющий зашифровать сертификат, используя приведенную ниже команду letsencrypt.
letsencrypt certonly
Команда спросит вас об аутентификации ACME. Выберите номер 1, чтобы запустить временный веб-сервер.
Затем введите свой адрес электронной почты для уведомления о продлении, затем введите A, чтобы согласиться с Условиями предоставления услуг Letsencrypt (TOS), и, наконец, введите имя своего домена вики.
После всего проделанного вы получите результат, подобный показанному ниже.
Новый сертификат SSL от Letsencrypt создан и сохранен в каталоге /etc/letsencrypt/live.
Шаг 6. Настройте виртуальный хост Nginx для MediaWiki.
На этом этапе мы создадим новую конфигурацию виртуального хоста Nginx для MediaWiki.
Перейдите в каталог /etc/nginx и создайте новый файл конфигурации mediawiki.conf с помощью редактора vim.
cd /etc/nginx/
vim conf.d/mediawiki.confВставьте конфигурацию ниже.
# HTTP Request will be Redirected to the HTTPS
server {
listen 80;
listen [::]:80;
server_name wiki.hakase-labs.co;
return 301 https://$host$request_uri;
}
# HTTPS Configuration
server {
listen 443 ssl;
listen [::]:443;
server_name wiki.hakase-labs.co;
root /var/www/mediawiki;
index index.php;
autoindex off;
# SSL Certificate Configuration
ssl_certificate /etc/letsencrypt/live/wiki.hakase-labs.co/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/wiki.hakase-labs.co/privkey.pem;
client_max_body_size 5m;
client_body_timeout 60;
location / {
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/(.*)$ /index.php?title=$1&$args;
}
location ^~ /maintenance/ {
return 403;
}
# PHP-FPM Configuration Nginx
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
try_files $uri /index.php;
expires max;
log_not_found off;
}
location = /_.gif {
expires max;
empty_gif;
}
location ^~ ^/(cache|includes|maintenance|languages|serialized|tests|images/deleted)/ {
deny all;
}
location ^~ ^/(bin|docs|extensions|includes|maintenance|mw-config|resources|serialized|tests)/ {
internal;
}
# Security for 'image' directory
location ~* ^/images/.*.(html|htm|shtml|php)$ {
types { }
default_type text/plain;
}
# Security for 'image' directory
location ^~ /images/ {
try_files $uri /index.php;
}
}Вот и все. Сохраните изменения и выйдите из редактора.
Примечание:
- Измените имя домена на свой собственный домен.
- Изменить путь к файлам SSL-сертификата
Теперь проверьте конфигурацию Nginx и убедитесь, что ошибок нет, затем перезапустите службу Nginx.
nginx -t
systemctl restart nginxДобавлена конфигурация виртуального хоста Nginx для MediaWiki, которая готова к установке MediaWiki из веб-браузера.
Шаг 7 — Установка MediaWiki через Интернет
Откройте веб-браузер и введите URL-адрес MediaWiki.
http://wiki.hakase-labs.co/
Вы будете перенаправлены на HTTPS-соединение. На веб-странице щелкните ссылку Настроить вики.
Конфигурация языка
Выберите английский язык и нажмите «Продолжить».
Проверка окружающей среды
Убедитесь, что вся конфигурация сервера прошла проверку среды.
Затем нажмите «Продолжить».
Конфигурация базы данных
Введите имя базы данных как mediawikidb и имя пользователя mediawiki с паролем mypassword.
Теперь нажмите «Продолжить».
Настройки базы данных
Оставьте его по умолчанию и нажмите «Продолжить».
Создать нового пользователя-администратора
Введите своего собственного пользователя-администратора, адрес электронной почты, пароль и нажмите «Продолжить».
Дополнительные настройки MediaWiki
Теперь мы попадаем на страницу дополнительной настройки MediaWiki, как показано ниже.
Оставьте во всех полях значения по умолчанию и нажмите «Продолжить».
Установка MediaWiki
Нажмите «Продолжить», чтобы установить MediaWiki.
И вы попадете на страницу ниже.
Нажмите «Продолжить» еще раз.
И установка MediaWiki завершена. Нам будет предложено загрузить новый файл LocalSettings.php — загрузите этот файл.
Затем нам нужно загрузить недавно загруженный файл LocalSetting.php в каталог MediaWiki /var/www/mediawiki на сервере. Так же не забудьте сменить права собственности файла на www-data (и пользовательские, и групповые).
scp LocalSettings.php :/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawikiВернитесь на страницу установки MediaWiki в веб-браузере и щелкните ссылку, чтобы войти в свою вики. Вы увидите, что MediaWiki был установлен с веб-сервером Nginx на сервере CentOS 7.
Шаг 8. Загрузите и настройте скин MediaWiki по умолчанию.
На этом этапе установка MediaWiki завершена. На этом этапе мы настроим скин/тему по умолчанию для нашего сайта MediaWiki.
Перейдите в каталог /var/www/mediawiki/skins и клонируйте скин по умолчанию с именем Vector в этот каталог.
cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/VectorИзмените владельца каталога скина Vector на пользователя и группу nginx.
chown -R nginx:nginx /var/www/mediawiki/skins/
Теперь отредактируйте файл LocalSettings.php с помощью редактора vim.
vim /var/www/mediawiki/LocalSettings.php
Вставьте следующий код PHP в конец файла.
wfLoadSkin( 'Vector' );
Вот и все. Сохранить и выйти.
Вернитесь в свой веб-браузер и обновите страницу MediaWiki. Убедитесь, что вы видите MediaWiki с оболочкой Vector, как показано ниже.
Установка и настройка MediaWiki с веб-сервером Nginx на CentOS 7 успешно завершена.
Ссылка
- https://www.mediawiki.org/wiki/