Windows php apache postgresql php

PHP 5.4.39 в связке с PostgreSQL – настройка подключения и описание основных функций

В материале мы рассмотрим возможность взаимодействия языка программирования PHP версии 5.4.39 с СУБД PostgreSQL 9.1.13, мы научимся связывать PHP и PostgreSQL, узнаем, какие есть функции PHP для работы с PostgreSQL, а также разберем несколько примеров использования этих функций.

Для тех, кто увлекается web-программированием и в частности программированием на PHP не секрет что самой распространенной связкой языка и СУБД является связка PHP и MySQL, но иногда возникает необходимость взаимодействовать и с другими базами, например с PostgreSQL. Кстати, PHP поддерживает работу не только с MySQL и PostgreSQL, но еще и со многими другими СУБД, об этом мы говорили в материале PHP и базы данных. А сегодня мы подробней остановимся именно на работе с PostgreSQL, и начнем мы, конечно же, с вопроса как настроить взаимодействие PHP и PostgreSQL.

Примечание! В качестве операционной системы у нас будет выступать Windows 7, в качестве web-сервера Apache 2.2.2, версия PHP 5.4.39, версия PostgreSQL 9.1.13.

Настройка подключения PHP и PostgreSQL

Первое что нужно сделать, это убедиться, что в каталоге с PHP присутствует библиотека libpq.dll. Затем в файле php.ini найди строку, отвечающую за подключение модуля PostgreSQL и раскомментировать ее, а именно

Перезапускаем Apache и запускаем phpinfo(), и если Вы найдете блок pgsql, то все, библиотеку PostgreSQL Вы подключили.

Если у Вас нет данного раздела, то попробуйте скопировать libpq.dll из каталога PostgreSQL (по умолчанию C:\Program Files\PostgreSQL и так далее) в каталог с PHP с заменой старого, и перезапустите Apache еще раз.

Основные функции PHP для работы с PostgreSQL

pg_connect – открывает соединение с базой данных, возвращает указатель соединения.

pg_query – выполняет запрос к базе данных, возвращает результат запроса.

pg_fetch_assoc – преобразовывает результат запроса в ассоциативный массив.

pg_close – закрывает соединение с базой данных.

Пример работы перечисленных функций

В данном случае мы подключаемся к серверу, который расположен локально, по порту 5432, к базе testbase под пользователем admin с паролем 12345 и выполняем запрос (просто статические данные) к базе данных, затем мы преобразовываем результат в ассоциативный массив, выводим на экран и закрываем соединение.

pg_num_rows – возвращает количество строк в наборе данных, который вернул нам запрос.

pg_num_fields — возвращает количество полей в наборе данных, который вернул нам запрос.

pg_fetch_result – возвращает одно значение из результата запроса.

pg_fetch_row — преобразовывает результат запроса в массив.

pg_fetch_object – преобразовывает результат запроса в объект.

pg_field_name – возвращает название поля по его номеру.

pg_field_num – возвращает номер поля по его названию.

pg_version – возвращает сведения о протоколе взаимодействия, версии клиента и версии сервера в виде массива.

pg_escape_string – экранирует спецсимволы в строке.

pg_dbname – возвращает название базы данных.

pg_affected_rows – возвращает количество затронутых строк при update, insert и delete.

На этом я предлагаю заканчивать, так как для основ этого достаточно, описание всех функций Вы можете найти на сайте PHP вот здесь, ну все, пока!

Источник

Оптимизация Apache + PHP + PostgreSQL

После ввода в строй динамического веб-сервера на базе apach + php + postgresql (да и на базе других систем тоже, если честно), вебмастер часто обнаруживает, что производительность системы начинает с большей или меньшей активностью стремиться к нулю, порой его достигая при наплывах посетителей. Стандартными действиями вебмастера при этом являются лихорадочное чтение документации, поиск в Интернете всяческих полезных советов, общение в форумах и прочие телодвижения, типичные для «компьютерного аврала». При этом очень часто находятся какие-то обрывки информации, ответы из серии «у меня заработало, почему у тебя не работает не знаю», противоречивые советы и ссылки на мегабайтные исходники, разбор которых грозит затянуться на несколько лет…

