Установка Apache, PHP, MySQL. Чтение INI-файла в PHP

В этой статье мы рассмотрим установку и настройку Web-сервера Apache , PHP 5 и СУБД MySQL для использования их на локальной машине под операционной системой Windows (2000 и XP). Использование локальных серверов может понадобится по многим причинам – вам необходимо изучить PHP или MySQL, а тестирование своих Web-приложений на хостинге либо дорого обходится, либо такой возможности вообще нет. В этом случае вам понадобится связка Apache+PHP+MySQL на локальной машине.

Для начала необходимо раздобыть дистрибутивы серверов Apache и MySQL, а так же архив PHP. Мы будем устанавливать и настраивать Apache 2, MySQL 4 и PHP 5.

Так же можете скачать с нашего сайта файлы php.ini для настройки PHP и httpd.conf для Apache. Однако, делайте это только в крайнем случае - если у Вас ничего не получилось с "родными" файлами, которые появилиcь при установке приложений. Но в любом случае, их необходимо будет настроить под конкретную машину. Скачать php.ini и httpd.conf

Скачать Apache можно с зеркал приведённых на официальном сайте http://www.apache.org/dyn/closer.cgi . При поиске следует помнить, что Apache так же может называться httpd, по имени его демона в UNIX. На зеркалах обычно много различных файлов, например:
httpd-2.0.49-win32-src.zip - это архив с исходными кодами (src) для Windows (win32) Web-сервера Apache (httpd) версии 2.0.49.
httpd-2.0.49.tar.gz - тоже самое, но для Linux, в котором программы принято распространять в исходных кодах.
apache_2.0.50-win32-x86-no_ssl.exe - а вот это, откомпилированный под архитектуру (x86) для Windows (win32) без поддержки SSL(no_ssl) сервер Apache (apache) версии 2.0.50 - вот он и нужен.

Замечание

Бинарные коды дистрибутивов Apache распространяются в нескольких вариантах, как с расширением *.exe, так и *.msi и имеют название вида httpd_версия_win32_*_.msi.

Чтобы вам не мучатся, вот ресурс где можно его взять: http://apache.rinet.ru/dist/httpd/binaries/win32/
Вторая и третья цифра в версии могут отличаться от приведённых здесь – следует выбирать самую последнюю версию, так как в ней устранены ошибки обнаруженные в предыдущих версиях.

PHP 5 можно загрузить из раздела нашего сайта.

Дистрибутив MySQL можно загрузить со страницы нашего сайта.

Полное справочное руководство на русском языке можно найти по адресу .

После того как мы запаслись всеми необходимыми дистрибутивами можно приступать к установке. Порядок установки Apache, PHP и MySQL не имеет значения. Начнём с Web-сервера Apache.

Установка Web-сервера Apache

Запустите установщик Web-сервера Apache. Результатом будет окно с лицензионным соглашением, после принятия которого, следует перейти к следующему окну с краткой информацией о нововведениях во второй версии Apache. Следующее окно, показанное на рисунке, позволяет ввести информацию о сервере: доменное имя сервера , имя сервера и адрес электронной почты администратора . Если установка происходит на локальную машину, то в поля для доменного имени и имени сервера следует ввести localhost (см. рисунок.). В нижней части окна предлагается выбрать номер порта по которому сервер будет принимать запросы (80 или 8080).


localhost - это имя для использования сервера на локальной машине, которое связано с IP-адресом 127.0.0.1, который зарезервирован для локального использования.

После этого будет предложен способ установки: стандартный (Typical ) или выборочный (Custom ), позволяющий выбрать компоненты сервера вручную. Следующее окно позволяет выбрать каталог установки сервера, по умолчанию это C:Program FilesApache Group , но мы рекомендуем выбрать другой каталог, например, С:www. После этого мастер установки сообщит о готовности к процессу установки и после нажатия кнопки Install , будет произведено копирование файлов сервера. Если установка прошла успешно, Windows автоматически запустит Apache.

После успешной инсталляции при наборе в окне браузера http://localhost/ или http://127.0.0.1/ - должна загрузится страница сервера.

