Mediawiki 1.31 Instalasi Docker Ubuntu 24.04
Catatan penting
MediaWiki 1.31.16 sudah berstatus *End of Life* sejak 30 September 2021 dan tidak lagi menerima perbaikan keamanan. Versi ini mensyaratkan minimal PHP 7.0.13 dan dibuat untuk generasi PHP 7, bukan PHP 8.5 yang tersedia pada Ubuntu 26.04. Karena itu, jangan memasangnya langsung ke PHP utama Ubuntu dan jangan membuka instalasi ini ke internet. ([mediawiki.org][1])
Cara yang lebih aman untuk kebutuhan migrasi, pemulihan data lama, atau pengujian adalah:
Ubuntu 26.04
└── Docker
├── Apache + PHP 7.4 + MediaWiki 1.31.16
└── MariaDB 10.6
Docker resmi mendukung Ubuntu 26.04, dan image resmi PHP menyediakan varian Apache. ([Docker Documentation][2])
1. Periksa apakah Docker sudah terpasang
docker --version docker compose version
Jika kedua perintah menampilkan versi, lanjut langsung ke langkah 3.
2. Instal Docker di Ubuntu 26.04
Pasang paket pendukung:
sudo apt update sudo apt install -y ca-certificates curl
Keterangan:
- `sudo`: menjalankan perintah sebagai administrator.
- `apt update`: memperbarui daftar paket.
- `-y`: otomatis menjawab “yes” saat instalasi.
- `ca-certificates`: memungkinkan verifikasi koneksi HTTPS.
- `curl`: mengunduh data dari internet.
Tambahkan kunci resmi Docker:
sudo install -m 0755 -d /etc/apt/keyrings
Keterangan:
- `install -d`: membuat direktori.
- `-m 0755`: mengatur izin direktori menjadi `rwxr-xr-x`.
Unduh kunci Docker:
sudo curl -fsSL \ https://download.docker.com/linux/ubuntu/gpg \ -o /etc/apt/keyrings/docker.asc
Keterangan:
- `-f`: gagal jika server mengembalikan kesalahan.
- `-s`: mode senyap.
- `-S`: tetap menampilkan pesan kesalahan.
- `-L`: mengikuti pengalihan URL.
- `-o`: menentukan nama file tujuan.
Atur agar kunci dapat dibaca APT:
sudo chmod a+r /etc/apt/keyrings/docker.asc
Tambahkan repositori Docker:
sudo tee /etc/apt/sources.list.d/docker.sources >/dev/null <<EOF Types: deb URIs: https://download.docker.com/linux/ubuntu Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}") Components: stable Architectures: $(dpkg --print-architecture) Signed-By: /etc/apt/keyrings/docker.asc EOF
Kemudian instal Docker Engine dan Docker Compose:
sudo apt update sudo apt install -y \ docker-ce \ docker-ce-cli \ containerd.io \ docker-buildx-plugin \ docker-compose-plugin
Aktifkan Docker:
sudo systemctl enable --now docker
Keterangan:
- `enable`: menjalankan Docker otomatis saat boot.
- `--now`: langsung menjalankan Docker sekarang.
Tes:
sudo docker run --rm hello-world
- `--rm`: menghapus container pengujian setelah selesai.
Langkah tersebut mengikuti repositori dan paket resmi Docker untuk Ubuntu 26.04. ([Docker Documentation][2])
3. Siapkan direktori instalasi
Asumsikan file berada di:
~/Downloads/mediawiki-1.31.16.tar.gz
Buat direktori proyek:
mkdir -p ~/mediawiki131
- `-p`: membuat seluruh direktori yang diperlukan dan tidak menghasilkan error jika sudah ada.
Salin paket:
cp ~/Downloads/mediawiki-1.31.16.tar.gz ~/mediawiki131/
Masuk ke direktori proyek:
cd ~/mediawiki131
Ekstrak paket:
tar -xzf mediawiki-1.31.16.tar.gz
Keterangan:
- `-x`: mengekstrak arsip.
- `-z`: membuka kompresi gzip.
- `-f`: menggunakan nama file setelah opsi tersebut.
Periksa hasilnya:
ls -la mediawiki-1.31.16
4. Buat Dockerfile PHP 7.4
Masih di dalam direktori:
~/mediawiki131
Buat file `Dockerfile`:
nano Dockerfile
Masukkan:
FROM php:7.4-apache
RUN apt-get update \
&& apt-get install -y --no-install-recommends \
imagemagick \
libfreetype6-dev \
libicu-dev \
libjpeg62-turbo-dev \
libonig-dev \
libpng-dev \
libxml2-dev \
libzip-dev \
&& docker-php-ext-configure gd --with-freetype --with-jpeg \
&& docker-php-ext-install -j"$(nproc)" \
gd \
intl \
mbstring \
mysqli \
opcache \
xml \
zip \
&& a2enmod rewrite \
&& rm -rf /var/lib/apt/lists/*
COPY mediawiki-1.31.16/ /var/www/html/
RUN chown -R www-data:www-data /var/www/html
Simpan dengan:
Ctrl+O Enter Ctrl+X
Dockerfile ini membuat Apache dan PHP 7.4 terisolasi dari PHP utama Ubuntu.
5. Buat password database
Jalankan:
MW_DB_PASSWORD=$(openssl rand -hex 24) MW_DB_ROOT_PASSWORD=$(openssl rand -hex 24)
- `openssl rand`: membuat nilai acak.
- `-hex`: menampilkan nilai dalam format heksadesimal.
- `24`: membuat 24 byte data acak.
Buat file `.env`:
cat > .env <<EOF MW_DB_NAME=mediawiki MW_DB_USER=mediawiki MW_DB_PASSWORD=$MW_DB_PASSWORD MW_DB_ROOT_PASSWORD=$MW_DB_ROOT_PASSWORD EOF
Batasi izin file:
chmod 600 .env
`600` berarti hanya pemilik file yang dapat membaca dan mengubahnya.
Lihat kredensialnya:
cat .env
Simpan nilai `MW_DB_PASSWORD`, karena akan dimasukkan ke installer MediaWiki.
6. Buat konfigurasi Docker Compose
Buat file:
nano compose.yaml
Masukkan:
services:
database:
image: mariadb:10.6
container_name: mediawiki131-db
restart: unless-stopped
environment:
MARIADB_DATABASE: ${MW_DB_NAME}
MARIADB_USER: ${MW_DB_USER}
MARIADB_PASSWORD: ${MW_DB_PASSWORD}
MARIADB_ROOT_PASSWORD: ${MW_DB_ROOT_PASSWORD}
volumes:
- database_data:/var/lib/mysql
mediawiki:
build:
context: .
dockerfile: Dockerfile
container_name: mediawiki131-web
restart: unless-stopped
depends_on:
- database
ports:
- "127.0.0.1:8080:80"
volumes:
- mediawiki_files:/var/www/html
volumes:
database_data:
mediawiki_files:
Konfigurasi tersebut sengaja menggunakan:
127.0.0.1:8080:80
Artinya MediaWiki hanya dapat diakses dari server sendiri atau melalui SSH tunnel, bukan langsung dari internet.
MediaWiki mendokumentasikan pola Docker Compose dengan volume, database terpisah, dan pemasangan `LocalSettings.php` setelah proses installer selesai. ([MediaWiki][3])
7. Bangun dan jalankan container
sudo docker compose up --build -d
Keterangan:
- `up`: membuat dan menjalankan semua service.
- `--build`: membangun ulang image berdasarkan `Dockerfile`.
- `-d`: menjalankan container di belakang layar.
Proses pembangunan PHP 7.4 dan ekstensi mungkin menghasilkan banyak output.
Periksa status:
sudo docker compose ps
Hasil yang diharapkan kira-kira:
mediawiki131-db running mediawiki131-web running
Periksa versi PHP di container:
sudo docker exec mediawiki131-web php -v
Hasilnya seharusnya menunjukkan:
PHP 7.4.x
8. Buka installer MediaWiki
Bila Ubuntu menggunakan desktop
Buka browser:
http://127.0.0.1:8080
Bila Ubuntu adalah server jarak jauh
Dari komputer Anda, buka SSH tunnel:
ssh -L 8080:127.0.0.1:8080 namauser@IP_SERVER
Contoh:
ssh -L 8080:127.0.0.1:8080 onno@192.168.1.10
Keterangan:
- `-L`: membuat *local port forwarding*.
- `8080`: port pada komputer Anda.
- `127.0.0.1:8080`: layanan MediaWiki pada server.
Biarkan koneksi SSH tersebut terbuka, kemudian buka:
http://127.0.0.1:8080
9. Isi konfigurasi database
Pada installer MediaWiki, gunakan:
Database type : MySQL, MariaDB, or equivalent Database host : database Database name : mediawiki Database username : mediawiki Database password : nilai MW_DB_PASSWORD Table prefix : kosong Storage engine : InnoDB
Untuk melihat kembali password:
grep '^MW_DB_PASSWORD=' .env
Nama host database harus:
database
Bukan:
localhost
Karena `database` merupakan nama service MariaDB dalam jaringan Docker Compose.
10. Pasang LocalSettings.php
Setelah installer selesai, browser akan mengunduh:
LocalSettings.php
Jika browser berada pada komputer lain
Kirim file ke server:
scp ~/Downloads/LocalSettings.php \ namauser@IP_SERVER:~/mediawiki131/
Kemudian di server:
cd ~/mediawiki131
Salin ke container:
sudo docker cp \ LocalSettings.php \ mediawiki131-web:/var/www/html/LocalSettings.php
Atur pemilik:
sudo docker exec mediawiki131-web \ chown www-data:www-data /var/www/html/LocalSettings.php
Batasi izin:
sudo docker exec mediawiki131-web \ chmod 600 /var/www/html/LocalSettings.php
Restart MediaWiki:
sudo docker restart mediawiki131-web
Buka kembali:
http://127.0.0.1:8080
File `LocalSettings.php` berisi kredensial database dan memang harus dilindungi dari akses pengguna lain. ([MediaWiki][4])
11. Memeriksa error
Lihat 100 baris log terakhir MediaWiki:
sudo docker compose logs --tail=100 mediawiki
Lihat log database:
sudo docker compose logs --tail=100 database
Pantau log secara langsung:
sudo docker compose logs -f
- `--tail=100`: hanya menampilkan 100 baris terakhir.
- `-f`: terus mengikuti log baru.
12. Menghentikan dan menjalankan kembali
Menghentikan:
sudo docker compose stop
Menjalankan kembali:
sudo docker compose start
Restart semua service:
sudo docker compose restart
Menghapus container tetapi mempertahankan database dan volume:
sudo docker compose down
Jangan jalankan ini kecuali benar-benar ingin menghapus data:
sudo docker compose down -v
Opsi `-v` menghapus volume, termasuk database dan file MediaWiki.
Rekomendasi akhir
Gunakan MediaWiki 1.31.16 ini hanya untuk:
- membuka instalasi lama;
- memulihkan database lama;
- menguji ekstensi lama;
- mempersiapkan proses migrasi.
Untuk wiki baru atau server produksi, gunakan MediaWiki 1.45 atau LTS yang masih didukung. MediaWiki juga menyarankan upgrade versi lama dilakukan secara bertahap karena upgrade langsung dari rilis yang sangat tua tidak selalu didukung. ([MediaWiki][5])
[1]: https://www.mediawiki.org/wiki/Release_notes/1.31 "Release notes/1.31 - MediaWiki" [2]: https://docs.docker.com/engine/install/ubuntu/ "Install Docker Engine on Ubuntu | Docker Docs" [3]: https://www.mediawiki.org/wiki/Docker/Docker_Hub "Docker/Docker Hub - MediaWiki" [4]: https://www.mediawiki.org/wiki/Manual%3ALocalSettings.php?utm_source=chatgpt.com "Manual:LocalSettings.php" [5]: https://www.mediawiki.org/wiki/Compatibility "Compatibility - MediaWiki"