Поэтому ниже предпринята попытка в компактном виде изложить те вещи, которые наиболее значительно влияют на производительность сервера. Нельзя сказать, что этот список является полным и законченным, но он может послужить неплохой пищей для размышлений. А если у вас есть какие-то свои наработки и «идеи по поводу» — пишите автору, он постарается учесть их в следующей редакции этой статьи…

Настройка php

Эффект от перехода на постоянные соединения очень заметен, особенно на посещаемых сайтах. Загрузка сразу падает процентов на двадцать-тридцать, а то и больше! Только не пугайтесь обнаруживая в top’е кучу postres’ов в состоянии sbwait…

Настройка postgresql

Настройка postgresql осуществляется с помощью редактирования файла postgresql.conf и последующего перезапуска постмастера. Несмотря на то, что некоторые параметры можно менять «на лету», практика показала, что полный перезапуск позволяет намного точнее и быстрее отследить влияние тех или иных изменений конфигурации на поведение системы в целом, так что имеет смысл использовать именно этот метод.

Настройка shared_buffers в postgres’е очень важна. Чем больше памяти ему выделено, тем больше данных он сможет использовать не обращаясь к диску. Но если памяти выделить слишком много, то другим процессам ее может не хватить и они будут использовать файл подкачки. Поэтому с настройкой этого параметра придется поэкспериментировать — помимо всего прочего, очень многое зависит от конкретики вашего сайта, в частности от того, насколько часто запрашиваются одни и те же данные. В качестве стартовой точки можно попробовать выделить postgres’у 40% памяти, если он работает на одной машине с веб-сервером, и 70%, если это выделенный сервер баз данных. Только не забудьте, что до того, как указывать количество памяти в файле postgresql.conf, вам надо настроить операционную систему, чтобы она разрешила эту память забрать, иначе postgresql просто не запустится, написав в лог, что не удалось получить требуемую память. О том как настроить выделение необходимой памяти в разных ОС подробно написано в документации postgresql. Эта память выделяется один раз при старте сервера.

Следующий полезный параметр — sort_mem. Эта память используется для сортировки полученных наборов данных, и большое ее количество полезно, если ваши запросы часто используют select … order by… Но с этим параметром надо быть очень осторожным — мало того, что указанное вами количество памяти выделяется каждому процессу, так оно еще и может выделяться несколько раз для сложных запросов! Так что с этим параметром тоже стоит «поиграть» — попробуйте изменять его значения в диапазоне, скажем, от 1 Мб до 128 Кб. Причем иногда результаты бывают парадоксальными — уменьшение памяти ведет к повышению производительности, по всей видимости, из-за создания множества маленьких временных файлов, которые операционная система успешно кеширует в свободной памяти.

Читайте также:  System windows forms screen

Если задачи, выполняющиеся на сервере не являются критичными и возможная потеря нескольких записей при аварии вас не пугает, то стоит также отменить принудительную запись на диск результатов каждой транзакции. Делается это указанием fsync = false. При этом результаты ваших изменений будут хранится в памяти и записываться на диск целыми блоками, что позволит достаточно заметно увеличить производительность. Но, как было отмечено выше, если вдруг сервер «упадет», то результаты нескольких последних обновлений могут быть утеряны.

Очень сильно влияет на скорость работы грамотное индексирование таблиц. Про индексы можно писать (и уже написано) много, но основной принцип — индексировать надо те поля, которые используется для выборки данных (проверяются в where). Составные индексы (в которых используется несколько полей) работают, если отбор происходит с условием and, если используется or, то надо создавать несколько отдельных индексов.

Однако для маленьких таблиц (скажем, до 500 строк) перебор почти всегда оказывается быстрее, чем использование индексов. Тут можно применить маленькую хитрость: в postgresql.conf указать enable_seqscan = false (это запретит перебор для тех таблиц, у которых есть индексы) и удалить все индексы в маленьких таблицах (индексы, автоматически создаваемые для первичных ключей, можно удалить, используя drop constraint).

