Operating System Configuration
- Operating System Configuration
This article details the recommended operating system configuration for running a MediaWiki 1.40 installation. Proper OS configuration is crucial for performance, security, and stability. This guide is geared towards system administrators and those new to setting up a MediaWiki server.
Supported Operating Systems
MediaWiki 1.40 is known to function reliably on a variety of operating systems. However, some are more commonly used and better supported. The following table summarizes the most frequently used options:
Operating System | Version | Support Level |
---|---|---|
Linux | Debian 11 (Bullseye) | Excellent |
Linux | Ubuntu 20.04 LTS (Focal Fossa) | Excellent |
Linux | CentOS 7 (EOL June 30, 2024 - *Migration Recommended*) | Limited |
Windows Server | 2019 | Good (Requires IIS configuration) |
Windows Server | 2022 | Good (Requires IIS configuration) |
It's strongly recommended to use a Long Term Support (LTS) distribution of Linux for stability and security updates. See Operating System Selection for further discussion.
Essential OS Packages
Several OS packages are essential for MediaWiki to function correctly. These include a web server, a database server, PHP, and necessary extensions.
Package Type | Package Name (Example - varies by OS) | Purpose |
---|---|---|
Web Server | Apache 2.4 or Nginx 1.18 | Handles HTTP requests and serves MediaWiki files. See Web Server Configuration. |
Database Server | MySQL 8.0 or MariaDB 10.6 | Stores all MediaWiki data. See Database Server Configuration. |
PHP | PHP 7.4 or PHP 8.1 | Processes MediaWiki code and generates HTML output. See PHP Configuration. |
PHP Extensions | php-gd, php-mbstring, php-xml, php-curl, php-zip | Provides additional functionality for MediaWiki. See PHP Extensions. |
Command-line Tools | bash, curl, wget | Useful for maintenance and troubleshooting. See Command Line Tools. |
Ensure all packages are up-to-date using your operating system’s package manager (e.g., `apt update && apt upgrade` on Debian/Ubuntu, `yum update` on CentOS).
Recommended System Resources
The system resources required depend on the size and traffic of your wiki. The following table provides recommendations for small, medium, and large wikis. These are *minimum* recommendations; more resources will improve performance.
Wiki Size | CPU | RAM | Disk Space | Concurrent Users (Approximate) |
---|---|---|---|---|
Small ( < 10,000 pages) | 2 cores | 4 GB | 50 GB | 50 |
Medium (10,000 - 100,000 pages) | 4 cores | 8 GB | 100 GB | 200 |
Large ( > 100,000 pages) | 8+ cores | 16+ GB | 500+ GB (SSD recommended) | 500+ |
Consider using Solid State Drives (SSDs) for the database and MediaWiki installation to significantly improve performance. See Performance Tuning for more advanced optimization techniques.
Security Considerations
Operating system security is paramount. Always follow best practices for securing your server.
- **Firewall:** Configure a firewall (e.g., `ufw` on Ubuntu, `firewalld` on CentOS) to allow only necessary traffic (typically ports 80 and 443 for HTTP/HTTPS). See Firewall Configuration.
- **User Accounts:** Use strong passwords and limit user access to only what is necessary.
- **Regular Updates:** Keep the operating system and all installed packages up-to-date with the latest security patches.
- **SSH Access:** Secure SSH access by disabling password authentication and using SSH keys. Secure Shell Access.
- **Disable Unnecessary Services:** Disable any unnecessary services to reduce the attack surface.
- **SELinux/AppArmor:** Utilize security modules like SELinux (CentOS) or AppArmor (Ubuntu) for mandatory access control. Security Modules.
File System Permissions
Proper file system permissions are essential for MediaWiki to function correctly and securely. The web server user (e.g., `www-data` on Debian/Ubuntu, `apache` on CentOS) needs read and write access to the following directories:
- `config/` (Read/Write)
- `images/` (Read/Write)
- `extensions/` (Read/Write)
- `uploads/` (Read/Write)
The `config/` directory should have restricted permissions (e.g., 750) to prevent unauthorized access to sensitive configuration files. See File System Permissions for a detailed guide.
Further Reading
- Setting Up a Development Environment
- Server Hardening
- Troubleshooting Common Issues
- Backups and Disaster Recovery
- Monitoring Server Resources
Intel-Based Server Configurations
Configuration | Specifications | Benchmark |
---|---|---|
Core i7-6700K/7700 Server | 64 GB DDR4, NVMe SSD 2 x 512 GB | CPU Benchmark: 8046 |
Core i7-8700 Server | 64 GB DDR4, NVMe SSD 2x1 TB | CPU Benchmark: 13124 |
Core i9-9900K Server | 128 GB DDR4, NVMe SSD 2 x 1 TB | CPU Benchmark: 49969 |
Core i9-13900 Server (64GB) | 64 GB RAM, 2x2 TB NVMe SSD | |
Core i9-13900 Server (128GB) | 128 GB RAM, 2x2 TB NVMe SSD | |
Core i5-13500 Server (64GB) | 64 GB RAM, 2x500 GB NVMe SSD | |
Core i5-13500 Server (128GB) | 128 GB RAM, 2x500 GB NVMe SSD | |
Core i5-13500 Workstation | 64 GB DDR5 RAM, 2 NVMe SSD, NVIDIA RTX 4000 |
AMD-Based Server Configurations
Configuration | Specifications | Benchmark |
---|---|---|
Ryzen 5 3600 Server | 64 GB RAM, 2x480 GB NVMe | CPU Benchmark: 17849 |
Ryzen 7 7700 Server | 64 GB DDR5 RAM, 2x1 TB NVMe | CPU Benchmark: 35224 |
Ryzen 9 5950X Server | 128 GB RAM, 2x4 TB NVMe | CPU Benchmark: 46045 |
Ryzen 9 7950X Server | 128 GB DDR5 ECC, 2x2 TB NVMe | CPU Benchmark: 63561 |
EPYC 7502P Server (128GB/1TB) | 128 GB RAM, 1 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (128GB/2TB) | 128 GB RAM, 2 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (128GB/4TB) | 128 GB RAM, 2x2 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (256GB/1TB) | 256 GB RAM, 1 TB NVMe | CPU Benchmark: 48021 |
EPYC 7502P Server (256GB/4TB) | 256 GB RAM, 2x2 TB NVMe | CPU Benchmark: 48021 |
EPYC 9454P Server | 256 GB RAM, 2x2 TB NVMe |
Order Your Dedicated Server
Configure and order your ideal server configuration
Need Assistance?
- Telegram: @powervps Servers at a discounted price
⚠️ *Note: All benchmark scores are approximate and may vary based on configuration. Server availability subject to stock.* ⚠️