Konfigurasi Fail PHP.INI: Panduan untuk Pemula
Hai sana, para ahli PHP masa depan! Hari ini, kita akan melangkah ke dalam dunia yang menarik konfigurasi PHP. Jangan khawatir jika anda belum pernah menulis satu baris kod sebelum ini - saya akan menjadi panduannya yang ramah dalam petualangan ini. Pada akhir panduan ini, anda akan mengkonfigurasikan PHP seperti seorang professional!
Apa Itu PHP.INI?
Sebelum kita masuk ke detil, mari berbicara tentang apa sebenarnya PHP.INI. Bayangkan anda sedang mengatur smartphone baru. Anda mungkin ingin menyesuaikan beberapa tetapan untuk membuatnya bekerja seperti yang anda inginkan, kan? Baiklah, PHP.INI adalah seperti menu tetapan untuk PHP. Ini adalah fail konfigurasi yang memberitahu PHP bagaimana untuk berkelakuan.
Fail Konfigurasi Yang Dimuat
Pertama-tama, mari cari tahu fail PHP.INI mana yang digunakan oleh sistem anda. PHP dapat menggunakan berbeza fail konfigurasi bergantung pada bagaimana ia disusun. Berikut adalah cara mudah untuk memeriksa:
<?php
phpinfo();
?>
Simpan ini sebagai fail PHP (misalnya info.php
) dan jalankan di pelayar web anda. Cari entri "Loaded Configuration File". Itu adalah fail PHP.INI aktif anda!
Tetapan PHP.INI Umum
Sekarang, mari jelajah beberapa tetapan yang paling penting dalam PHP.INI. Saya akan menjelaskan apa yangbuat setiap satu dan memberikan contoh bagaimana menggunakannya.
short_open_tag = Off
Tetapan ini menentukan sama ada PHP mestilah membolehkan bentuk pendek tag pembuka PHP (<?
). Ketika ia dihidupkan, anda mestilah menggunakan tag pembuka PHP penuh (<?php
).
<?php
echo "Hello, World!";
?>
Dengan short_open_tag = On
, anda boleh menulis:
<? echo "Hello, World!"; ?>
Tetapi biasanya disarankan untuk menjaga ia dihidupkan untuk keserasian yang baik.
safe_mode = Off
Mod selesa adalah ciri keselamatan dalam versi lama PHP. Ia kini usang dan dihapuskan dalam PHP 5.4.0 dan versi selepasnya. Jika anda menggunakan versi PHP modern, anda tidak akan melihat tetapan ini.
disable_functions = [function1, function2...]
Ini adalah ciri keselamatan yang kuat. Ia membolehkan anda menyahaktifkan fungsi PHP tertentu yang anda anggap berisiko. Sebagai contoh:
disable_functions = exec,passthru,shell_exec,system
Ini akan menghalang PHP daripada menjalankan perintah sistem, yang boleh menjadi risiko keselamatan.
max_execution_time = 30
Tetapan ini menetapkan masa maksimum dalam saat sebelum skrip dihentikan. Ia seperti menetapkan pemasa untuk skrip anda.
<?php
// Skrip ini akan dijalankan untuk maksimum 30 saat
for ($i = 0; $i < 1000000; $i++) {
echo $i . "<br>";
}
?>
error_reporting = E_ALL & ~E_NOTICE
Tetapan ini mengawal kesalahan yang dilaporkan. E_ALL
bermaksud laporkan kesalahan semua, dan ~E_NOTICE
bermaksud kecuali notis.
<?php
// Dengan E_ALL & ~E_NOTICE, ini tidak akan menunjukkan kesalahan
echo $undefinedVariable;
?>
register_globals = Off
Ini adalah ciri tua dan kurang keselamatan. Ia telah usang dan dihapuskan dalam PHP 5.4.0. Sentiasa jaga ia dimatikan dalam versi lama.
magic_quotes_gpc = On
Tetapan ini secara automatik melarikan data masukan untuk menjadikannya selamat dari SQL injection. Walau bagaimanapun, ia telah usang dan dihapuskan dalam PHP 5.4.0. Dalam PHP modern, anda seharusnya menggunakan pernyataan siap.
file_uploads = [on/off]
Ini mengawal sama ada muatan fail dibenarkan.
<?php
if ($_FILES) {
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "Fail adalah sah, dan berjaya dimuat naik.\n";
} else {
echo "Gagal muat naik.\n";
}
}
?>
session.save-handler = files
Tetapan ini menentukan bagaimana data sesi disimpan. Default adalah 'files', yang bermaksud data sesi disimpan dalam fail di pelayan.
<?php
session_start();
$_SESSION['user'] = 'John Doe';
echo "Data sesi disimpan!";
?>
ignore_user_abort = [On/Off]
Ini menentukan sama ada skrip mestilah terus berjalan selepas pengguna menutup sambungan.
<?php
ignore_user_abort(true);
set_time_limit(0);
// Skrip ini akan terus berjalan walaupun pengguna menutup pelayar
while (true) {
file_put_contents('log.txt', date('Y-m-d H:i:s') . "\n", FILE_APPEND);
sleep(1);
}
?>
Tetapan MySQL
PHP.INI juga termasuk tetapan untuk sambungan MySQL:
Tetapan | Keterangan | Contoh |
---|---|---|
mysql.default_host | Pelayan MySQL default | mysql.default_host = localhost |
mysql.default_user | Pengguna MySQL default | mysql.default_user = root |
mysql.default_password | Kata laluan MySQL default | mysql.default_password = password123 |
Ingat, biasanya lebih baik menetapkan ini dalam skrip anda daripada dalam PHP.INI atas sebab keselamatan.
<?php
$conn = mysqli_connect('localhost', 'root', 'password123');
if (!$conn) {
die("Sambungan gagal: " . mysqli_connect_error());
}
echo "Berjaya disambungkan";
?>
Dan begitu juga, teman-teman! Anda baru saja mengambil langkah pertama ke dalam dunia konfigurasi PHP. Ingat, setiap tetapan ini dapat mempengaruhi bagaimana skrip PHP anda berkelakuan, jadi gunakan mereka bijaksana. Sementara anda terus menjalani perjalanan PHP, anda akan menjadi lebih familiar dengan tetapan ini dan bagaimana menggunakannya untuk keuntungan anda.
Selamat coding, dan moga skrip PHP anda sentiasa berjalan lancar!
Credits: Image by storyset