Зачем нужен php ini

Что такое php.ini

Работая с хостингами, обычно не сталкиваешься с файлом php.ini, к нему просто нет доступа. Правда, есть хостинг-провайдеры, которые дают частичный доступ к некоторым настройкам php.ini. Причина такого ограничения доступа вполне понятна. Как-никак php.iniфайл задающий конфигурацию PHP сервера и его неразумная правка приведет к серьезным проблемам, решать которые придется хостинг-провайдеру. Другое дело, когда вы работаете с локальным сайтом на локальной машине. Любая сборка LAMP или WAMP допустит вас к php.ini по определению.

Что такое php.ini

Файл php.ini это конфигурационный файл с подавляющим большинством настроек PHP. По умолчанию файл конфигурации входит в дистрибутив PHP и называется php.ini-development. Чтобы интерпретатор PHP находил этот файл его нужно переименовать в php.ini. Файл php.iniзагружается вместе с локальным сервером или загружается вместе с дистрибутивом PHPпри самостоятельной сборке локального сервера. В последнем случае, как уже упоминалось, он называется «php.ini-development» и для работы с ним его нужно переименовать в php.ini.

Файл php.ini это текстовой файл, состоящий из директив для PHP, а попросту специальными текстовыми строками определяются основополагающие настройки, как будет работать интерпретатор PHP.

На готовых локальных серверах директивы файла php.ini создаются разработчиками, и каждый разработчик платформы устанавливает свои настройки PHP в нем. Но настройки указанные в php.ini не берутся из головы. Шаблоном любого php.ini служит файл «php.ini-development» находящейся в «родном» дистрибутиве PHP.

Если в файле php.ini локального сервера не прописана, какая либо директива, то PHP примет директиву по умолчанию. Повторюсь, файл php.ini по умолчанию смотрите в дистрибутиве PHP вашей версии в файле php.ini-development.

Читайте также:  Css checked and before

Итак, если у вас установлен и работает (запускается) локальный сервер, то в его папках должен быть файл php.ini который видит Интерпретатор PHP.

Доступ к php.ini

Доступ на виртуальном хостинге

На виртуальном хостинге вы, как правило, не имеете доступа к этому файлу, а, следовательно, не можете менять его настройки самостоятельно.

Правда есть хостинги предоставляющие частичный доступ к php.iniи эти настройки выведены на административную панель хостинга отдельным пунктом.

Доступ к php.ini на локальном хостинге

На локальных серверах вы имеете полный доступ ко всем файлам системы. Файл php.ini не исключение. Вы в любой момент можете открыть файл php.ini для редактирования. Редактировать файлы сервера нужно только в текстовых блокнотах.

Где искать php.ini

Если вы сами собирали платформу локального сервера, то вы сами его переименовывали и сами его настраивали. Но могу предположить, что искать его нужно в директории [C:\\php] (для Windows).

На ЛС Денвер php.ini находим тут: C:\WebServers\usr\local\php5\php.ini.

denwe php ini

На Xampp в папке Apache/bin:

На ЛС OpenServers несколько файлов конфигурации. Находятся они в директории C:\OpenServers\Userdata\ [Файлы конфигурации]

Настройки php.ini

Файл php.ini это текстовой файл с достаточно простым синтаксисом. Больше того, файл php.ini содержит такое количество комментариев, что их вполне достаточно для понимания роли большинства директив PHP. Посмотреть листинг php.ini можно в отдельной статье.

Другие статьи раздела: WebDesign

Источник

Зачем нужен php ini

