Judulnya langsung tampilan error yang muncul ketika curl tidak aktif yaitu :
Warning : curl_exec() has been disabled for security reasons …
Tampilan tersebut diatas menggunakan *kode php berikut :
<?php
// create a new cURL resource
$ch = curl_init();// set URL and other appropriate options
curl_setopt($ch, CURLOPT_URL, “http://www.google.com/”);
curl_setopt($ch, CURLOPT_HEADER, 0);// grab URL and pass it to the browser
curl_exec($ch);// close cURL resource, and free up system resources
curl_close($ch);
?>
hal ini mengindikasikan kalau curl tidak aktif di server kita, lantai bagamana cara mengecek kalau curl di website kita aktif atau tidak ?
Kita gunakan function_exists php berikut :
<?php echo function_exists(‘curl_version’)?”CURL nya udah enabled”:”CURL nya masih terdisable”; ?>
function_exict tersebut akan memberikan pesan curl sudah enable atau tidak.
dan ternayata dicek sudah enable, akan tetapi tetap muncul warning curl_exec() has been disabled for security reasons
Lantas apa penyebabnya ? hal ini ternyata diakibatkan oleh curl_exec() yang berada pada disable_functions yang ada di file php.ini
Nah karena disini kita menggunakan cloudlinux dan multi php version jadi cukup banyak php.ini yang ada di server kita, karena ketika kita cek satu-satu di php-5.6 misalnya, pada disable_functions tidak terdapat curl_exec() alias kosong.
Bagaimana cara mencari php.ini yang bersisi curl_exec() pada disable_functions ini ? caranya yaitu kita gunakan scrip berikut, silakan copas pada terminal root anda :
find / -name “*.ini” -type f -exec grep -l “mail,exec,passthru,shell_exec” {} \;
Nah dengan perintah tersebut diatas, akan kita temukan posisi php.ini kita yang aktif. Perhatikan tampilan berikut :
[root@core ~]# find / -name “*.ini” -type f -exec grep -l “mail,exec,passthru,shell_exec” {} \;
find: ‘/proc/16067’: No such file or directory
/usr/share/cagefs/.cpanel.multiphp/opt/cpanel/ea-php56/root/etc/php.d/local.ini
/usr/share/cagefs/.cpanel.multiphp/opt/cpanel/ea-php55/root/etc/php.d/local.ini
/usr/share/cagefs/.cpanel.multiphp/opt/cpanel/ea-php70/root/etc/php.d/local.ini
/usr/share/cagefs/.cpanel.multiphp/opt/cpanel/ea-php71/root/etc/php.d/local.ini
/usr/share/cagefs-skeleton/opt/cpanel/ea-php55/root/etc/php.d/local.ini
/usr/share/cagefs-skeleton/opt/cpanel/ea-php56/root/etc/php.d/local.ini
/usr/share/cagefs-skeleton/opt/cpanel/ea-php70/root/etc/php.d/local.ini
/usr/share/cagefs-skeleton/opt/cpanel/ea-php71/root/etc/php.d/local.ini
/opt/cpanel/ea-php55/root/etc/php.d/local.ini
/opt/cpanel/ea-php56/root/etc/php.d/local.ini
/opt/cpanel/ea-php70/root/etc/php.d/local.ini
/opt/cpanel/ea-php71/root/etc/php.d/local.ini
Dari hasil pencarian tersebut diatas sudah jelas posisi file php.ini menajdi local.ini
Sekarang kita edit file local.ini satu-satu seperti yang tampil diatas :
nano /usr/share/cagefs/.cpanel.multiphp/opt/cpanel/ea-php56/root/etc/php.d/local.ini
Perhatikan tampilan berikut, terdapat curl_exec() pada disabled_function :
Hapus curl_exec() pada disable_functions menjadi seperti berikut :
Lakukan untuk file local.ini yang lain yang tampil pada pencarian tersebut.
Setelah selesai silakan cek kembali menggunakan *kode php diatas.
Selamat curl berhasil aktif pada server cpanel anda.
Sebenernya gak harus edit satu satu.. bisa pake find and replace menggunakan perintah sed seperti ini:
find / -name “*.ini” -type f -exec sed -i ‘s/disable_function/\#disable_function/g’ {} \;
fungsinya find disable_function dan replace menjadi #disable_function
CMIWW
Baik, terimakasih atas masukannya, sangat bermanfaat