Теперь необходимо научиться управлять Apache, а именно научится запускать, останавливать и перезапускать сервер. Существует много способов осуществить эти операции: при помощи утилиты ApacheMonitor, используя консоль управления сервисов Windows, используя пункты меню Пуск, из командной строки… Мы рассмотрим консоль управления сервисов Windows, позволяющего настроить Apache для автоматического старта при запуске системы. Для запуска консоли управления выполните команду
Пуск->Настройка->Панель управления->Администрирование->Службы .
В появившемся окне консоли, на приведённом ниже рисунке, следует выбрать сервис Apache2. Контекстное меню, открывающееся по нажатию на правой кнопке, позволяет осуществлять запуск, остановку и перезапуск сервиса.


Службы Windows позволяют осуществлять запуск фоновых приложений при старте системы. Для этого необходимо перейти в окно Свойства, выбрав в контекстном меню сервиса пункт Свойства и в появившемся окне в выпадающем списке "Тип запуска " выбрать пункт "Авто ".

Конфигурирование Apache

Web-сервер - сложный программный продукт работающий на разных платформах и в разных операционных системах по всему миру. Поэтому для корректной работы на установленной системе его необходимо настроить (сконфигурировать).
По умолчанию настройки Apache расположены в файле httpd.conf в директории conf. Далее будут описаны основные директивы файла httpd.conf и их общеупотребительные значения.

Пути к файлам

В конфигурационных файлах Apache и PHP Вам часто придется указывать пути к различным директориям и папкам. В операционных системах UNIX и Windows при-меняются различные разделители каталогов. В UNIX используется прямая косая черта "/", например /usr/bin/perl, в в Windows обратная, например, c:Apachein. Вообще, в некоторых директивах Apache и PHP работают оба вида разделителей каталогов: прямой(/) и обратный(), но так как и Apache и PHP изначально разрабаты-вались под UNIX, то применяя их "родной" формат, Вы сможете избежать ряда проблем. Поэтому пути в настроечных файлах (httpd.conf и php.ini) рекомендуется писать через слеш в формате UNIX - "/". Например:

ScriptAlias "/php_dir/" "c:/php/"

Директивы файла httpd.conf

Port

Port 80

Устанавливает порт TCP, который используется Apache для установки соединения. По умолчанию используется 80 порт.

Примечание

Единственная причина использования нестандартного порта - это отсутствие прав на использование стандартного порта. При использовании нестандартного порта, например, 8080 номер порта следует указывать в адресе, например: http://localhost:8080/.

ServerAdmin

ServerAdmin [email protected]

Содержит e-mail-адрес администратора web-сервера, который будет отображаться при ошибках работы сервера.

ServerName

ServerName myserver

Содержит имя компьютера для сервера.

ServerRoot

ServerRoot "C:/Apache2"

Указывает на каталог, содержащий файлы WEB-сервера Apache.

Примечание

Не путайте директиву ServerRoot с директивой DocumentRoot, которая указывает каталог для файлов WEB-сайта.

DocumentRoot

DocumentRoot "C:/Apache2/htdocs"

Определяет каталог, в котором расположены файлы WEB-сайта.

Контейнер

Сфера действия директив внутри этого контейнера распространяется на все файлы и подкаталоги внутри DocumentRoot.


Options FollowSymLinks Includes Indexes
AllowOverride All

  • Директива AllowOverride установленная в значение All разрешает переопределять значения главного конфигурационного файла httpd.conf в файлах.htaccess.
  • Директива Options FollowSymLinks разрешает Apache следовать символическим ссылкам.
  • Директива Options Includes разрешает выполнение директив SSI (Server Side Includes) в коде страниц web-сайта.
  • Директива Options Indexes указывает, что нужно возвращать содержимое каталога, если отсутствует индексный файл.

DirectoryIndex

DirectoryIndex index.html index.phtml index.php

