PHP.INIファイル設定:初級者向けガイド
こんにちは、未来のPHP魔法使いさんたち!今日は、PHP設定の世界に興味深い旅に出発します。心配しないでください。これまでコードを書いたことがない方でも、私はあなたの親切なガイドとしてこの冒険を案内します。このチュートリアルの終わりには、プロのようにPHPを設定できるようになるでしょう!
PHP.INIとは?
まず、PHP.INIが実際に何であるかについて話しましょう。新しいスマートフォンを設定する imagine してみてください。おそらく、好みに合わせていくつかの設定を調整したいと思うでしょう、よね?そうですね、PHP.INIはPHPの設定メニューのようなものです。PHPがどのように振る舞うかを指示する設定ファイルです。
読み込まれた設定ファイル
まず第一に、システムがどのPHP.INIファイルを使っているかを調べてみましょう。PHPは設定によって異なる設定ファイルを使うことができます。以下の手順で確認します:
<?php
phpinfo();
?>
これをPHPファイル(例えばinfo.php
)として保存し、ウェブブラウザで実行します。\"Loaded Configuration File\"の項目を探してください。これがあなたのアクティブなPHP.INIファイルです!
一般的なPHP.INI設定
では、PHP.INIの最も重要な設定のいくつかを見てみましょう。それぞれの設定が何をするか説明し、使用例を示します。
short_open_tag = Off
この設定は、PHPが短い形式のPHPの開始タグ(<?
)を許可するかどうかを決定します。オフにすると、完全なPHP開始タグ(<?php
)を使う必要があります。
<?php
echo "Hello, World!";
?>
short_open_tag = On
のときは以下のようになります:
<? echo "Hello, World!"; ?>
しかし、より良い互換性のためにオフにしておくことをお勧めします。
safe_mode = Off
セーフモードは古いバージョンのPHPにおけるセキュリティ機能でした。PHP 5.4.0以降では非推奨であり、削除されています。現代のPHPバージョンを使用している場合、この設定は見つかりません。
disable_functions = [function1, function2...]
これは強力なセキュリティ機能です。リスクがあると考える特定のPHP関数を無効にすることができます。例えば:
disable_functions = exec,passthru,shell_exec,system
これにより、PHPがシステムコマンドを実行することが防がれ、セキュリティリスクが軽減されます。
max_execution_time = 30
この設定は、スクリプトが終了される前に実行できる最大時間(秒)を設定します。スクリプトのタイマーを設定するようなものです。
<?php
// このスクリプトは最大30秒間実行されます
for ($i = 0; $i < 1000000; $i++) {
echo $i . "<br>";
}
?>
error_reporting = E_ALL & ~E_NOTICE
この設定は、どのエラーを報告するかを制御します。E_ALL
はすべてのエラーを報告し、~E_NOTICE
は通知を除きます。
<?php
// E_ALL & ~E_NOTICEでは、これはエラーとして表示されません
echo $undefinedVariable;
?>
register_globals = Off
これは古くて安全でない機能です。PHP 5.4.0で非推奨され、削除されています。古いバージョンでは常にオフにしておくべきです。
magic_quotes_gpc = On
この設定は入力データを自動的にエスケープしてSQLインジェクションを防ぎます。しかし、PHP 5.4.0で非推奨され、削除されています。現代のPHPではプレースホルダを使用するべきです。
file_uploads = [on/off]
この設定はファイルアップロードを許可するかどうかを制御します。
<?php
if ($_FILES) {
$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Upload failed.\n";
}
}
?>
session.save-handler = files
この設定はセッションデータがどのように保存されるかを決定します。デフォルトは'files'で、サーバーのファイルにセッションデータが保存されます。
<?php
session_start();
$_SESSION['user'] = 'John Doe';
echo "Session data saved!";
?>
ignore_user_abort = [On/Off]
この設定は、ユーザーが接続を閉じた後もスクリプトが続行するかどうかを決定します。
<?php
ignore_user_abort(true);
set_time_limit(0);
// このスクリプトはユーザーがブラウザを閉じても続行します
while (true) {
file_put_contents('log.txt', date('Y-m-d H:i:s') . "\n", FILE_APPEND);
sleep(1);
}
?>
MySQL設定
PHP.INIにはMySQL接続の設定も含まれています:
設定 | 説明 | 例 |
---|---|---|
mysql.default_host | デフォルトのMySQLサーバー | mysql.default_host = localhost |
mysql.default_user | デフォルトのMySQLユーザー名 | mysql.default_user = root |
mysql.default_password | デフォルトのMySQLパスワード | mysql.default_password = password123 |
一般的には、これらをスクリプト内で設定する方がセキュリティ的に良いです。
<?php
$conn = mysqli_connect('localhost', 'root', 'password123');
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
echo "Connected successfully";
?>
そして、皆さん!あなたはPHP設定の世界への第一歩を踏み出しました。これらの設定は、あなたのPHPスクリプトの動作に大きな影響を与える可能性があるため、賢く使用してください。PHPの旅を続ける中で、これらの設定とその使用法にますます慣れていくでしょう。
ハッピーコーディング、そしてあなたのPHPスクリプトが常にスムーズに実行されることを祈っています!
Credits: Image by storyset