MediaWiki è un popolare software wiki originariamente sviluppato per l'uso su Wikipedia. È un software wiki gratuito e open source scritto nel linguaggio di programmazione PHP. Portato in vita da Magnus Manske nel 2002, lo strumento è ora alla versione 1.30. MediaWiki è stato utilizzato da molte grandi aziende, tra cui Nginx, Intel, Novell ecc.
In questo tutorial, discuteremo passo dopo passo come installare MediaWiki con il server web Nginx su CentOS 7. Ti guideremo anche come installare e configurare lo stack LEMP per l'installazione di MediaWiki, inclusa la generazione e la configurazione del nuovo SSL gratuito Letsencrypt per Sicurezza MediaWiki.
Cosa faremo
- Installa Nginx su CentOS 7
- Installa e configura PHP-FPM
- Installa e configura il database MariaDB
- Scarica e configura MediaWiki
- Genera nuovo SSL Letsencrypt su CentOS 7
- Configura l'host virtuale Nginx per l'installazione di MediaWiki
- Installazione basata sul Web di MediaWiki
- Configura la skin predefinita di MediaWiki
Prerequisiti
- Server CentOS 7
- Privilegi di root
Passaggio 1:installa Nginx su CentOS 7
Per questo tutorial, utilizzeremo il server web Nginx per l'installazione di MediaWiki. Su CentOS 7, il pacchetto Nginx non esiste. Quindi dobbiamo installarlo dal repository EPEL (Extra Packages for Enterprise Linux) di terze parti.
Aggiorna tutti i pacchetti e installa il repository EPEL nel sistema CentOS 7 utilizzando il comando yum di seguito.
yum -y update
yum -y install epel-release
Quindi, installa il server web Nginx.
yum -y install nginx
Al termine dell'installazione di Nginx, avvia il server e abilitalo all'esecuzione automatica all'avvio del sistema.
systemctl start nginx
systemctl enable nginx
Quindi il server web Nginx è stato installato sul server CentOS 7. Controlla le statistiche di rete usando il comando netstat e, nel risultato, dovresti ottenere la porta HTTP utilizzata dal servizio Nginx.
netstat -plntu
Fase 2 - Installa e configura PHP-FPM
In questo tutorial utilizzeremo PHP 7.0. E qui, in questo passaggio, installeremo PHP 7.0 (incluse le estensioni) e configureremo PHP-FPM per l'installazione di MediaWiki.
Utilizzeremo pacchetti PHP 7.0 dal repository di terze parti 'webtatic'. Aggiungi un nuovo repository 'webtatic' per l'installazione di PHP 7.0 utilizzando il comando seguente.
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Ora possiamo installare PHP 7.0 con tutte le estensioni necessarie usando il comando yum qui sotto.
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
Con questo, l'installazione di PHP 7.0 su CentOS 7 è stata completata.
Successivamente, configureremo il servizio PHP-FPM. Modificheremo il file php.ini per la configurazione delle informazioni sul percorso CGI, quindi modificheremo la configurazione 'www.conf' per configurare il servizio PHP-FPM. Quindi configureremo PHP-FPM per l'esecuzione sotto il file sock (con utente e gruppo 'nginx').
Modifica il file 'php.ini' utilizzando l'editor di vim.
vim /etc/php.ini
Decommenta la riga sottostante e cambia il valore in 0.
cgi.fix_pathinfo=0
Salva le modifiche ed esci dall'editor.
Ora modifica il file di configurazione PHP-FPM 'www.conf'.
vim /etc/php-fpm.d/www.conf
Modifica il valore della riga utente e gruppo in 'nginx'.
user = nginx
group = nginx
Ora cambia il valore della variabile 'listen' nel file 'php-fpm.sock', come mostrato di seguito.
listen = /run/php-fpm/php-fpm.sock
Dobbiamo configurare le autorizzazioni del file sock, nonché il proprietario della directory del file sock. Decommenta la riga listen.owner e listen.group e cambia i valori corrispondenti in "nginx".
listen.owner = nginx
listen.group =nginx
listen.mode = 0660
Per una configurazione aggiuntiva, decommenta le righe di seguito.
env[HOSTNAME] = $HOSTNAME
env[PATH] = /usr/local/bin:/usr/bin:/bin
env[TMP] = /tmp
env[TMPDIR] = /tmp
env[TEMP] = /tmp
Questo è tutto. Salva ed esci.
Quindi, crea una nuova directory per la configurazione del percorso delle sessioni.
Esegui i comandi seguenti per creare la directory delle sessioni.
mkdir -p /var/lib/php/session/
chown -R nginx:nginx /var/lib/php/session/
Al termine, avvia il servizio PHP-FPM e abilita l'esecuzione automatica all'avvio del sistema.
systemctl start php-fpm
systemctl enable php-fpm
Controlla PHP-FPM usando il comando netstat di seguito.
netstat -pl | grep php
E assicurati di ottenere il file php-fpm.sock come risultato.
Fase 3 - Installa e configura il database MariaDB
MediaWiki supporta i database MySQL/MariaDB e SQLite. In questo tutorial, tuttavia, utilizzeremo il database MariaDB.
Per cominciare, installa MariaDB usando il comando yum di seguito.
yum -y install mariadb mariadb-server
Al termine dell'installazione, avvia mariadb e abilitalo all'avvio all'avvio del sistema.
systemctl start mariadb
systemctl enable mariadb
Ora dobbiamo configurare la password 'root' per il database MariaDB. Esegui il comando seguente per configurare la password 'root' di MariaDB.
mysql_secure_installation
Digita "Y" e premi Invio.
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] Y
MariaDB è stata installata sul sistema CentOS 7 ed è stata configurata la password per l'utente 'root'.
Successivamente, creeremo un nuovo database per MediaWiki. Nello specifico, creeremo un nuovo database denominato 'mediawikidb ', con il nuovo utente/proprietario 'mediawiki ' e password 'miapassword '.
Connettiti alla shell mysql usando il comando mysql.
mysql -u root -p
TYPE YOUR ROOT PASSWORD
Ora esegui le seguenti query MySQL per creare un nuovo database per MediaWiki.
create database mediawikidb;
grant all privileges on mediawikidb.* to [email protected]'localhost' identified by 'mypassword';
flush privileges;
exit;
È stato creato un nuovo database e utente per l'installazione di MediaWiki.
Fase 4 - Scarica e configura MediaWiki
In questo tutorial, utilizzeremo l'ultima versione (1.30) di MediaWiki e scaricheremo tutto il codice sorgente di MediaWiki dal repository. Quindi abbiamo bisogno di git e di alcuni pacchetti installati sul sistema.
Installa git e altri pacchetti usando il comando yum di seguito.
yum -y install git zip unzip composer
Al termine dell'installazione, crea una nuova directory '/var/www/mediawiki' e clona il codice sorgente di mediawiki in quella directory.
mkdir -p /var/www/mediawiki
git clone https://gerrit.wikimedia.org/r/p/mediawiki/core.git /var/www/mediawiki
Quindi, vai alla directory '/var/www/mediawiki' e installa alcune dipendenze PHP necessarie per l'installazione di MediaWiki usando il comando composer, come mostrato di seguito.
cd /var/www/mediawiki
composer install --no-dev
Ora cambia i permessi di proprietà della directory mediawiki in 'nginx' (sia utente che gruppo).
chown -R nginx:nginx /var/www/mediawiki
Il sorgente di MediaWiki è stato scaricato nella directory '/var/www/mediawiki' e tutte le dipendenze sono state installate.
Passaggio 5:genera SSL Letsencrypt su CentOS 7
Per motivi di sicurezza, MediaWiki funzionerà solo sulla connessione HTTPS. E tutte le richieste a HTTP verranno reindirizzate a HTTPS dal server Web Nginx.
Per eseguire MediaWiki con la connessione protetta HTTPS, abbiamo bisogno di certificati SSL. Quindi utilizzeremo il certificato SSL gratuito di Letsencrypt.
Installa consente di crittografare lo strumento da riga di comando utilizzando il comando yum di seguito.
yum -y install letsencrypt
Al termine dell'installazione, arresta il servizio Nginx utilizzando il comando systemctl.
systemctl stop nginx
Successivamente, genereremo un nuovo certificato SSL utilizzando il comando letencrypt. Ma prima di ciò, assicurati che i servizi HTTP e HTTPS siano stati aggiunti a Firewalld.
Ecco come aggiungere nuovi servizi HTTP e HTTPS a Firewalld.
firewall-cmd --add-service=http --permanent
firewall-cmd --add-service=https --permanent
firewall-cmd --reload
Genera nuovi certificati SSL gratuiti per crittografare il certificato utilizzando il comandoletsencrypt di seguito.
letsencrypt certonly
Il comando ti chiederà informazioni sull'autenticazione ACME. Scegli il numero '1' per far girare il server web temporaneo.
Quindi, digita il tuo indirizzo email per la notifica di rinnovo, quindi digita "A" per accettare i Termini di servizio (TOS) di Letsencrypt e infine digita il tuo nome di dominio wiki.
Dopo tutto ciò, otterrai un risultato simile a quello mostrato di seguito.
Il nuovo certificato SSL di Letsencrypt è stato generato e archiviato nella directory '/etc/letsencrypt/live'.
Passaggio 6:configurazione dell'host virtuale Nginx per MediaWiki
In questo passaggio, creeremo una nuova configurazione dell'host virtuale Nginx per MediaWiki.
Vai alla directory '/etc/nginx' e crea un nuovo file di configurazione 'mediawiki.conf' usando l'editor di vim.
cd /etc/nginx/
vim conf.d/mediawiki.conf
Incolla la configurazione di seguito.
# 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;
}
}
Questo è tutto. Salva le modifiche ed esci dall'editor.
Nota:
- Cambia il nome di dominio nel tuo dominio.
- Cambia il percorso dei file del certificato SSL
Ora prova la configurazione di Nginx e assicurati che non ci siano errori, quindi riavvia il servizio Nginx.
nginx -t
systemctl restart nginx
È stata aggiunta la configurazione dell'host virtuale Nginx per MediaWiki e siamo pronti per installare MediaWiki dal browser web.
Fase 7 - Installazione MediaWiki basata sul Web
Apri il tuo browser web e digita l'URL di MediaWiki.
http://wiki.hakase-labs.co/
Verrai reindirizzato alla connessione HTTPS. Nella pagina web, fai clic sul link "Configura il wiki".
Configurazione lingua
Scegli la lingua inglese "en" e fai clic su "Continua".
Verifica ambientale
Assicurati che tutta la configurazione del server abbia superato i controlli dell'ambiente.
Quindi fai clic su "Continua".
Configurazione database
Digita il nome del database come 'mediawikidb' e il nome utente 'mediawiki' con la password 'mypassword'.
Ora fai clic su "Continua".
Impostazioni database
Lascialo come predefinito e fai clic su "Continua".
Crea nuovo utente amministratore
Digita il tuo utente amministratore, e-mail, password, quindi fai clic su "Continua".
Configurazione aggiuntiva MediaWiki
Ora arriviamo alla pagina relativa alla "Configurazione aggiuntiva di MediaWiki", come mostrato di seguito.
Lascia tutti i campi con i valori predefiniti e fai clic su "Continua".
Installazione di MediaWiki
Fare clic su 'Continua' per installare MediaWiki.
E arriverai alla pagina sottostante.
Fai di nuovo clic su "Continua".
E l'installazione di MediaWiki è completa. Ci verrà chiesto di scaricare il nuovo file "LocalSettings.php" - scarica quel file.
Successivamente, dobbiamo caricare il file "LocalSetting.php" appena scaricato nella directory MediaWiki "/var/www/mediawiki" sul server. Inoltre, non dimenticare di modificare le autorizzazioni di proprietà del file in "www-data" (sia utente che gruppo).
scp LocalSettings.php [email protected]:/var/www/mediawiki/
chown -R www-data:www-data /var/www/mediawiki
Torna alla pagina di installazione di MediaWiki del tuo browser web e fai clic sul collegamento 'entra nella tua wiki'. Vedrai che MediaWiki è stato installato con il server web Nginx sul server CentOS 7.
Passaggio 8 - Scarica e configura la skin predefinita di MediaWiki
A questo punto, l'installazione di MediaWiki è stata completata. E in questo passaggio, configureremo la skin/il tema predefinito del nostro sito MediaWiki.
Vai alla directory '/var/www/mediawiki/skins' e clona la skin predefinita denominata 'Vector' in quella directory.
cd /var/www/mediawiki/skins/
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/Vector
Cambia il proprietario della directory della skin Vector in utente e gruppo 'nginx'.
chown -R nginx:nginx /var/www/mediawiki/skins/
Ora modifica il file 'LocalSettings.php' usando l'editor vim.
vim /var/www/mediawiki/LocalSettings.php
E incolla il seguente codice PHP alla fine del file.
wfLoadSkin( 'Vector' );
Questo è tutto. Salva ed esci.
Torna al tuo browser web e aggiorna la pagina di MediaWiki. Assicurati di vedere MediaWiki con la skin "Vector" come di seguito.
L'installazione e la configurazione di MediaWiki con il server web Nginx su CentOS 7 sono state completate con successo.