Saya dibuat bingung oleh dokumentasi mediawiki yang sangat minimum, bahkan nyaris tidak ada. Pencarian dengan google pun tiada hasil.
Begini ceritanya, bila anda ingin fitur upload file dari URL aktif, maka harus diset
$wgAllowCopyUploads = true;
(baca di
sini). Permasalahnnya adalah server anda ada di belakang proxy, jadi menurut petunjuk
$wgHTTPProxy
harus diset ke alamat proxy server. Sampai disini saja kita sudah bingung bagaimana format penulisan proxy terutama bagi yang awam dengan environmet operating system.
Setelah coba-coba mengisi variabel
$wgHTTPProxy
dengan format standar environment linux ternyata tidak berhasil. Alamat proxy dengan format
[protocol]://[address]:[port]
maupun
[protocol]://[user]:[password]@[address]:[port]
(bila memerlukan authentication) pun sama saja. Padahal perintah yang memerlukan koneksi seperti
wget
berjalan dengan mulus.
Akhirnya tersangka terakhir tertuju pada script mediawiki sendiri. Setelah sedikit menganalisa, akhirnya ketemu juga. Caranya adalah memodifikasi file
includes/upload/UploadFromUrl.php
. Cari fungsi
curlCopy()
dan tambahkan baris sebagai berikut:
curl_setopt( $ch, CURLOPT_WRITEFUNCTION, array( $this, 'uploadCurlCallback' ) );
/* tambahkan disini */
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 0);
curl_setopt($ch, CURLOPT_PROXY, 'http://192.168.5.2:3128'); //sesuaikan alamat + port proxy-nya
/* 0_0 */
curl_exec( $ch );
CURLOPT_HTTPPROXYTUNNEL
diset ke 0 karena selalu terdapat error:
Received HTTP code 403 from proxy after CONNECT
. Mungkin anda punya kasus yang berbeda, silakan dicoba apakah perlu atau tidak.
FYI, MediaWiki menggunakan versi 1.16.1 (versi terbaru pada saat menulis ini).
Selamat mencoba.