The configuration file ( php.ini ) is read when PHP starts up. For the server module versions of PHP, this happens only once when the web server is started. For the CGI and CLI versions, it happens on every invocation.

  • SAPI module specific location ( PHPIniDir directive in Apache 2, -c command line option in CGI and CLI)
  • The PHPRC environment variable.
  • The location of the php.ini file can be set for different versions of PHP. The root of the registry keys depends on 32- or 64-bitness of the installed OS and PHP. For 32-bit PHP on a 32-bit OS or a 64-bit PHP on a 64-bit OS use [(HKEY_LOCAL_MACHINE\SOFTWARE\PHP] for 32-bit version of PHP on a 64-bit OS use [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] ] instead. For same bitness installation the following registry keys are examined in order: [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y.z] , [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\PHP\x] , where x, y and z mean the PHP major, minor and release versions. For 32 bit versions of PHP on a 64 bit OS the following registry keys are examined in order: [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y.z] , [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x.y] and [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6421Node\PHP\x] , where x, y and z mean the PHP major, minor and release versions. If there is a value for IniFilePath in any of these keys, the first one found will be used as the location of the php.ini (Windows only).
  • [HKEY_LOCAL_MACHINE\SOFTWARE\PHP] or [HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\PHP] , value of IniFilePath (Windows only).
  • Current working directory (except CLI).
  • The web server’s directory (for SAPI modules), or directory of PHP (otherwise in Windows).
  • Windows directory ( C:\windows or C:\winnt ) (for Windows), or —with-config-file-path compile time option.

If php-SAPI.ini exists (where SAPI is the SAPI in use, so, for example, php-cli.ini or php-apache.ini ), it is used instead of php.ini . The SAPI name can be determined with php_sapi_name() .

Note:

The Apache web server changes the directory to root at startup, causing PHP to attempt to read php.ini from the root filesystem if it exists.

Using environment variables can be used in php.ini as shown below.

Example #1 php.ini Environment Variables

; PHP_MEMORY_LIMIT is taken from environment memory_limit = $

The php.ini directives handled by extensions are documented on the respective pages of the extensions themselves. A list of the core directives is available in the appendix. Not all PHP directives are necessarily documented in this manual: for a complete list of directives available in your PHP version, please read your well commented php.ini file. Alternatively, you may find » the latest php.ini from Git helpful too.

Example #2 php.ini example

; any text on a line after an unquoted semicolon (;) is ignored [php] ; section markers (text within square brackets) are also ignored ; Boolean values can be set to either: ; true, on, yes ; or false, off, no, none register_globals = off track_errors = yes ; you can enclose strings in double-quotes include_path = ".:/usr/local/lib/php" ; backslashes are treated the same as any other character include_path = ".;c:\php\lib"

It is possible to refer to existing .ini variables from within .ini files. Example: open_basedir = $ «:/new/dir» .

Scan directories

It is possible to configure PHP to scan for .ini files in a directory after reading php.ini . This can be done at compile time by setting the —with-config-file-scan-dir option. The scan directory can then be overridden at run time by setting the PHP_INI_SCAN_DIR environment variable.

It is possible to scan multiple directories by separating them with the platform-specific path separator ( ; on Windows, NetWare and RISC OS; : on all other platforms; the value PHP is using is available as the PATH_SEPARATOR constant). If a blank directory is given in PHP_INI_SCAN_DIR , PHP will also scan the directory given at compile time via —with-config-file-scan-dir.

Within each directory, PHP will scan all files ending in .ini in alphabetical order. A list of the files that were loaded, and in what order, is available by calling php_ini_scanned_files() , or by running PHP with the —ini option.

Assuming PHP is configured with --with-config-file-scan-dir=/etc/php.d, and that the path separator is . $ php PHP will load all files in /etc/php.d/*.ini as configuration files. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d php PHP will load all files in /usr/local/etc/php.d/*.ini as configuration files. $ PHP_INI_SCAN_DIR=:/usr/local/etc/php.d php PHP will load all files in /etc/php.d/*.ini, then /usr/local/etc/php.d/*.ini as configuration files. $ PHP_INI_SCAN_DIR=/usr/local/etc/php.d: php PHP will load all files in /usr/local/etc/php.d/*.ini, then /etc/php.d/*.ini as configuration files.

Источник

Оцените статью