Неплохой выигрыш в производительности может дать и оптимизация самих sql запросов, особенно тех, которые используются чаще всего. Для того, чтобы их вычислить можно в скриптах перенумеровать все запросы и перед каждым вызовом pg_query() записывать в лог (или в таблицу) номер запроса. А потом просто проанализировать лог… Для того, чтобы посмотреть как будет выполняться запрос можно (нужно!) использовать команду explain. Учтите, что в некоторых случаях даже простое изменение порядка следования условий выборки в секции where может изменить план выполнения запроса!

В некоторых случаях может помочь и использование представлений (views). Дело в том, что при выдаче «обычного» sql запроса сервер его анализирует, создает план выполнения и потом выполняет. А если используется представление, то анализ и составление плана производится только при его создании. Если запросы выполняются часто, то сэкономленное время работы процессора может оказаться весьма заметным. Не говоря уже о том, что запросы в скриптах станут намного короче и нагляднее…

Практически во всех руководствах (и в документации postgresql) можно встретить рекомендации регулярно запускать vacuum analyze, для сжатия таблиц. Рекомендация правильная и полезная, но недостаточная. Практика показала, что без более-менее регулярных запусков vacuum full analyze производительность системы постепенно падает, причем чем дальше, тем больше. Разница между vacuum и vacuum full заключается в том, что full физически переписывает на диске всю таблицу таким образом, чтобы в ней не оставалось «дырок» от удаленных или обновленных записей. Но его недостаток в том, что во время работы таблица полностью блокируется, что может привести к проблемам на популярном сервере — начнет скапливаться очередь запросов, ожидающих доступа к базе, каждый запрос требует памяти, память кончается, начинается запись в swap, из-за отсутствия памяти сам vacuum тоже начинает использовать swap и все начинает работать очень-очень медленно.

Для того чтобы уменьшить время, в течение которого посетители не могут добраться до вашего сайта, можно перенаправлять посетителей только в то время, когда оптимизируются большие и частоиспользуемые таблицы, а остальные «чистить» паралльно с работой сайта. Если данные в базе обновляются очень часто, то можно, скажем, каждый час запускать vacuum analyze, а раз в сутки — vacuum full analyze. Как правило, «время недоступности» сервера при таком подходе можно сократить до одной-двух минут даже на очень больших сайтах.

Кроме того, надо учесть, что vacuum не оптимизирует индексы, поэтому после отработки vacuum full analyze стоит запускать еще и reindex.

Разумеется, очень большое влияние на производительность оказывает и структура вашей базы данных, но эта область очень сильно зависит от конкретной задачи и в этой статье затрагиваться не будет.

Настройка apache

Конфигурационный файл apache, как правило, находится в /usr/local/apache/conf/httpd.conf, а заставить сервер его перечитать можно с помощью проргаммы /usr/local/apache/bin/apachectl.

Основной целью дальнейших рекомендаций является определение и ограничение количества «апачей», выполняющихся в каждый момент времени (предполагается, что сам сервер у вас уже настроен и работоспособен). Дело в том, что (условно) на каждого посетителя сайта «тратится» процесс apache, и каждый такой процесс расходует память и процессорное время. Поэтому если у вас будет слишком много запущенных серверов, то оперативной памяти не хватит, а использование swap’а сильно замедляет работу сайта. С другой стороны, если запущенных серверов мало, то при заходе пользователя будет тратиться время на создание нового процесса, что опять же приводит к задержкам и расходу процессорного времени.

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

Максимальное количество «апачей», которые могут быть запущены одновременно определяется параметром maxclients. Это число должно чуть-чуть превышать максимальное количество посетителей, которые могут в какой-то момент времени оказаться у вас на сайте. В то же время, если желающих к вам попасть много, а ресурсов сервера для их обслуживания не хватает, то излишне высокое число запущенных серверов только затормозит всю работу. Поэтому желательно установить какое-то разумное ограничение, скажем 150 или 200.

