WP Server Terminal Pro
Terminal direktori WordPress untuk administrator — menjelajah filesystem (pwd, ls, cd) plus wget / curl untuk mengunduh file dari URL langsung ke dalam instalasi WordPress. Bekerja lewat PHP filesystem dan WordPress HTTP API, bukan shell Bash atau sesi SSH.
by sw4cyex · github.com/sw4cyex/wordpress-plugins---server-terminal-pro
Install
No release zip yet. The repository archive installs, but the folder name will carry the branch suffix and updates will not flow:
wp plugin install https://github.com/sw4cyex/wordpress-plugins---server-terminal-pro/archive/refs/heads/main.zipReadme
WP Server Terminal Pro
Terminal direktori WordPress untuk administrator — menjelajah filesystem (
pwd,ls,cd) pluswget/curluntuk mengunduh file dari URL langsung ke dalam instalasi WordPress. Bekerja lewat PHP filesystem dan WordPress HTTP API, bukan shell Bash atau sesi SSH.
Daftar Isi
- Tentang
- Fitur
- Yang Baru di Pro
- Instalasi
- Penggunaan
- Daftar Perintah
- Catatan wget / curl
- Keamanan
- Persyaratan
- Struktur File
- FAQ
- Lisensi
Tentang
WP Server Terminal Pro menambahkan halaman terminal di dashboard WordPress (Tools › Server Terminal) yang memungkinkan administrator menjelajahi struktur direktori instalasi WordPress dan mengunduh file dari internet — semuanya dari dalam wp-admin, tanpa akses SSH atau cPanel.
Berbeda dari plugin "web shell" biasa, plugin ini tidak menjalankan program apa pun di server. Navigasi memakai fungsi filesystem PHP, dan unduhan memakai WordPress HTTP API (download_url() / wp_remote_get()). Ini menjaga jejak eksekusi tetap sempit dan dapat diprediksi.
Fitur
- Navigasi direktori:
pwd,ls(dengan-adan-l),cd. - Unduh file dari URL dengan
wgetdancurl. - Tampilkan isi URL (mis. JSON/teks) langsung di terminal dengan
curl. - Riwayat perintah dengan tombol panah Atas/Bawah.
- Akses terbatas pada direktori instalasi WordPress (anti path-traversal).
- Hanya untuk administrator, dengan verifikasi nonce di setiap permintaan.
- Antarmuka ringan tanpa dependensi eksternal.
Yang Baru di Pro
| Basic | Pro 2.0.0 | |
|---|---|---|
pwd, ls, cd |
✅ | ✅ |
| Riwayat perintah | ✅ | ✅ |
wget <url> |
— | ✅ |
curl -O / curl -o |
— | ✅ |
curl <url> (tampilkan body) |
— | ✅ |
| Sanitasi nama file otomatis | — | ✅ |
Anti-timpa (sufiks .1, .2, …) |
— | ✅ |
| Batas ukuran unduhan | — | ✅ 100 MB |
Instalasi
-
Kompres ketiga file menjadi satu arsip (file berada di root arsip):
wp-server-terminal.phpterminal.jsREADME.txt
Beri nama
wp-server-terminal.zip. -
Buka Dashboard WordPress › Plugins › Add New › Upload Plugin.
-
Pilih
wp-server-terminal.zip, klik Install Now, lalu Activate.Nonaktifkan versi Basic bila terpasang untuk menghindari menu ganda.
-
Buka Tools / Peralatan › Server Terminal.
Penggunaan
Ketik help di terminal untuk melihat semua perintah. Path atau URL yang mengandung spasi dapat diapit tanda kutip, mis. cd "folder dengan spasi".
$ pwd
/var/www/html
$ cd wp-content
/var/www/html/wp-content
$ wget https://contoh.com/berkas.zip
Tersimpan: berkas.zip
Lokasi: /var/www/html/wp-content/berkas.zip
Ukuran: 2.41 MB
Daftar Perintah
| Perintah | Keterangan |
|---|---|
pwd |
Tampilkan direktori aktif |
ls [-a] [-l] [path] |
Daftar isi direktori (maks. 500 entri) |
cd [path] |
Pindah direktori; tanpa argumen kembali ke root WordPress |
wget [-O nama] <url> |
Unduh file dari URL ke direktori aktif |
curl [-O] [-o nama] <url> |
Unduh (-O/-o) atau tampilkan isi URL (maks. 256 KB) |
clear |
Bersihkan tampilan |
help |
Tampilkan bantuan |
Catatan wget / curl
wgetselalu menyimpan file.curlmenyimpan hanya bila memakai-Oatau-o; tanpa itu,curlmenampilkan body respons (dipotong pada 256 KB).- Hanya URL
http://danhttps://yang didukung. - File disimpan ke direktori aktif (lihat
cd), di dalam instalasi WordPress. - Nama file disanitasi otomatis via
sanitize_file_name(), dan file yang sudah ada tidak ditimpa — plugin menambah sufiks.1,.2, … sepertiwget. - Opsi
-L,-s,-S,-qditerima namun diabaikan (redirect selalu diikuti; tidak ada progress bar). - Batas ukuran unduhan 100 MB. Pastikan direktori aktif dapat ditulis oleh proses web server.
Keamanan
- Hanya administrator (
manage_options; super admin pada multisite). - Nonce diverifikasi pada setiap permintaan (
check_ajax_referer). - Operasi baca dibatasi pada direktori instalasi WordPress (
ABSPATH) — mencegah path traversal. - Unduhan hanya menerima skema
http/httpsdan disimpan dengan nama tersanitasi. - Tidak ada eksekusi program. Ini bukan Bash atau sesi SSH.
Peringatan: Meski dibatasi untuk admin, plugin ini memberi kemampuan mengunduh file ke server. Pasang hanya pada situs tepercaya dan pastikan akun admin memakai kata sandi kuat serta 2FA.
Persyaratan
- WordPress 6.0+
- PHP 7.4+
- Browser modern
- Fungsi
download_url()danwp_remote_get()aktif (default WordPress)
Struktur File
wp-server-terminal/
├── wp-server-terminal.php # Plugin utama: menu admin, handler AJAX, wget/curl
├── terminal.js # UI terminal: input, riwayat, fetch AJAX
└── README.txt # Catatan rilis (format WordPress)
FAQ
Apakah ini menjalankan perintah shell sungguhan?
Tidak. Navigasi memakai filesystem PHP dan unduhan memakai WordPress HTTP API. Tidak ada exec, shell_exec, atau proses eksternal.
Bisakah saya mengunduh ke folder mana pun di server? Hanya ke direktori di dalam instalasi WordPress, dan direktori tersebut harus dapat ditulis oleh web server.
Mengapa curl tanpa -O hanya menampilkan sebagian isi?
Tampilan dibatasi 256 KB agar aman untuk browser. Gunakan -O atau -o untuk menyimpan file penuh.
Lisensi
Dirilis di bawah lisensi GPL-2.0-or-later.