ホームページ  >  記事  >  バックエンド開発  >  php.ini設定ファイルの詳しい説明

php.ini設定ファイルの詳しい説明

WBOY
WBOYオリジナル
2016-06-23 13:19:591029ブラウズ

まず php 設定ファイルを見てください。このパスの下にあります

[root@zhangmengjunlinux ~]# vim /usr/local/php/etc/php.ini

場所がわからない場合は、確認方法

[root@zhangmengjunlinux ~]# /usr/local/php/bin/php -i |head

phpinfo()

PHP バージョン => 5.3.27


システム => Linux zhangmengjunlinux.com 2.6.32-573.el6.i686 #1 SMP 木 7 月 23 日 12:37:35 UTC 2015 i686

ビルド日 => 2015 年 12 月 26 日 22:16:02

コマンドを設定=> ' ./configure' '--prefix=/usr/local/php' '-with-apxs2=/usr/local/apache2/bin/apxs' '-with-config-file-path=/ usr/local/ php/etc' '--with-mysql=/usr/local/mysql' '--with-libxml-dir' '--with-gd' '--with-jpeg-dir' '-- with-png-dir' '--with-freetype-dir' '--with-iconv-dir' '--with-zlib-dir' '--with-bz2' '--with-openssl' '-- with-mcrypt' '--enable-soap' '--enable-gd-native-ttf' '--enable-mbstring' '--enable-sockets' '--enable-exif' '--disable-ipv6'

コマンドラインインターフェイス

仮想ディレクトリサポート =>

設定ファイル (php.ini) パス => /usr/local/php/etc

ロードされた設定ファイル => /local/php /etc/php.ini

このコマンドも phpinfo です。 呼び出された php ファイルがどこにあるかがわかります

ロードされた設定ファイル => /usr/local/php/etc/php.ini

次に、 php を設定するには、その設定ファイルを変更する必要があります

[root@zhangmengjunlinux ~]# vim /usr/local/php/etc/php.ini

この php はコメント記号として「;」を使用しており、シェル# を使用すると、おそらく一般的に使用される構成がたくさんあります。まず、最初の

disable_functions =eval、assert、popen.passthru、escapeshellarg、escapeshellcmd、passthru、exec、system、chroot、scandir、chgrp、chown、escapeshellcrnd です。 、escapeshellarg 、shell_exec、proc_get_status、ini_alter、ini_restore、dl、pfsockopen、openlog、syslog、readlink、symlink、leak、popepassthru、stream_socket_server、popen、proc_open、proc_close

disable_functions デフォルトでは空で、いくつかの機能が無効になります。セキュリティ上、いくつかの高リスク機能を無効にする必要があります。その意味を確認するには、公式ドキュメントを確認してください。

2 番目の設定: エラー ログ、関連する検索キー /display_error

display_error= off はデフォルトでは off です。on に変更すると、ページ、つまりブラウザーがアクセスしたページにいくつかのエラー メッセージが表示されます。

その後、意図的に php スクリプトを間違って作成しました

この行 aaaaaaa は php によって認識されません。保存して終了します

ブラウザを更新して見てみましょう。エラー メッセージが表示されます。プロンプトに従って確認できます。スクリプトで何が問題になったのでしょうか?

次に、display_error=on を off に変更して更新すると、どこにエラーが表示されなくなります。この時点で問題が発生した場合はどうすればよいでしょうか? もちろん、状況がわからない場合は、display_error を開いてステータス コードを確認し、F12 キーを押して更新します。エラー 500。curl を使用してテストすることもできます。通常、display_error=on をオンにすると、エラー メッセージが他の人に表示されることになります。そこで、最初に、display_error= を設定します。 off にして、php エラー ログを開きます (log_error=on)。off の場合は on に変更し、特定の error_log が存在するパスを定義しましょう

error_log=/usr/local/php/logs/php_error_log

それから、まずパスが存在するかどうかを確認しましょう

[root@zhangmengjunlinux ~] # ls /usr/local/php/logs/

ls: /usr/local/php/logs/ にアクセスできません: そのようなファイルはありませんまたはディレクトリ

[root@zhangmengjunlinux ~]# mkdir /usr/local/php/logs /

[root@zhangmengjunlinux ~]# ls /usr/local/phpp/logs


ls: /usr/local にアクセスできません/phpp/logs: そのようなファイルまたはディレクトリはありません

[root@zhangmengjunlinux ~]# chmod 777 /usr/local/php/logs/

そのようなディレクトリが存在しない場合は、ディレクトリを作成し、そのディレクトリを変更しますエラー ログのユーザーは Apache であるため、書き込み可能にする必要がありますが、その後、ログ形式と 3 番目のログ レベルを設定する必要があります

error_reporting = E_ALL & ~E_NOTICE。

保存して終了し、Apache をリロードします

[root@zhangmengjunlinux ~]# ls /usr/local/php/logs/


[root@zhangmengjunlinux ~]# !vim

vim /usr/local/php/etc/ php.ini

[root@zhangmengjunlinux ~]# apachectl restart

[root@zhangmengjunlinux ~]# vim /data/www /forum.php

[root@zhangmengjunlinux ~]# apachectl restart

[root@zhangmengjunlinux ~ ]# ls /usr/local/php/logs/

php_errors.log

[root@zhangmengjunlinux ~]# cat / usr/local/php/logs/php_errors.log

[02-Jan-2016 16:05:11 Asia/Chongqing] PHP 解析エラー: 構文エラー、/data/www/forum.php の 11 行目に予期しない T_STRING があります

次に、ブラウザ ページを更新します。情報は見つかりませんが、/usr/local/php/logs/ に php_error.log にログが生成されます。これを実行すると、エラー メッセージがあることがわかります。これは、php エラー ログを開く方法です。情報の公開ではありません

いくつかの例を挙げると、open_basedir は Web サイトにアクセスする必要があり、/data/www などのパスが定義されています。ウェブサイトに何らかのアクセス許可がある場合、犯罪者はトロイの木馬をアップロードでき、トロイの木馬はサーバー上のいくつかの情報 (ディレクトリやファイルなど) を取得できます。この場合、Web サイトは /data/www の下にあるため、アクセス許可を特定のディレクトリに制限する必要があります。やり方は、このオプションを使うだけです

open_basedir=/data/www:/tmp、まずエラーを表示させてopen_basedir=/data/www2:/tmp

保存して終了し、Apacheをリロードして、ブラウザが起動したらF12 を開くと、再び白いページになります。PHP ではこれを実行できます。各仮想ホストには open_basedir が使用されます。設定方法はとても簡単です

#vim /usr/local/apache2/conf/extra/httpd-vhosts.conf

php_admin_value open_basedir "/data/www/:/tmp/"

を置くことができますphp.ini の open_basedir コメントアウトされています。必要なものは Apache にあります。その利点は、さまざまな仮想ホストを区別できることです

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。