Время, в течение которого сервер ждет откликов от клиента определяется параметром timeout. Обрывы связи иногда случаются и если браузер посетителя обратился к вашему серверу, не получил ответа и послал повторный запрос (скажем, пользователь нажал reload), то у вас запустятся два «апача», причем один из них будет просто висеть и в течение указанного времени ждать, когда посетитель подтвердит свое желание посмотреть страничку. По умолчанию этот параметр установлен в 300 секунд, но значительно более эффективным оказалось понизить его до 30.

Включение поддержки keepalive может заметно облегчить жизнь. Дело в том, что в «обычном» режиме для передачи каждого файла клиенту требуется установить соединение, и если у вас на страничке, например, есть 10 картинок, то придется устанавливать и разрывать 10 соединений для их передачи. А в режиме keepalive сервер после передачи файла соединение не разрывает и последующие запросы от этого клиента обрабатывает, используя уже установленное соединение. Таким образом экономится время на установку и разрыв соединений, причем для популярных сайтов эта разница может быть очень заметна!

Читайте также:  Asus x205ta драйвера windows 10

Для keepalive соединений, точно также как и для обычных, надо установить timeout с помощью параметра keepalivetimeout. Так как сервер, установивший соединение с клиентом, недоступен для других клиентов пока соединение не будет разорвано, слишком большое значение может привести к куче серверов, ничего не делающих и просто ждущих не захочет ли их клиент скачать еще что-нибудь. Причем в это же время толпа новых посетителей может обнаружить, что ваш сайт не отвечает, так как достигнуто максимальное число разрешенных «апачей»… Наиболее практичным значением параметра keepalivetimeout является что-то между десятью и двадцатью секундами.

Как известно, долгое использование какой-то программы может привести к «утечкам памяти» или каких-то других ресурсов. Чтобы избежать таких проблем есть два параметра: maxkeepaliverequests и maxrequestsperchild. Первый параметр отвечает за принудительное «убиение» процесса после обработки указанного числа keepalive запросов, а второй — после указанного числа «обычных» запросов. В принципе, на абсолютном большинстве систем утечек памяти быть не должно и эти параметры можно сделать достаточно большими — по несколько тысяч. Но на всякий случай последите за поведением сервера — не исключено, что «утечки» обнаружатся в какой-то из библиотек, которые вы используете. Удобнее всего двигаться «снизу вверх» — сначала установить значения небольшими, скажем, 100 и 50, а потом их увеличивать, наблюдая за поведением сервера.

Ну и еще три параметра, регулирующие количество запущенных процессов: startservers, minspareservers и maxspareservers. Первый, при старте сервера запускает указанное число «апачей». Второй определяет минимальное число бездельничающих в ожидании нового клиента серверов, а третий — их максимальное число. В качестве первого шага можно поробовать, скажем, 25, 2 и 10, а дальше посмотреть на загруженность сайта…

Проверка результатов

Наиболее простым методом быстро оценить влияние сделанных вами изменений в настройках является команда top. В верхней части окна при ее работе выводится полезная статистическая информация, примерно такая:

last pid: 40772; load averages: 0.52, 0.50, 0.50 up 23+17:53:40 09:51:01
233 processes: 1 running, 231 sleeping, 1 zombie
cpu states: 21.2% user, 0.0% nice, 6.4% system, 0.4% interrupt, 72.0% idle
mem: 367m active, 239m inact, 123m wired, 48m cache, 112m buf, 107m free
swap: 1024m total, 13m used, 1011m free, 1% inuse
В первую очередь, надо обращать внимание на load averages — чем выше числа, тем хуже. В идеале, в нормальном состоянии они не должны превышать единицы. Следующее, к чему стоит присмотреться — это использование файла подкачки. Справа от строки swap могут появляться сообщения о записи в swap-файл (page out) или о чтении из него (page in). Чем чаще такие сообщения появляются — тем хуже. Дисковые операции уж очень медленные… Ну и, конечно, надо следить за количеством свободной памяти и загрузкой процессора. Впрочем, если вы сумеете добиться ситуации, когда swap-файл не будет использоваться, то, скорее всего, все остальное быстро придет в норму…

Источник

Windows php apache postgresql php

