Настройка файла php.ini
Содержание:
Требуемое программное обеспечение
Для создания, выполнения и отладки проектов PHP необходимо следующее программное обеспечение:
- IDE NetBeans для PHP. Загрузку можно осуществить отсюда.
- Веб-сервер. Как правило, разработка и отладка выполняются на локальном веб-сервере, в то время как производственная среда размещена на удаленном веб-сервере. Текущая версия позволяет использовать локальный сервер. Последующие версии будут поддерживать использование удаленного сервера с доступом по протоколу FTP. Поддержка PHP может добавляться к целому ряду веб-серверов (IIS, Xitami и т.д.), но обычно используется сервер HTTP Apache. Сведения относительно установки и настройки Apache 2.2 приведены здесь.
- Механизм PHP. Поддерживается версия PHP5. Загрузку можно осуществить отсюда.
- Отладчик PHP. IDE NetBeans для PHP позволяет использовать XDebug, но использование отладчика не является обзательным. Из соображений совместимости с PHP5 рекомендуется использовать версию XDebug 2.0 или выше.
- Сервер базы данных. Существует возможность использования различных серверов базы данных, однако самым популярным из них является сервер MySQL. Загрузку можно осуществить отсюда. Примечание. Рекомендуемая версия продукта: MySQL Server 5.0. В предоставленных документах описывается работа с этой версией.
По завершении установки необходимо выполнить настройку среды в целях обеспечения правильной совместной работы всех программных компонентов.
Можно использовать , содержащий требуемое программное обеспечение, или .
Настройка во время выполнения
Поведение этих функций зависит от установок в php.ini.
Имя | По умолчанию | Место изменения | Список изменений |
---|---|---|---|
«0» | PHP_INI_SYSTEM | Доступно с PHP 5.2.4. До PHP 7.2.16 и 7.3.3 значением по умолчанию было «1». | |
«1» | PHP_INI_SYSTEM | Доступно с PHP 5.3.0. | |
«-1» | PHP_INI_SYSTEM | Доступно с PHP 5.3.0. | |
«-1» | PHP_INI_SYSTEM | ||
«3306» | PHP_INI_ALL | ||
NULL | PHP_INI_ALL | ||
NULL | PHP_INI_ALL | ||
NULL | PHP_INI_ALL | ||
NULL | PHP_INI_ALL | ||
«0» | PHP_INI_SYSTEM | ||
TRUE | PHP_INI_SYSTEM | Доступно с PHP 5.6.0. |
Прочие детали и определения констант PHP_INI_* смотрите в разделе
конфигурационные изменения.
Краткое разъяснение конфигурационных
директив.
-
integer
-
Разрешает доступ к локальным файлам, с точки зрения PHP,
с помощью инструкций LOAD DATA -
integer
-
Включает возможность создавать постоянные соединения
с помощью mysqli_connect(). -
integer
-
Максимально возможное количество постоянных соединений.
Для неограниченного количества установите в 0. -
integer
-
Максимальное количество соединений MySQL на процесс.
-
integer
-
TCP-порт, используемый по умолчанию для соединения с сервером баз данных,
если другое значение явно не указано. Если значение по умолчанию не
указано, оно будет получено из переменной среды окружения
MYSQL_TCP_PORT, директивы mysql-tcp
в файле /etc/services или константы
MYSQL_PORT, которая задаётся во время компиляции, в
указанном порядке. Win32 использует только константу
MYSQL_PORT. -
string
-
Имя сокета по умолчанию, которое используется для соединения с локальной
базой данных, если имя сокета не было указано явно. -
string
-
Имя сервера, которое используется, если имя не было указано явно.
Это имя не используется в . -
string
-
Имя пользователя, используемое по умолчанию, если имя не было указано
явно. Игнорируется в . -
string
-
Пароль, используемый по умолчанию для подключения к БД,
если пароль не был явно указан.
Игнорируется в . -
integer
-
Автоматически восстанавливать соединение при его потере.
-
bool
-
Если этот параметр включен, закрытие постоянного соединения откатит любые
ожидающие транзакции этого соединения, прежде чем оно будет возвращено
в пул постоянных соединений. В противном случае ожидающие соединения
буду откатываться только тогда, когда соединение будет повторно
использовано или когда оно будет фактически закрыто.
Пользователи не могут устанавливать MYSQL_OPT_READ_TIMEOUT
с помощью API-вызовов или установки конфигурационных значений во время
работы скрипта. Учтите, что если бы это было возможно, то
libmysqlclient и потоки по-разному обрабатывали бы значение
MYSQL_OPT_READ_TIMEOUT.
Step 3: Edit the Php Configuration file
To edit the configuration file use a nano editor using the command below. Remember to replace 7.1 with your PHP version number
$ sudo nano /etc/php/7.1/apache2/php.ini
Once the file opens on a text editor, you can start tweaking the settings
The list below include the most common settings that are regularly changed by webmasters:
- upload_max_filesize: The value determines the maximum size of the file that can be uploaded to the web server. This is particularly useful if you are running a service like OwnCloud or large database imports.
- post_max_size: This is the maximum value that the post variable should hold. These are common with web forms. An average of 20M works well.
- register_globals: This is an internal settings that registers $_REQUEST values to global variables. When turned on, it will work for all GET, POST and Cookie http verbs.
- allow_url_fopen: This can be off by default but you can turn it on. It assists in opening url objects like files.
- memory_limit: This value should be larger than upload_max_filesize. It simply sets the maximum bytes that a script can allocate.
- max_execution_time: The default value is 30. Meaning that the maximum time a script can run before being terminated is 30 seconds. You can set a larger value like 60 if your php scripts are time intensive.
Sample ‘php.ini’ settings file
memory_limit = 24M upload_max_filesize = 20M register_globals = Off allow_url_fopen = On max_execution_time = 30 post_max_size = 20M
Remember to press CTRL + X, Y and Enter to save the PHP settings. Also, you must restart Apache for the changes to be effected using the command below:
$ sudo systemctl restart apache2
Настройка файла php.ini
Для удобства ориентирования мы разобьем все параметры по категориях в зависимости от их назначения. Вам будет достаточно найти нужный параметр и изменить его значение. А теперь откройте файл настроек php, например, для модуля apache и перейдем к настройке. Чтобы избежать ошибок не добавляйте новые строки, а ищите уже существующие и изменяйте значения на нужные:
sudo gedit /etc/php5/apache/php.ini
Сначала идет немного информации о самом файле в виде комментариев, затем интересующие нас настройки.
Вывод ошибок в php
Настройка php 7 обычно начинается с конфигурации вывода ошибок. Все настройки вывода ошибок находятся в разделе Error handling and logging. По умолчанию вывод ошибок на экран во время выполнения скрипта отключен. Это сделано для того, чтобы пользователи не смогли увидеть ничего лишнего. Вместо этого, все ошибки записываются в лог файл. Если вы используете php на домашнем компьютере, то такие меры не нужны и вы можете сразу выводить все на экран:
Замените off на on. В php используются различные типы ошибок, например, критические, предупреждения, ошибки синтаксиса, с помощью строки error_reporting вы можете включить вывод только определенных типов ошибок:
Если нужно объединить несколько типов ошибок, то используйте символ &, а для отключения отображения поставьте перед типом знак
. Приведенный выше пример отображает все ошибки (E_ALL), кроме сообщений об устаревших функциях (E_DEPRECATED). Вы можете отключить все типы использовав 0:
Включите запись ошибок php в лог файл, если не выводите их на экран:
Чтобы не засорять лог однотипными сообщениями можно игнорировать повторяющиеся ошибки в пределах одного исполнения:
Ограничения ресурсов
Если бы скрипты php никак не ограничивались в ресурсах, то они запросто могли бы перегрузить сервер и не дать ему нормально работать. Поэтому, по умолчанию php устанавливает жесткие ограничения, но, возможно, вам нужно будет их немного ослабить.
По умолчанию максимальное время выполнения скрипта — 30 секунд, сделаем минуту:
Если указать 0, то скрипт может выполняться бесконечно. Вы также можете ограничить время, на протяжении которого скрипт будет загружать данные, 60 секунд:
Максимальное количество переменных в GET и POST:
Следующий параметр задает максимальное количество памяти, которую может использовать один скрипт во время своего выполнения, в мегабайтах:
Максимальный размер данных, передаваемых в POST запросе тоже ограничивается, размер по умолчанию — 8 Мегабайт:
Вы можете ограничить область действия php в системе с помощью опции openbase_dir, она указывает папку, выше которой скрипт не может получить доступ к файловой системе:
С помощью директив disable_functions и disable_classes вы можете отключить использование в скриптах определенных функций или классов, например, это может быть полезно для веб-хостингов. В этом примере мы отключаем использование функции ini_set, которая позволяет менять настройки php из скрипта:
Директории по умолчанию
Файл настройки php.ini позволяет указать пути в файловой системе по умолчанию для различных действий. Вы можете задать папки где система будет искать скрипты, если вы попытаетесь подключить их с помощью инструкции include:
Папка для записи временных файлов:
Загрузка файлов
Для того чтобы пользователи могли загружать свои файлы на сервер, например, фото, нужно включить эту функцию в php:
Максимальный размер загружаемого файла:
Максимальное количество файлов, которые может загрузить один скрипт:
Настройка php.ini практически завершена, нам остались лишь расширения.
Настройка расширений
Расширения позволяют очень сильно увеличить функциональность php. Например, благодаря расширениям вы можете использовать в своих скриптах базы данных mysql, postgresql, mysqli, sqlite, графическую библиотеку gd и многое другое. Все это включается в этом разделе.
Для включения расширения достаточно убрать комментарий перед строкой с его командой, например:
extension=php_mysql.so extension=php_mbstring.so extension=php_pgsql.so
Обратите внимание, что для windows расширение будет иметь формат dll, но для linux нужно использовать so. В следующих секциях идет настройка каждого из расширений, но мы их рассматривать не будем потому что они обычно не требуют настройки
Установка PHP
Последнее обновление: 16.12.2017
Есть разные способы установки всего необходимого программного обеспечения. Мы можем устанавливать компоненты по отдельности, а можем использовать уже готовые
сборки на подобие Denwer или EasyPHP. В подобных сборках компоненты уже имеют начальную настройку и уже готовы для создания сайтов. Однако рано или поздно разработчикам
все равно приходится прибегать к установке и конфигурации отдельных компонентов, подключения других модулей. Поэтому мы будем устанавливать все компоненты по отдельности.
В качестве операционной системы будет использоваться Windows.
Что подразумевает установка PHP? Во-первых, нам нужен интерпретатор PHP. Во-вторых, необходим веб-сервер, например, Apache, с помощью которого мы сможем обращаться
к ресурсам создаваемого нами сайта. В-третьих, поскольку мы будем использовать базы данных, то нам также надо будет установить какую-нибудь систему управления базами
данных. В качестве такой выбрана MySQL как наиболее популярная в связке с PHP.
Загрузим zip-пакет последнего выпуска PHP:
Как правило, последний выпуск PHP имеет две версии: Non Thread Safe и Thread Safe. Нам надо выбрать версию Thread Safe.
Для этой версии доступны варинты для 32-битной и 64-битной систем.
Распакуем загруженный архив в папку, которую назовем php. Пусть эта папка у нас будет располагаться в корне диска C.
Теперь нам надо выполнить минимальную конфигурацию PHP. Для этого зайдем в каталог c:\php и найдем там файл php.ini-development. Это файл
начальной конфигурации интерпретатора. Переименуем этот файл в php.ini и затем откроем его в текстовом редакторе.
Найдем в файле строку:
; extension_dir = "ext"
Эта строка указывает на каталог с подключаемыми расширениями для PHP. Раскомментируем ее (убрав точку с запятой):
extension_dir = "ext"
Так как все расширения находятся в каталоге ext.
Поскольку мы будем использовать базы данных MySQL, то нам надо указать расширение в php.ini. По умолчанию оно уже имеется в файле, только оно закомментировано:
;extension=mysqli
Раскомментируем его, убрав знак точки с запятой:
extension=mysqli
Теперь по умолчанию эта библиотека будет использоваться при работе с базой данных. Также мы можем при необходимости раскомментировать и другие расширения.
Но для начала нам хватит и одного.
Остальное содержимое файла оставим без изменений.
Теперь установим веб-сервер.
НазадВперед
Как работать с файлом init.php
Файл init.php в битрикс достаточно важный т.к. подключается в прологе, т.е. еще до выполнения кода на страницах сайта и административной части, таким образом любая ошибка в файле init.php приведет к тому, что перестанет работать не только публичная часть сайта, но и административная.
Даже если вы узнали где лежит init.php в битрикс и понимаете как сним работать, необходимо соблюдать некоторые меры безопасности и правила хорошего тона в программировании:
1. Всегда вносите изменения только по ftp или sftp или хотя бы убедитесь в том, что у вас есть доступ к сайту по ftp/sftp – это будет полезно, если вы допустите ошибку в файле и сайт перестанет работать.
10 ответов
310
Лучший ответ
Вы должны найти его в /private/etc, если он существует, в противном случае:
18 фев. 2012, в 18:18
Поделиться
224
Чтобы найти INI файл на вашем компьютере, откройте и выполните следующую команду:
Если вам нужен шаблон для Lion, попробуйте это.
18 фев. 2012, в 18:24
Поделиться
32
В терминале сделать . Должен дать вам несколько подсказок;)
28 янв. 2013, в 10:09
Поделиться
22
Как уже указывалось, команда сообщит вам, где PHP ожидает найти файл php.ini.
Для стандартной установки он, вероятно, будет искать
Если вы использовали macports, тогда PHP может искать
23 апр. 2012, в 08:14
Поделиться
12
Запустите из любого файла, и он скажет вам, где он находится. Вот скриншот.
14 фев. 2015, в 16:10
Поделиться
11
Ответы @Cronk и @Justin помогли мне познакомиться с Mac OS X 10.9 Mavericks. Фактически, в моей системе файл отсутствовал полностью, и только когда я запустил на веб-сервере, я заметил, что не было никакого файла конфигурации. Копирование файла из и добавление полного пути к библиотеке в файл конфигурации решило проблему:
Затем в добавьте следующую строку (используя правильный путь к файлу ):
Затем перезапустите Apache2:
02 сен. 2014, в 09:23
Поделиться
10
У меня уже не один экземпляр PHP работает, поэтому другие ответы у меня не сработали. Это сделал:
Создайте файл PHP и откройте его локальный URL в вашем браузере:
Путь PHP.INI будет указан близко к началу.
29 янв. 2014, в 00:42
Поделиться
3
Это довольно старая ветка, но я хотел бы добавить дополнительные пояснения.
Если у вас есть система с несколькими установками PHP (как у меня), результаты, которые вы получите от использования инструментов командной строки, МОГУТ БЫТЬ отличны от тех, которые фактически используются веб-сервером. Если вас интересует, какой PHP используется веб-сервером, используйте только информацию, собранную с веб-страницы, которая использует функцию phpinfo().
Например, в моей системе версии, представленные двумя разными методами, были следующими:
Для пути к файлу php.ini все было иначе:
Вы можете найти все возможные файлы php.ini, используя это:
(элементы ‘2> & 1’ и ‘grep’ ограничивают вывод команды полезной информацией, то есть избавляются от сообщений об ошибках)
В моей системе я нашел 3 файла INI. Поскольку меня интересовало, что использует веб-сервер, я знал, что должен использовать путь, полученный из результатов веб-страницы. Я внес свои изменения в файл php.ini, который там был указан, перезапустил apache и заново запустил веб-страницу; новые правки были показаны там.
Чтобы перезапустить Apache:
— J
20 май 2014, в 18:28
Поделиться
1
Я начинаю с «Hello World!», Как только я вижу это в своем браузере, я там, и вы можете увидеть все вещи. Сообщает вам, какие конфигурации загружены, все.
21 фев. 2014, в 21:51
Поделиться
Вы запускаете php_info() и видите строку ниже 🙂
18 май 2014, в 01:38
Поделиться
Ещё вопросы
- 1048Как мне сделать редирект в PHP?
- 779Определение типа запроса в PHP (GET, POST, PUT или DELETE)
- 632Как рассчитать разницу между двумя датами с помощью PHP?
- 489Могу ли я связать массив с условием IN ()?
- 450Преобразование целого числа в строку в PHP
- 356Pretty-Printing JSON с PHP
- 355Показать число до 2 десятичных знаков
- 321Сохранение изображения из PHP URL
- 279Конвертировать один формат даты в другой в PHP
- 274В PHP, как вы меняете ключ элемента массива?
14 ответов
843
Лучший ответ
Просто запустите и найдите в выходных данных найти используемый вашим CLI.
19 сен. 2010, в 08:26
Поделиться
330
Вы можете получить полный , используя:
И там есть файл :
В Windows используйте вместо:
01 май 2010, в 17:23
Поделиться
32
предоставит вам подробную информацию о пути использования и возможных ini файлах.
22 сен. 2011, в 20:55
Поделиться
14
Вы можете использовать get_cfg_var (‘cfg_file_path’) для этого:
В отличие от phpinfo(), он скажет, не обнаружил/не использовал php.ini вообще.
И вы можете просто установить расположение php.ini. Вы используете версию командной строки, поэтому с помощью параметра вы можете указать местоположение, например.
01 май 2010, в 16:31
Поделиться
13
Запустите в своем терминале, вы получите всю информацию о файлах ini.
Для получения дополнительной информации используйте команду помощи . Он отобразит все возможные варианты.
03 янв. 2013, в 08:49
Поделиться
7
Если вы хотите, чтобы все файлы конфигурации загружались, это будет сообщать вам:
Некоторые системы загружают вещи из более чем одного ini файла. В моей системе ubuntu это выглядит так:
01 май 2010, в 17:58
Поделиться
6
В OSX Mavericks, работающий:
Возвращается:
В каталоге было:
(а также )
Мне удалось скопировать в , добавить в начало (справа внизу ), и проблема решена.
(По крайней мере, сообщение об ошибке исчезло.)
28 май 2015, в 23:20
Поделиться
6
В некоторых случаях все происходит не так, как кажется, когда приходит в конфигурационные файлы в целом. Поэтому здесь я применяю свои обычные методы для изучения того, какие файлы открываются процессом.
Я использую очень мощную и полезную программу из командной строки strace, чтобы показать мне, что действительно происходит за моей спиной!
Strace выкапывает вызовы ядра (системы), которые ваша программа создает и выгружает вывод в файл, указанный как -o
Легко использовать grep для поиска вхождений php.ini в этом журнале. Это довольно очевидно, глядя на следующий типичный ответ, чтобы увидеть, что происходит.
27 июнь 2011, в 11:50
Поделиться
4
Если вам нужно передать его в другое приложение, вы можете сделать что-то вроде:
возвращает только путь. будет проходить в файле конфигурации (полезно для )
31 дек. 2013, в 03:11
Поделиться
3
Из того, что я помню, когда я использовал EasyPHP, файл php.ini находится либо в , либо
01 май 2010, в 17:15
Поделиться
1
Делать
Это выведет все файлы с именем .
Узнайте, какой из них вы используете, обычно
27 июль 2018, в 08:52
Поделиться
1
В файле php.ini укажите свой каталог расширений, например:
Вы увидите, что в папке PHP есть папка ext со всеми DLL и расширениями.
19 сен. 2010, в 08:16
Поделиться
Просто запустите команду
31 янв. 2019, в 02:14
Поделиться
-4
В командной строке нет php.ini. Вы должны скопировать файл с в , чем отредактировать файл в php каталоге
Ссылка:
https://stackoverflow.com/questions/828899/why-cant-cakephp-bake-connect-to-mysql-running-under-easyphp-on-windows-vista-u
27 янв. 2012, в 14:30
Поделиться
Ещё вопросы
- 4206Справка — Что означает этот символ в PHP?
- 1048Как мне сделать редирект в PHP?
- 1037Как получить IP-адрес клиента в PHP
- 779Определение типа запроса в PHP (GET, POST, PUT или DELETE)
- 732Где мой файл php.ini находится на сервере?
- 632Как рассчитать разницу между двумя датами с помощью PHP?
- 489Могу ли я связать массив с условием IN ()?
- 450Преобразование целого числа в строку в PHP
- 356Pretty-Printing JSON с PHP
- 355Показать число до 2 десятичных знаков