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!

PHP.INI File Configuration

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