Заметка сделана для себя (вечно какая-то важная мелочь забывается 🙂 и молодого коллеги, дабы давать на изучение и приучение к FreeBSD. 🙂
Описываемое актуально для FreeBSD 9.0, Apache 2.2, PostgreSQL 9.2, PHP 5.4 и phpPgAdmin 0.6.4.

ОГЛАВЛЕНИЕ


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

В файл /etc/rc.conf прописываем для автозапуска:

В конфигурационный файл /usr/local/etc/apache22/httpd.conf прописываем имя сервера и адрес админа:

В файл конфигурации загрузчика /boot/loader.conf добавляем строку:

Запускаем наш Apache:

Если ошибок не появилось, значит всё нормально и сервер запустился.

Установка сервера PostgreSQL


Установка PHP

Ставил сам PHP, не забывая указать в конфигурации сборки поддержку PostgreSQL и Apache:

Теперь надо PHP «активировать» в Apache. Для этого добавим две строчки в /usr/local/etc/apache22/httpd.conf в блоке :

Так же создадим файл cat /usr/local/etc/php.ini на основе /usr/local/etc/php.ini-production, удалив комментарии:

и добавим в него в блок [Date] параметр временной зоны:

Для проверки нормальных подключения и работы модуля поддержки PHP можно открыть в браузре по ссылке http://xxx.xxx.xxx.xxx/index.php предварительно созданный файл /usr/local/www/apache22/data/index.php следующего содержания:

Для работы phpMyAdmin ещё понадобятся расширения PHP (php5-extensions), но ставить их отдельно смысла особого нет: она будут установлены, как необходимая зависимость для phpMyAdmin.

МЕЛОЧИ

Хабра 173623
http://myfreebsd.ru/other/administrirovanie-postgresql
http://postgresql-lab.blogspot.ru/2013/01/175.html
Мелочь №2: Обход ошибки при «битых страницах» БД
В пункте насчёт VACUUM неплохо бы указать, что делать, если VACUUM не может производиться. Недавно столкнулся с ситуацией, когда что VACUUM, что pg_dumpall мирно дохнут, выдав на-гора что-то вроде:

Invalid page header in block 946006 of pg_toast_3847720

То есть, файл повреждён, и работы дальше не будет. Что его могло повредить – повод для отдельного выяснения, а мне нужен был быстрый рецепт обхода. В таких случаях может спасти (возможно, с потерей пары записей, но возможно и целиком) употребление перед VACUUM команды

После этого VACUUM не споткнётся на битых страницах, а просто их обнулит. И дамп запишется, и всё такое.

template1=# CREATE USER user_name WITH CREATEDB LOGIN PASSWORD ‘Pas$w0rd’;
CREATE ROLE
template1=# select * from pg_shadow;
usename | usesysid | usecreatedb | usesuper | usecatupd | passwd | valuntil | useconfig
————+———-+————-+———-+————+————————————-+———-+————
pgsql | 10 | t | t | t | md500ba091dd8401516e01e318ebf4c476f | |
fomalhaut | 16384 | t | f | f | md54117783cb97c642fbe0eb685653b7b67 | |
(2 rows)

А зачем шифровать swap. При этом всё остольное не зашифровано.

Fomalhaut, 2011-01-24 в 1:12:51

Ёхман, 2013-05-10 в 15:48:18

Опция «-d» тоже не нужна, поскольку отмонтированние свопа как правило все равно не осуществляется до завершения работы.

Опция «-e» тоже не нужна, поскольку blowfish не дает никаких преимуществ перед стандартным AES.

На самом деле вся премудрость шифрования свопа заключается в одной операции: достаточно прописать суффикс «.eli» к устройству свопа во fstab, и не париться.

Этот информационный блок появился по той простой причине, что многие считают нормальным, брать чужую информацию не уведомляя автора (что не так страшно), и не оставляя линк на оригинал и автора — что более существенно. Я не против распространения информации — только за. Только условие простое — извольте подписывать автора, и оставлять линк на оригинальную страницу в виде прямой, активной, нескриптовой, незакрытой от индексирования, и не запрещенной для следования роботов ссылки.
Если соизволите поставить автора в известность — то вообще почёт вам и уважение.

Источник

Как установить веб-сервер Apache с PHP, MySQL и phpMyAdmin на Windows

Оглавление

Веб-сервер на Windows

Веб-сервер — это программа, которая предназначена для обработки запросов к сайтам и отправки пользователям страниц веб-сайтов. Самый популярный пример веб-сервера это Apache.

PHP — это язык программирования. Также называется среда для выполнения скриптов, написанных на PHP. В операционной системе, в том числе и Windows, PHP может быть установлен самостоятельно, без веб-сервера. В этом случае программы (скрипты) на PHP можно запускать из командной строки. Но веб-приложения очень часто используют PHP, данный интерпретатор стал, фактически, стандартом веб-серверов и поэтому они почти всегда устанавливаются вместе.

MySQL — это система управления базами данных (СУБД). Это также самостоятельная программа, она используется для хранения данных, поиска по базам данных, для изменения и удаления данных. Веб-приложения нуждаются в постоянном хранилище, поэтому для веб-сервера дополнительно устанавливается и СУБД. Кстати, вполне возможно, что вы слышали про MariaDB — это тоже СУБД. Первой появилась MySQL, а затем от неё ответвилась MariaDB. Для веб-приложений обе эти СУБД являются взаимозаменяемыми, то есть никакой разницы нет. В этой инструкции я буду показывать установку на примере MySQL, тем не менее если вы хотите попробовать новую MariaDB, то смотрите статью «Инструкция по установке веб-сервера Apache c PHP, MariaDB и phpMyAdmin в Windows».

Что касается phpMyAdmin, то это просто скрипт на PHP, который предназначен для работы с базами данных — наглядно выводит их содержимое, позволяет выполнять в графическом интерфейсе такие задачи как создавать базы данных, создавать таблицы, добавлять, изменять и удалять информацию и т. д. По этой причине phpMyAdmin довольно популярен, хотя и не является обязательной частью веб-сервера.

Особенность Apache и других компонентов веб-сервера в том, что их корни уходят в Linux. И эти программы применяют в своей работе основные концепции этой операционной системы. Например, программы очень гибки в настройке — можно выполнить установку в любую папку, сайты также можно разместить в любой папке, в том числе на другом диске, не на том, где установлен сам веб-сервер. Даже файлы журналов можно вынести на третий диск и так далее. У веб-сервера много встроенных модулей — можно включить или отключить их в любом сочетании, можно подключить внешние модули. Можно создать много сайтов на одном веб-сервере и для каждого из них установить персональные настройки. Но эта гибкая настройка выполняется через текстовые файлы — именно такой подход (без графического интерфейса) позволяет описать любые конфигурации

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

Мы не будем делать какие-то комплексные настройки — наша цель, просто установить веб-сервер на Windows. Тем не менее было бы странно совсем не использовать такую мощь в настройке. Мы разделим сервер на две директории: в первой будут исполнимые файлы, а во второй — данные (файлы сайтов и баз данных). В будущем, когда возникнет необходимость делать резервные копии информации или обновлять веб-сервер, вы поймёте, насколько удобен этот подход!

Мы установим сервер в отдельную директорию. Для этого в корне диска C:\ создайте каталог Server. В этом каталоге создайте 2 подкаталога: bin (для исполнимых файлов) и data (для сайтов и баз данных).

Перейдите в каталог data и там создайте подпапки DB (для баз данных) и htdocs (для сайтов).

Перейдите в каталог C:\Server\data\DB\ и создайте там пустую папку data.

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

Как установить Apache на Windows

Распакуйте папку Apache24 из этого архива в C:\Server\bin\.

Перейдите в каталог C:\Server\bin\Apache24\conf\ и откройте файл httpd.conf любым текстовым редактором.

В нём нам нужно заменить ряд строк.

Сохраняем и закрываем файл. Всё, настройка Apache завершена! Описание каждой изменённой директивы вы найдёте на этой странице.

Откройте командную строку (это можно сделать нажав одновременно клавиши Win+x).

Выберите там Windows PowerShell (администратор) и скопируйте туда:

Если поступит запрос от файервола в отношение Apache, то нажмите Разрешить доступ.

Теперь вводим в командную строку:

Теперь в браузере набираем http://localhost/ и видим следующее:

Как установить PHP на Windows

PHP 8 скачайте со страницы windows.php.net/download/. Выберите версию Thread Safe, обратите внимание на битность. Если вы затрудняетесь, какой именно файл скачать, то посмотрите эту заметку.

В папке c:\Server\bin\ создаём каталог PHP и копируем в него содержимое только что скаченного архива.

В файле c:\Server\bin\Apache24\conf\httpd.conf в самый конец добавляем строчки:

И перезапускаем Apache:

В каталоге c:\Server\data\htdocs\ создаём файл с названием i.php, копируем в этот файл:

В браузере откройте ссылку http://localhost/i.php. Если вы видите что-то похожее, значит PHP работает:

Настройка PHP 8

Настройка PHP происходит в файле php.ini. В zip-архивах, предназначенных для ручной установки и для обновлений, php.ini нет (это сделано специально, чтобы при обновлении случайно не удалить ваш файл с настройками). Зато есть два других, которые называются php.ini-development и php.ini-production. Любой из них, при ручной установке, можно переименовать в php.ini и настраивать дальше. На локалхосте мы будем использовать php.ini-development.

Открываем файл php.ini любым текстовым редактором, ищем строчку

Теперь найдите группу строк:

теперь раскомментируйте эту группу строк:

Этими действиями мы включили расширения. Они могут понадобиться в разных ситуациях для разных скриптов. Сохраняем файл и перезапускаем Apache.

Материалы по дополнительной настройке, в том числе подключение поддержки PERL, Ruby, Python в Apache (только для тех, кому это нужно):

Как установить MySQL в Windows

Бесплатная версия MySQL называется MySQL Community Server. Её можно скачать на странице https://dev.mysql.com/downloads/mysql/. На этой же странице есть установщик в виде исполнимого файла, но я рекомендую скачать ZIP-архив.

В каталог c:\Server\bin\ распаковываем файлы из только что скаченного архива. Распакованная папка будет называться примерно mysql-8.0.17-winx64 (зависит от версии), переименуйте её в mysql-8.0.

Заходим в эту папку и создаём там файл my.ini. Теперь открываем этот файл любым текстовым редактором и добавьте туда следующие строки:

Сохраните и закройте его.

Настройка завершена, но нужно ещё выполнить инициализацию и установку, для этого открываем командную строку от имени администратора и последовательно вводим туда:

По окончанию этого процесса в каталоге C:\Server\data\DB\data\ должны появиться автоматически сгенерированные файлы.

Теперь служба MySQL будет запускаться при каждом запуске Windows.

Как установить phpMyAdmin в Windows

Сайт для скачивания phpMyAdmin: phpmyadmin.net.

Прямая ссылка на самую последнюю версию: phpMyAdmin-latest-all-languages.zip.

В каталог c:\Server\data\htdocs\ копируем содержимое только что скаченного архива. Переименовываем эту папку в phpmyadmin.

В каталоге c:\Server\data\htdocs\phpmyadmin\ создаём файл config.inc.php и копируем туда:

В качестве имя пользователя вводим root. Поле пароля оставляем пустым.

Заключение

Вот и всё — теперь у вас есть свой персональный локальный веб-сервер на своём домашнем компьютере.

Если вдруг у вас что-то не получилось, то скорее всего вы пропустили какой-то шаг или сделали его неправильно — попробуйте всё сделать в точности по инструкции. Если проблема осталась, то ознакомьтесь со справочным материалом «Ошибки при настройке и установке Apache, PHP, MySQL/MariaDB, phpMyAdmin» и если даже он не помог, то напишите о своей ошибке в комментарии.

Большое количество материалов по Apache на русском языке специально для Windows вы найдёте на этой странице.

Примеры материалов, которые могут вам пригодиться в первую очередь:

Источник

Поделиться с друзьями
Советы экспертов и специалистов
Adblock
detector