Содержит список индексных файлов, которые следует отображать при обращении к директории без указания имени файла (например, http://localhost/test/).

AddDefaultCharset

AddDefaultCharset windows-1251

Устанавливает кодировку по умолчанию, если кодировка не установлена в заголовке HTML-документа. Также Вам может потребоваться указывать значение кодировки KOI8-R.

Создание виртуальных хостов

На одном WEB-сервере Apache можно установить несколько WEB-сайтов. Эта функция сервера называется виртуальным хостингом. Ниже рассмотрим создание виртуальных узлов на основе имен. Виртуальные узлы обычно расположены в конце файла httpd.conf.

Сначала требуется указать какой IP-адрес используется для виртуальных хостов.



# Директивы виртуального хоста

Файл httpd.conf. Контейнер


ServerAdmin webmaster@may_domain.ru
DocumentRoot c:/www/mysite
ServerName www.mysite.ru
ServerAlias www.site.ru www.host2.ru
ErrorLog logs/mysite-error.log
CustomLog logs/mysite-access.log common

Рассмотрим директивы виртуального узла:

  • DocumentRoot указывает каталог, где расположены файлы (странички) данного виртуального узла (WEB-сайта)
  • ServerName указывает имя виртуального узла, по которому к нему можно обратиться. В данном случае, по адресу http://www.mysite.ru/.
  • ServerAlias содержит псевдонимы имен виртуального узла. В данном случае к виртуальному узлу можно также обратиться, используя имена: http://www.site.ru/ и http://www.host2.ru/.
  • ErrorLog и CustomLog указывает имена логов сервера для этого виртуального хоста.

Контейнеры обычно располагают один за другим в конце файла httpd.conf.

Файл httpd.conf. Настройка виртуальных хостов

NameVirtualHost 127.0.0.1:80

# Директивы виртуального хоста 1


# Директивы виртуального хоста 2


# Директивы виртуального хоста 3

Примечание

Для применения изменений, вносимых в файл httpd.conf, Apache следует перезагрузить.

Для того, чтобы обращаться к виртуальным узлам по именам их следует прописать в базы данных DNS-сервера. Если Вы используете Apache для тестирования файлов на локальной машине, то имена ваших виртуальных узлов следует прописать в файле hosts. Для Windows 2000 и XP он расположен в каталоге C:WindowSystem32Driversets. Файл hosts содержит записи вида:

Формат записей файла hosts

127.0.0.1 www.mysite.ru
127.0.0.1 www.site.ru
127.0.0.1 www.host2.ru

Установка и настройка PHP

Для установки PHP следует создать каталог c:/php и разместить в нём файлы из zip-архива дистрибутива. После этого следует переименовать конфигурационный файл php.ini-dist в php.ini и скопировать его в директорию Windows.

Установка PHP в качестве модуля

Установка PHP в качестве модуля немного повышает быстродействие, так как модуль PHP загружается один раз при запуске Web-сервера

Замечание

При установке PHP в качестве модуля настройки из php.ini читаются один раз при запуске Web-сервера. Поэтому при внесении изменений в php.ini необходимо перегрузить Apache для того, чтобы внесенные изменения вступили в силу.

Для установки PHP откройте файл главный настроечный файл Apache httpd.conf на редактирование и удалите символы комментариев со следующих строк, при необходимости изменив их:

Файл httpd.conf. Подключение PHP как модуль Apache


LoadModule php5_module c:/php/php5apache2.dll

Примечание

Установка PHP, как CGI-приложения

При установке PHP, как CGI-приложения интерпретатор PHP будет загружаться каждый раз при вызове PHP-сценария. В связи с этим, возможно, некоторое ухудшение быстродействия. Если PHP установлен, как CGI, то при внесении изменений в файл php.ini Apache перезагружать не следует, так как установки читаются каждый раз при выполнении PHP-сценария. Установка PHP как CGI немного ускоряет внесение изменений в конфигурацию PHP, так она не требует перезагрузки WEB-сервера.

Примечание

При установке PHP, как CGI перестанут работать некоторые заголовки, например, Вы не сможете организовать авторизацию пользователей средствами PHP. Авторизации можно будет реализовать только средствами самого Apache с помощью файлов.htaccess.

Для установки PHP откройте главный настроечный файл httpd.conf на редактирование, найдите в нем закомментированные строки подключения PHP и измените их следующим образом:

Файл httpd.conf. Подключение PHP как CGI

AddType application/x-httpd-php phtml php

Options ExecCGI

ScriptAlias "/php_dir/" "c:/php/"
Action application/x-httpd-php "/php_dir/php-cgi.exe"

Примечание

Вместо директории c:/php подставьте Вашу директорию с установленным PHP.

Конфигурирование PHP (файл php.ini)

Так как на локальной машине вы, скорее всего, будете заняты тестированием Ваших Web-приложений, то необходимо должным образом настроить конфигурационный файл php.ini. Найдите директиву error_reporting и установите для неё следующее значение:

Это значение настроит PHP таким образом, что при работе PHP-скриптов будут отображаться все ошибки, а "замечания" будут игнорироваться. Так же обходимо проследить, чтобы директива display_errors, была включена:

Display_errors = On

Если данная директива отключена (Off), то сообщения об ошибках не будут выводится в окно браузера и в случае возникновения в коде ошибки вы будете гадать перед девственно белым окном - что бы это означало.
Так же необходимо проследить, чтобы директива variables_order имела следующее значение:

Variables_order = "EGPCS"

Буквы здесь означают следующее:
E - переменными среды
G - переменными передаваемыми по методу GET (G)
P - переменными передаваемыми по методу POST (P)
C - Cookies
S - сессии
Отсутствие какой-либо из букв не позволит вам работать с соответствующими переменными.

Следующая директива, которая может потребовать настройки – это register_globals . Если данная директива включена

Register_globals = On

то переменные передаваемые метором GET, POST, через cookies и сессии можно использовать в PHP-скрипте, обращаясь к ним просто как обычным переменным $someone.
Если данная директива отключена

Register_globals = Off

то к таким переменным можно будет обращаться только при помощи суперглобальных массивов ($_POST, $_GET и т.п.).
Директива register_long_arrays позволяет использовать суперглобальные массивы в старом формате ("длинном" - $HTTP_GET_VARS, $HTTP_POST_VARS и т.д.)

Register_long_arrays = On

Теперь необходимо настроить индексный файл. Если в окне браузера набрать строку http://localhost/, а не http://localhost/index.html. Сервер всё равно предоставит браузеру index.html, так как этот файл является индексным и ищется в директории первую очередь, если не указан конкретный файл. Теперь необходимо настроить http.conf, таким образом, чтобы Web-сервер Apache так же реагировал на файлы index.php. Для этого найдте в http.conf директиву DirectoryIndex и исправьте её следующим образом:

DirectoryIndex index.html index.html.var index.php

После этого необходимо перегрузить сервер Apache, а в корневой директории виртуального хоста ("C:/www/scripts") создать пробный файл PHP (index.php):

phpinfo ();
?>

В случае успешной настройки, обращение по адресу http://localhost/index.php отобразит фиолетовую таблицу с текущими настройками PHP, которая выдаётся функцией phpinfo().
Таким образом, у нас настроена связка Apache и PHP и можно переходить к настройке MySQL. Распакуйте дистрибутив MySQL во временную директорию и запустите установщик. Контролировать работу сервера MySQL можно точно так же как и Apache, используя консоль управления сервисов Windows.

Подключение MySQL

Подробная методика подключения к PHP расширения MySQL описана в статье по ссылке: .

Если сервер MySQL уже установлен на Вашей машине, то следующим шагом будет настройка PHP для работы с базами данных MySQL.

Откройте на редактирование файл php.ini из каталога Windows. Для подключения библиотеки расширения MySQL Вам нужно убрать символ комментария;(точка с запятой) из строки:

Extension=php_mysql.dll

Также проверьте значение директивы extension_dir

Extension_dir ="c:/php-5.0/ext"

Она должна указывать на каталог, где хранятся расширения PHP. Разделители каталогов рекомендуется писать в формате UNIX (/) - обратный слеш. Однако, если ничего не получается, просто откатите назад значение директивы extension_dir, а библиотеку php_mysql.dll скопируйте в корень C:/php-5.0/ - в большинстве случаев это должно помочь.

Если PHP Вас подключен как модуль, то Вам также необходимо скопировать библиотеку libmysql.dll из каталога с установленным PHP в системный каталог C:/Windows/System32. Чтобы внесенные изменения вступили в силу - перезагрузите Apache.

Для проверки работы MySQL перезапустите сервер Apache и создайте проверочный скрипт со следующим кодом:

$dblocation = "127.0.0.1" ;
$dbname = "test" ;
$dbuser = "root" ;
$dbpasswd = "" ;

$dbcnx = @ mysql_connect ($dblocation , $dbuser , $dbpasswd );
if (! $dbcnx )
{
echo "

К сожалению, не доступен сервер mySQL

" ;
exit();
}
if (!@
mysql_select_db ($dbname , $dbcnx ))
{
echo "

К сожалению, не доступна база данных

"
;
exit();
}
$ver = mysql_query ("SELECT VERSION()" );
if(! $ver )
{
echo "

Ошибка в запросе

"
;
exit();
}
echo
mysql_result ($ver , 0 );
?>

В случае успешной интеграции MySQL в связку Apache и PHP, обращение к проверочному скрипту выведет в окно браузера версию сервера MySQL.

В новых версиях MySQL (начиная с 4.1.0) изменился порядок работы с национальными кодировками, поэтому старый код может вызывать появление в таблице базы данных знаков вопроса "????????" вместо русского текста. Для того, чтобы этого не возникало в начало PHP-скрипта, после установки соединения с базой данных, следует поместить следующие строки:

mysql_query ("set character_set_client="cp1251"" );
mysql_query ("set character_set_results="cp1251"" );
mysql_query ("set collation_connection="cp1251_general_ci"" );
?>

Установка расширений PHP

На последок вам возможно понадобится настроить некоторые расширения PHP, они настраиваются точно так же как и MySQL.

Так для того, чтобы подключить графическую библиотеку GDLib в php.ini необходимо раскомментировать строку:

Extension=php_gd2.dll

Проверьте после этого наличие данной библиотеки в папке c:phpext. После внесения изменений в php.ini перезапустите сервер. Что бы быстро проверить: подключилась ли библиотека - выполните функцию phpinfo(). Если все в порядке, то в таблице, которая отображается функций phpinfo(), должен появится раздел "gd

При использовании устаревшего имени php.exe, использовавшегося в более ранних версиях вместо php-cgi.exe также возможно появлении ошибки:

403 Forbidden You don"t have permission to access /__php_dir__/php.exe/test.php on this server

HTML-файлы выполняются, а PHP-скрипты нет

При ненастроенном подключении PHP при обращении к файлам с расширением php, например: http:/localohost/index.php открывается окно с запрос на загрузку такого файла. Это говорит о том, что не настроена обработка файлов с расширением php. Проверьте в файле httpd.conf существование следующей строки:

AddType application/x-httpd-php phtml php

Notice: Undefined variable...

На новом, только что установленном, PHP можно часто видеть сообщения вида:

Notice: Undefined variable: msg in C:/Main/addrec.php on line 7

Error_reporting = E_ALL & ~E_NOTICE

Не подключается MySQL

Иногда возникают проблемы с установкой MySQL. Следует проконтролировать запускается ли MySQL в качестве сервиса каждый раз при старте системы. Для этого откройте консоль сервисов:

Пуск | Настройка | Панель управления | Администрирование | Службы

найдите там MySQL - запустите. Чтобы сервер стартовал при каждой загрузке системы нажмите правую кнопку мыши на сервисе и выберите "Свойства" - в открывшемся выпадающем списке "Тип запуска" выберите пункт "Авто".

Если при запуске Apache и при обращении ко скриптам выдается сообщение о невозможности загрузки библиотеки php_mysql.dll.

PHP startup: Unable to load dynamic library c:/php/ext/php_mysql.dll
- не найден указанный модуль

То еще раз сверьтесь с инструкциями из раздела, где описывается подключение к PHP библиотеки для работы с MySQL. Используете ли Вы "правильную" версию файла php_mysql.dll (именно для той версии PHP, которая установлена в системе)?
Версии файла php_mysql.dll различаются для разных версий PHP, хотя и имеют одно и тоже название.

  • Использование разделителей каталогов формате Windows (обратный слеш): c:apache/bin. Для надежной работы следует использовать разделители в формате UNIX (прямой слеш), например: c:/apache/bin.
  • Существование нескольких настроечных файлов php.ini на машине, либо отсутствие такого файла. Нужный файл php.ini должен лежать в директории Windows. Проведите поиск по дискам компьютера, найдите все лишние версии файлов и удалите их.
  • Любые возникающие по установке связки Apache+PHP+MySQL вопросы вы можете задать на нашем форуме посвященном установке и настройке Apache, PHP и библиотек расширений .

    Курс предназначен для базовой подготовки администраторов сайтов, созданных на "1С-Битрикс: Управление сайтом" . Изучив курс, вы освоите основные методы администрирования системы, а также пополните знания по темам, изученным в курсе Контент-менеджер .

    Если вы добросовестно изучите курс, то научитесь:

    • управлять доступом к системе, сайтами, пользователями, группами пользователей;
    • работать с инструментами системы;
    • использовать возможности интерфейса по управлению системой;
    • работать с модулями "1С-Битрикс: Управление сайтом", связанными с оптимизацией и безопасностью работы сайта;
    • выполнять работу по конфигурированию веб-системы для оптимальной работы.

    Если вам предстоит самостоятельная установка системы или перенос сайта на хостинг, то без курса Установка и настройка Курс Установка и настройка предназначен для специалистов устанавливающих "1С-Битрикс: Управление сайтом" или "Битрикс24 в коробке".

    Вам не обойтись.

    Необходимый минимум знаний для изучения курса:

    • базовые навыки компьютерной грамотности и навыков работы с ОС Windows;
    • базовые знания о WWW и организации доступа к веб-серверу;
    • знание системы в рамках курса Контент-менеджер Мы считаем, что вы этот курс уже прошли и знаете многое о Битриксе. Поэтому подсказок во всплывающих окнах будет намного меньше, чем в курсе Контент-менеджер. , чтобы банально не путаться в интерфейсе.

    Неплохо было бы иметь базовые навыки установки и администрирования *nix-систем.

    Если данный курс берётся в качестве основы для оффлайного преподавания, то рекомендуемая продолжительность: 3 дня (24 академических часа).

    Экономите время и учитесь по дороге на работу или в ВУЗ? Используйте файл формата CHM, они открываются на любых устройствах. Программы для чтения доступны в AppStore и Play Market. Файлы формата CHM обновляются ежемесячно, тем не менее, возможно некоторое отставание их от онлайновой версии курса.

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

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

    Доступ к php.ini

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

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

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

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

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

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

    Найти файл не сложно.

    class="eliadunit">

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

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

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

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

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

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

    INI-файлы - это обычные текстовые файлы, состоящие из определённых секций. Как правило, INI-файлы используются для сохранения определённых настроек, например, настроек языка. И, разумеется, чтобы наш сайт мог легко изменяться тем или иным образом, можно все параметры, отвечающие за это изменение, поместить в отдельный файл. И как быстро извлечь в PHP из этого файла все настройки мы и разберём в этой статье.

    Для чтения INI-файла в PHP используется функция parse_ini_file() . Но прежде, чем её использовать, создадим INI-файл "settings.ini ":

    Par1=10
    Par2=20

    В этом файле мы описали два параметра и присвоили им определённые значения. А теперь создадим PHP-файл , в котором считаем данные из созданного файла с помощью функции parse_ini_file() :

    $arr = parse_ini_file("settings.ini");
    print_r($arr);
    ?>

    В результате, Вы увидите следующую строку: "Array ( => 10 => 20) ". Как видите, функция parse_ini_file() вернула массив с ключами в виде названия параметров и значениями в виде тех, что мы задавали в файле "settings.ini ".

    Теперь разберём пример из реальной практики. Сделаем одну страничку, которая будет выводить текст на языке, заданным GET-параметром . Для начала создадим INI-файл "lang_en.ini ":

    HELLO=Hello
    WORLD=world

    Теперь создадим PHP-скрипт :

    $lang = isset($_GET["lang"])? $_GET["lang"]: "en";
    $langconst = parse_ini_file("lang_$lang.ini");
    echo $langconst["HELLO"]." ".$langconst["WORLD"]."!";
    ?>

    Первой строкой мы проверяем: если был передан GET-параметр lang , то тогда считываем оттуда значение и записываем в переменную lang . А если никакого значения передано не было, то устанавливаем значение по умолчанию, в нашем случае: "en ". Дальше мы обращаемся к файлу нужного языка и вытаскиваем оттуда данные. Затем уже просто выводим строку, используя полученные языковые константы . В результате, мы увидим: "Hello World! ".

    А теперь пришла пора доказать, почему это так удобно. Для того, чтобы добавить новый язык достаточно создать лишь ещё один файл, где перевести все языковые константы:

    HELLO=Привет
    WORLD=мир

    Сохраните данный файл под названием "lang_ru.ini ", и запустите скрипт: "адрес_скрипта.php?lang=ru ". В результате, Вы увидите: "Привет мир!".

    Как видите, мы создали лишь ещё один INI-файл , перевели константы на нужный язык и всё! Таким образом, Вы легко можете создать несколько языковых версий Вашего сайта, что смотрится очень здорово, а, главное, реализация этого достаточно простая.

    php имеет множество настроек, описанных в файле php.ini. Этот файл должен быть доступен в системных путях поиска для того, чтобы php мог использовать эти настройки. Обычно для этого достаточно хранить этот файл в том же каталоге, где расположен сам php, но если php сконфигурирован для работы в качестве модуля web-сервера, то этот файл необходимо скопировать в каталог, явно доступный в системных путях поиска. См. раздел инсталляции php для получения более подробных инструкций.

    Здесь рассматриваются основные параметры php, разделенные по категориям. Список параметров в основном соответствует версии php 4.0.6, однако здесь рассматриваются только основные параметры. Полный список параметров с комментариями по каждому из них можно увидеть непосредственно в php.ini, а также в соответствующем разделе php manual.

    Значения параметров, имеющих варианты "да/нет" могут быть следующими:

    ДА - 1, on, true or yes
    НЕТ - 0, off, false or no

    Short_open_tag

    Включение поддержки сокращенного варианта php тегов. Если эта опция отключена, то php код будет распознаваться только внутри тегов. Если включена - то разрешено использование тегов. Хорошим тоном считается не использовать сокращенной записи php тегов.

    Включение поддержки asp тегов <% %> в качестве php тегов.

    Output_buffering

    Включение буферизированного вывода php. Использование буферизированного вывода позволит вам, к примеру, использовать любые функции, оперирующие с http header"ами (header(), setcookie()) в любом месте вашего скрипта, не заботясь о том, чтобы не выводить ничего до этого. Вы можете управлять буферизированным выводом и из ваших скриптов (см. раздел output control functions в php manual). Помните, что при включенной буферизации вывода результат работы скрипта будет возвращен браузеру только после того, как будет закончена работа скрипта, что может привести к более медленной работе сайта.

    Включение безопасного режима работы php. Безопасный режим запрещает скриптам производить любые действия, которые являются небезопасными для сервера, на котором работает php. Очень подробно безопасный режим работы php рассматривается в php manual.

    Max_execution_time

    Максимальное время работы php скрипта (в секундах). Спустя это время работа скрипта будет принудительно завершена и выдана соответствующая ошибка. Позволяет избежать проблем с "зациклившимися" скриптами.

    Максимальный объем памяти, который может быть выделен для нужд скрипта. Также позволяет избежать проблем с "зациклившимися" скриптами.

    Error_reporting

    Маска для сообщений об ошибках, которые должны генерироваться php. Задается в виде логического выражения с использованием набора предопределенных констант, описывающих различные типы ошибок. Список этих констант, а также правила задания выражений можно найти в php.ini.

    Display_errors

    Определяет, нужно ли выводить сообщения об ошибках на экран. Обычно эта опция включается во время написания php скриптов, для того, чтобы иметь возможность видеть сообщения об ошибках, а на реальных серверах в интернете она обычно выключена по соображениям безопасности.

    Если включена эта опция, то все ошибки будут записываться в log файл, определенный следующей опцией.

    Путь и имя файла, куда будут записываться все сообщения об ошибках, генерируемых php. Для систем поддерживающих системный журнал ошибок можно установить значение этого параметра равным syslog, для того, чтобы перенаправить все сообщения об ошибках туда.

    Если включена эта опция, то текст последней ошибки будет всегда доступен из переменной $php_errormsg.

    Register_globals

    Этот параметр определяет, будут ли т.н. egpcs переменные (environment, get, post, cookies, session) доступны в виде глобальных переменных php. Если этот параметр разрешен, то переменные доступ к этим переменным будет осуществляться также, как и к любым другим глобальным переменным php:


    echo "Версия http протокола: " . $server_protocol ;
    echo "Параметр query string: " . $param1 ;
    echo "Элемент формы: " . $txtfirstname ;
    echo "Мои cookie: " . $mycookie ;
    echo . $mysessionvar ;

    Или то же самое, но с отключенным параметром:


    echo "Версия http протокола: " . $http_env_vars [ "server_protocol" ];
    echo "Параметр query string: " . $http_get_vars [ "param1" ];
    echo "Элемент формы: " . $http_post_vars [ "txtfirstname" ];
    echo "Мои cookie: " . $http_cookie_vars [ "mycookie" ];
    echo "Мои сессионные переменные: " . $http_session_vars [ "mysessionvar" ];

    На первый взгляд это менее удобно, но отключение этого параметра имеет и свои преимущества:

    Php начинает работать немного быстрее, т.к. не тратится дополнительное время на создание множества переменных.
    Нет риска того, что какие-то две переменные будут иметь одинаковые имена, что приведет к появлению ошибок в работе скрипта, которые будет очень сложно отловить в силу их неочевидности.
    variables_order

    Этот параметр используется в связке с предыдущим параметром и определяет, в какой последовательности производится регистрация глобальных egpcs переменных. Например, при значении по умолчанию (egpcs) переменные, переданные через get будут замещены переменными, переданными через post и имеющими то же имя. post-переменные (а также environment и get переменные) в свою очередь могут быть замещены значениями cookies с такими же именами и т.д.

    Magic_quotes_gpc

    Включение этого параметра приведет к тому, что все данные, поступающие со стороны клиента (через get, post или cookie) будут обработаны: все кавычки (" и ") в них будут замещены соответственно сочетанием " или ". С одной стороны это очень удобно, если планируется, например, вставлять эти данные в строки, передаваемые, например, sql серверу. Но с другой стороны это может привести к путанице, поэтому обычно надежнее использовать для этой цели функции addslashes() и stripslashes().

    Magic_quotes_runtime

    Данный параметр аналогичен предыдущему за исключением того, что влияет на данные, поступающие из внешних источников, расположенных на стороне сервера (например, данные, поступающие от sql сервера или результаты работы внешних программ).

    Magic_quotes_sybase

    Включение этой опции приведет к тому, что одинарные кавычки (") будут сдваиваться (""). Это необходимо для некоторых sql серверов, которые поддерживают только такой способ вставки кавычек в строки (interbase, ms sql, sybase и некоторые другие).

    Auto_prepend_file

    Позволяет задать путь и имя файла, который будет автоматически добавляться в начало каждого php скрипта. Используется только если имеет непустое значение.

    Auto_append_file

    То же самое, что предыдущий параметр, но добавление содержимого файла производится в конец каждого php скрипта.

    Путь к каталогу, где лежат модули php. Обычно это подкаталог extensions в корневом каталоге php.



    
    Top