MediaWiki Instaleation and Configuration
MediaWiki is the free and open-source wiki software powering Wikipedia and countless other wikis. It provides a collaborative environment for creating and sharing knowledge with powerful editing tools, version control, and access management. This guide covers PHP setup, MySQL database configuration, Apache/Nginx installation, extension installation, and custom skin configuration.
Tabla de contenidos
- Prerequisites
- System Requirements
- Web Server Instaleation
- PHP and Extensions
- Database Setup
- MediaWiki Instaleation
- Web Server Configuration
- Initial Configuration
- Extension Instaleation
- Skin and Theme Configuration
- Backup and Maintenance
- Conclusion
Requisitos previos
Ensure you have:
- Ubuntu 20.04 LTS or later
- Root or sudo access
- A registered domain name
- Minimum 2GB RAM
- 20GB available disk space
- Basic Linux administration knowledge
Update system:
sudo apt update && sudo apt upgrade -y
Requisitos del sistema
Verifique las especificaciones del sistema:
Check OS version:
cat /etc/os-release
uname -m
Check available resources:
free -h
df -h
Instalación del servidor web
Instale Apache with mod_php:
sudo apt install -y apache2 apache2-utils libapache2-mod-php
Or install Nginx with PHP-FPM:
sudo apt install -y nginx php-fpm
Enable Apache modules:
sudo a2enmod rewrite
sudo a2enmod headers
sudo a2enmod ssl
Start services:
sudo systemctl start apache2
sudo systemctl start nginx
sudo systemctl enable apache2
sudo systemctl enable nginx
PHP and Extensions
Instale PHP 8.0 or later:
sudo apt install -y php php-common php-mysql php-xml php-mbstring php-json php-curl php-gd php-intl php-opcache php-cli
Check PHP version:
php --version
Verifique extensions:
php -m | grep -E "mysql|xml|mbstring|json|curl|gd|intl"
Configure PHP:
sudo nano /etc/php/8.0/apache2/php.ini
Update settings:
memory_limit = 256M
max_execution_time = 300
post_max_size = 100M
upload_max_filesize = 100M
display_errors = Off
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
Reinicie PHP:
sudo systemctl restart php8.0-fpm
Configuración de la base de datos
Instale MySQL Server:
sudo apt install -y mysql-server
Start and secure MySQL:
sudo systemctl start mysql
sudo systemctl enable mysql
sudo mysql_secure_installation
Cree MediaWiki database:
sudo mysql -u root -p << EOF
CREATE DATABASE mediawiki;
CREATE USER 'mediawiki'@'localhost' IDENTIFIED BY 'SecurePassword123!';
GRANT ALL PRIVILEGES ON mediawiki.* TO 'mediawiki'@'localhost';
FLUSH PRIVILEGES;
EXIT;
EOF
Test connection:
mysql -u mediawiki -p -h localhost mediawiki
EXIT;
MediaWiki Instaleation
Cree installation directory:
sudo mkdir -p /var/www/mediawiki
sudo chown -R www-data:www-data /var/www/mediawiki
cd /var/www/mediawiki
Descargue MediaWiki:
wget https://releases.wikimedia.org/mediawiki/1.39/mediawiki-1.39.1.tar.gz
tar -xzf mediawiki-1.39.1.tar.gz
sudo cp -r mediawiki-1.39.1/* /var/www/mediawiki/
Set permissions:
sudo chown -R www-data:www-data /var/www/mediawiki
sudo chmod -R 755 /var/www/mediawiki
sudo chmod 700 /var/www/mediawiki/config
Web Server Configuration
Apache Configuration
Cree virtual host:
sudo nano /etc/apache2/sites-available/mediawiki.conf
Add configuration:
<VirtualHost *:80>
ServerName wiki.example.com
ServerAlias www.wiki.example.com
DocumentRoot /var/www/mediawiki
<Directory /var/www/mediawiki>
AllowOverride All
Require all granted
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php [QSA,L]
</IfModule>
</Directory>
<Directory /var/www/mediawiki/config>
Require all denied
</Directory>
ErrorLog ${APACHE_LOG_DIR}/mediawiki_error.log
CustomLog ${APACHE_LOG_DIR}/mediawiki_access.log combined
</VirtualHost>
Enable site:
sudo a2ensite mediawiki.conf
sudo a2dissite 000-default.conf
sudo apache2ctl configtest
sudo systemctl reload apache2
Configuración de Nginx
Cree Nginx configuration:
sudo nano /etc/nginx/sites-available/mediawiki
Add configuration:
server {
listen 80;
server_name wiki.example.com www.wiki.example.com;
root /var/www/mediawiki;
index index.php;
location / {
try_files $uri $uri/ /index.php?$args;
}
location /config {
deny all;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.0-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ /\. {
deny all;
}
}
Enable site:
sudo ln -s /etc/nginx/sites-available/mediawiki /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx
Configuración inicial
Access MediaWiki installation wizard:
Navigate to http://wiki.example.com/mw-config/ and follow the setup wizard:
-
Select language
-
Configure database:
- Database host: localhost
- Database name: mediawiki
- Database user: mediawiki
- Database password: SecurePassword123!
-
Configure wiki:
- Wiki name
- Admin username and password
- Email address
Complete the installation. Move LocalSettings.php:
sudo mv /var/www/mediawiki/config/LocalSettings.php /var/www/mediawiki/
sudo rm -rf /var/www/mediawiki/config
sudo chmod 644 /var/www/mediawiki/LocalSettings.php
Verifique installation:
Navigate to http://wiki.example.com
Extension Instaleation
Descargue useful extensions:
cd /var/www/mediawiki/extensions
Instale VisualEditor:
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/VisualEditor.git
Instale ParserFunctions:
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/ParserFunctions.git
Instale Cite:
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/Cite.git
Set permissions:
sudo chown -R www-data:www-data /var/www/mediawiki/extensions
Enable extensions in LocalSettings.php:
sudo nano /var/www/mediawiki/LocalSettings.php
Add at end:
wfLoadExtension( 'VisualEditor' );
wfLoadExtension( 'ParserFunctions' );
wfLoadExtension( 'Cite' );
$wgDefaultUserOptions['visualeditor-enable'] = 1;
Skin and Theme Configuration
View available skins:
ls -la /var/www/mediawiki/skins/
Descargue additional skins:
cd /var/www/mediawiki/skins
sudo git clone https://gerrit.wikimedia.org/r/mediawiki/skins/MinervaNeue.git
Configure skin in LocalSettings.php:
sudo nano /var/www/mediawiki/LocalSettings.php
Set default skin:
$wgDefaultSkin = 'vector-2022';
Or use alternative skin:
$wgDefaultSkin = 'minerva';
Configure skin appearance:
$wgVectorDefaultSkinVersion = '2';
$wgVectorResponsive = true;
Copia de seguridad y mantenimiento
Cree backup script:
sudo nano /usr/local/bin/mediawiki-backup.sh
Add:
#!/bin/bash
BACKUP_DIR="/backups/mediawiki"
WIKI_DIR="/var/www/mediawiki"
DATE=$(date +%Y%m%d_%H%M%S)
mkdir -p $BACKUP_DIR
# Database backup
mysqldump -u mediawiki -p'SecurePassword123!' mediawiki | gzip > "$BACKUP_DIR/mediawiki-db-$DATE.sql.gz"
# Files backup
tar -czf "$BACKUP_DIR/mediawiki-files-$DATE.tar.gz" "$WIKI_DIR"
# Keep only 30 days
find $BACKUP_DIR -type f -mtime +30 -delete
echo "Backup completed: $DATE"
Make executable:
sudo chmod +x /usr/local/bin/mediawiki-backup.sh
Schedule daily backups:
sudo crontab -e
Add:
0 2 * * * /usr/local/bin/mediawiki-backup.sh >> /var/log/mediawiki-backup.log 2>&1
Run database maintenance:
cd /var/www/mediawiki/maintenance
sudo -u www-data php update.php
sudo -u www-data php rebuildrecentchanges.php
Schedule maintenance tasks:
sudo crontab -e
Add:
0 3 * * * cd /var/www/mediawiki/maintenance && php update.php >> /var/log/mediawiki-maintenance.log 2>&1
Conclusión
MediaWiki is now fully installed and configured, providing a collaborative wiki platform. With proper extension installation, skin customization, and regular backups, you have a complete knowledge management system. Configure user permissions, enable advanced features, and build your wiki content. MediaWiki's flexibility and power make it suitable for internal documentation, community wikis, and collaborative projects.


