- Как подключить PHP к Apache на Windows
- Настройка PHP в Windows
- Подключение PHP к Apache
- Настройка PHP
- Если PHP установлен как модуль Apache
- User Contributed Notes 4 notes
- Как установить веб-сервер Apache с PHP, MySQL и phpMyAdmin на Windows
- Оглавление
- Веб-сервер на Windows
- Как установить Apache на Windows
- Как установить PHP на Windows
- Настройка PHP 8
- Как установить MySQL в Windows
- Как установить phpMyAdmin в Windows
- Заключение
- Бесплатные уроки программирования на PHP. Интерпретируемый язык программирования PHP. Уроки для начинающих разработчиков сайтов и веб-страниц.
- Установка PHP как модуль сервера Apache. Инструкция по установке Apache 2.4 + PHP 5.6 на Windows. Серверная связка PHP + Apache
- Серверная связка PHP + Apache: как работают серверные технологии
- Что представляет собой модуль сервера Apache в Windows
- Инструкция по установке PHP 5.6 + Apache 2.4 на Windows 10
Как подключить PHP к Apache на Windows
Начнём с того, что скачаем самую новую версию PHP для Windows с официального сайта: https://windows.php.net/download/
Там несколько вариантов, которые различаются:
Выбирайте самую последнюю версию, с той битностью, какая у вашего сервера. Т.е. если у вас Apache 64-битный, то PHP также должен быть 64-битным. Всегда выбирайте Thread Safe версию.
Для каждого файла имеется две ссылки:
Выбирайте Zip, поскольку отладочный пакет только для тех, кто действительно знает, зачем он им нужен. Здесь имеется ввиду не отладка PHP-скриптов, а отладка самого интерпретатора PHP.
Настройка PHP в Windows
Настройка выполняется в два этапа:
Подключение PHP к Apache
Для подключения PHP к Apache откройте конфигурационный файл веб-сервера, который расположен по следующему пути: Apache24\conf\httpd.conf (в папке сервера, в подпапке conf, файл httpd.conf).
В этот файл добавьте три строки, две из которых нужно откорректировать:
В первой строке вместо C:/путь/до/PHP напишите точный путь до папки, куда вы распаковали файлы PHP. В третьей строке C:/путь/до/PHP/php8apache2_4.dll также откорректируйте путь, указав расположение PHP папки.
К примеру, я распаковал PHP в папку C:/Server/bin/PHP, тогда мои настройки следующие:
Если папка PHP находится в корне диска C, тогда эти строки должны быть такими:
Чтобы изменения вступили в силу, перезапустите веб-сервер или компьютер.
Настройка PHP
В папке PHP найдите файл php.ini-development и переименуйте его в php.ini – это нужно сделать обязательно, иначе PHP не будет видеть сделанные настройки.
Открываем файл php.ini любым текстовым редактором, ищем строчку
Обратите внимание, что вам нужно скорректировать строку C:\путь\до\PHP\ext\, указав конкретный путь до папки, где размещены файлы PHP.
У PHP (как и у Apache) имеется много расширений. Если вы не знаете, какое расширение для чего нужно, то как минимум два варианта:
Чтобы подключить большую часть расширений, найдите группу строк:
теперь раскомментируйте эту группу строк:
Мы подключили самые востребованные расширения, чтобы работало как можно больше функций PHP.
Если PHP установлен как модуль Apache
Распространённой ошибкой является запуск Apache с правами суперпользователя или любое другое расширение полномочий веб-сервера.
Расширение привилегий веб-сервера до полномочий суперпользователя угрожает работоспособности всей системы, поэтому такие команды, как sudo, chroot и другие способы запуска с правами суперпользователя должны выполняться исключительно теми, кто профессионально разбирается в вопросах безопасности.
User Contributed Notes 4 notes
doc_root already limits apache/php script folder locations.
open_basedir is better used to restrict script access to folders
which do NOT contain scripts. Can be a sub-folder of doc_root as in php doc example doc_root/tmp, but better yet in a separate folder tree, like
user/open_basedir_root/. Harmful scripts could modify other scripts if doc_root (or include_path) and open_basedir overlap.
If apache/php can’t browse scripts in open_basedir, even if malicious scripts uploaded more bad scripts there, they won’t be browse-able (executable).
One should also note that the many shell execute functions are effectively a way to bypass open_basedir limits, and such functions should be disabled if security demands strict folder access control. Harmful scripts can do the unix/windows version of «delete */*/*/*» if allowed to execute native os shell commands via those functions. OS Shell commands could similarly bypass redirect restrictions and upload file restrictions by just brute force copying files into the doc_root tree. It would be nice if they could be disabled as a group or class of functions, but it is still possible to disable them one by one if needed for security.
PS. currently there is a bug whereby the documented setting of open_basedir to docroot/tmp will not work if any include or require statements are done. Right now include will fail if the included php file is not in BOTH the open_basedir tree and the doc_root+include_path trees. Which is the opposite of safe.
This means by any included php file must be in open_basedir, so is vulnerable to harmful scripts and php viruses like Injektor.
There is a better solution than starting every virtual host in a seperate instance, which is wasting ressources.
You can set open_basedir dynamically for every virtual host you have, so every PHP script on a virtual host is jailed to its document root.
Example:
ServerName www.example.com
DocumentRoot /www-home/example.com
[. ]
php_admin_value open_basedir \ «/www-home/example.com/:/usr/lib/php/»
If you set safe_mode on, then the script can only use binaries in given directories (make a special dir only with the binaries your customers may use).
Now no user of a virtual host can read/write/modify the data of another user on your machine.
Как установить веб-сервер 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 вы найдёте на этой странице.
Примеры материалов, которые могут вам пригодиться в первую очередь:
Бесплатные уроки программирования на PHP. Интерпретируемый язык программирования PHP. Уроки для начинающих разработчиков сайтов и веб-страниц.
Установка PHP как модуль сервера Apache. Инструкция по установке Apache 2.4 + PHP 5.6 на Windows. Серверная связка PHP + Apache
Привет, посетитель сайта ZametkiNaPolyah.ru! Продолжаем рубрику Веб-программирование и ее раздел PHP. В данной записи мы установим PHP как модуль сервера Apache на компьютер под управлением Windows 10. Отмечу сразу, что инструкция по установки серверной связки PHP 5.6 + Apache 2.4 подойдет всем пользователям, у которых установлена Windows 7 и выше, к сожалению, на Windows XP и Vista эта инструкция не сработает. Также хочу сказать, что данную запись не стоит рассматривать только как инструкцию по установки PHP + Apache на Windows.
Установка PHP как модуль сервера Apache. Инструкция по установке Apache 2.4 + PHP 5.6 на Windows. Серверная связка PHP + Apache
Поскольку перед установкой серверной связки в виде PHP и Apache мы поговорим о том, как вообще работают серверные технологии и за счет чего мы можем взаимодействовать с посетителями наших сайтов. Поскольку мы собрались устанавливать PHP как модуль сервера Apache, то в этой записи мы в общих чертах разберемся с архитектурой веб-сервера Apache и, собственно, поймем что значит установить PHP как модуль Apache и в чем особенность такой работы этих двух приложения. И лишь в завершении этой записи вы найдете простую и подробную инструкцию по установки вышеописанной связки.
Серверная связка PHP + Apache: как работают серверные технологии
Перед тем, как начать установку сервера Apache 2.4 + PHP5.6 на компьютер под управлением Windows 10, давайте немного поговорим о том, как работают серверные технологии и конкретно наша связка PHP + Apache. Начнем мы немного издалека и дойдем до нашей связки.
Первое и самое главное: любой сайт для конечного пользователя или посетителя в браузере представляет собой HTML страницу, которую создает браузер, анализируя HTML документ и ее структуру. Посетитель сайта видит HTML элементы на странице, которые получаются путем интерпретации HTML тэгов и HTML атрибутов браузером. Сайты в принципе могут быть статическими, а все логика и интерактивность может быть заключена в HTML ссылках, которые будут помогать посетителям передвигаться по сайтам.
Для работы статических сайтов не нужен никакой сервер, ведь HTML документы мы можем просматривать локально, так как браузеры могут спокойно работать с файловой системой компьютера, но такой подход, при котором сайты статические недостаточно гибок и не предоставляет нам интерактивных возможностей взаимодействия с посетителями сайта. Гораздо интереснее, когда на сайте может происходить взаимодействие с пользователем, то есть когда сайт является динамическим.
Для такого сайта нужен целый набор различных технологий, начиная с базы данных, управление которой происходит при помощи СУБД (например, сервер MySQL, библиотека SQLite или PostgreSQL) и заканчивая различными языками программирования, например, язык PHP – является серверным языком и при помощи него реализуются различные серверные возможности. А язык JavaScript – создает интерактивность на стороне клиента.
В данной публикации наибольший интерес для нас представляют серверные технологии и непосредственно связка PHP + Apache. Стоит отметить, что динамические сайты реализуются намного сложнее, чем статические, во-первых, из-за наличия целого стека технологий. Во-вторых, динамические сайты уже подразумевают деление функционала и ролей на клиентские и серверные. То есть в основе динамических сайтов лежит архитектура взаимодействия клиент-сервер.
В данном случае в качестве клиентского приложения выступает браузер, а в качестве серверного приложения выступает связка Apache + PHP (на самом деле эта связка может быть расширена другими приложениями и технологиями). Если смотреть на сеть Интернет глазами веб-мастера или веб-разработчика, то взаимодействие в Интернете происходит по протоколу HTTP (который находится на седьмом уровне сетевой модели OSI), реализует это взаимодействие как раз-таки сервер Apache (мы уже рассматривали установку Apache 2.4 на Windows). Язык PHP в данном случае мы можем рассматривать, как средство, которое позволяет выполнять две базовые вещи:
Общую схему взаимодействия посетителя с динамическим сайтом, находящимся на веб-сервере, вы можете увидеть на рисунке ниже.
Общая схема взаимодействия посетителя с динамическим веб-сайтом
Теперь немного поговорим о взаимодействие по протоколу HTTP и работе динамических сайтов. Отметим, что ни в один браузер в мире не встроен интерпретатор PHP кода, поэтому браузер не может его исполнять, в отличии от кода JavaScript. Весь PHP код выполняется на сервере, а браузер лишь получает результаты его работы. Этот процесс можно описать довольно просто следующим образом:
Простейшая схема взаимодействия веб-клиента с сервером HTTP показана на рисунке ниже.
Простейшая схема взаимодействия веб-клиента с сервером HTTP
Обратим внимание, что процесс взаимодействия между браузером может быть локальным: в этом случае сервер Apache, PHP и другие серверные технологии установлены на одну и ту же машину, что и браузер или клиент. Таким образом можно разработать, настроить и протестировать сайт перед тем, как будет куплено доменное имя сайта и арендован хостинг, то есть перед тем, как он появится в сети Интернет.
Для некоторых пользователей установка связки PHP + Apache может показаться довольно утомительной и нудной, поэтому специально для таких людей были созданы готовые серверные сборки, в качестве примера можно привести локальный сервер AMPPS или сборку Денвер. Они вполне удобны и на 100% удовлетворят потребности новичков в мире веб-разработки, а также потребности 70-80% разработчиков. Для тех, кто хочет понять как работают серверные технологии и детально разобраться с работой веб-серверов рекомендуется ручная сборка веб-сервера, при которой мы можем самостоятельно, в процессе установки, настроить сборку под свои специфичные нужды. В данной же публикации мы будем устанавливать связку Apache 2.4 + PHP 5.6 на Windows и при этом PHP будет работать, как модуль сервера Apache.
Ранее мы уже разобрались с вопросами что такое PHP и что такое Apache, теперь нам стоит немного поговорить о том, что такое модуль сервера Apache и в чем его особенности, так как отдельной публикации пока нет, об этом мы поговорим в следующем разделе данной публикации, а затем составим инструкцию по установки Apache + PHP на Windows.
Что представляет собой модуль сервера Apache в Windows
Когда мы рассматривали процесс установки PHP на Windows без Apache с использованием встроенного веб-сервера, то говорили, что PHP в связки Apache может работать как его модуль, а можно сделать так, чтобы PHP работал как обработчик CGI. В первом случае PHP является частью архитектуры сервера Apache и поток PHP (в случае с Windows) работает параллельно с потоками других модулей сервера Apache.
Чтобы детально разобраться с тем, что собой представляет модуль в Apache и в чем будет заключаться особенность установки PHP как модуль сервера Apache, давайте немного разберемся с архитектурой веб-сервера Apache, для начала отметим, что Apache состоит из нескольких частей:
Рисунок ниже схематично демонстрирует модульную архитектуру сервера Apache.
Модульная архитектура сервера Apache
Итак, мы собрались устанавливать PHP, как модуль сервера Apache, следовательно, в данном случае PHP и Apache можно рассматривать как единое целое, грубо говоря, одно многофункциональное приложение, так как PHP будет как бы встроен в архитектуру Apache, каждый модуль Apache при выполнении своих функций создает поток, а PHP будет лишь одни из потоков сервера Apache.
Но обратите внимание на то, что PHP в данном в случае можно лишь условно назвать встроенным в Apache, естественно, он будет модулем Apache, но их взаимодействие будет происходит при помощи специального программного кода, который является связующим звеном между средой PHP и сервером Apache, этот код в Apache оформлен в виде отдельного модуля.
Особенность установки Apache + PHP на Windows заключается в модуле MPM, который появился тогда, когда была разработана версия Apache для операционных систем семейства Windows. Этот модуль реализует мультипроцессорные модели и управляет взаимодействием ядра сервера с операционной системой и другими модулями. Модуль MPM имеет две модели: Worker и Prefork. Первая модель thread safe, вторая модель non-threaded, а как вы помните мы скачивали PHP версии Thread Safe.
Инструкция по установке PHP 5.6 + Apache 2.4 на Windows 10
Мы детально разобрались с техническими тонкостями, теперь давайте составим небольшую инструкцию по установке Apache 5.6 + Apache 2.4 на Windows, естественно, устанавливать PHP мы будем как модуль сервера Apache. Также заметим, что во многих книгах и на многих сайтах авторы усердно копируют друг друга и говорят: сначала мы должны установить сервер Apache, настроить его, а только потом устанавливать PHP, а только после PHP мы можем устанавливать и конфигурировать сервер MySQL.
Все это чушь, все эти три приложения независимы друг от друга и прекрасно могут работать по отдельности. Другое дело, что мы не сможем заставить работать PHP, как модуль сервера Apache, собственно, без самого Apache, но нам ведь никто не мешает установить и настроить PHP, а затем установить Apache и связать их вместе.
Для установки связки PHP + Apache нам потребуется редактор, хорошо если редактор будет удобным и многофункциональным, мы можем порекомендовать вам выбрать один из четырех редакторов, все они кроссплатформенные, имеют подсветку синтаксиса, очень активное сообщество и множество поклонников по всему миру:
Ранее мы уже рассматривали процесс установки Apache 2.4 на Windows 10, в котором мы разобрались с тем откуда скачать Apache и с тонкостями его установки на Windows. Также мы уже говорили о том, как установить PHP на Windows без Apache: здесь мы разобрались с особенностями версий PHP, выбрали версию, которую необходимо скачать, чтобы эта версия работала в Windows и, собственно, установили PHP.
Теперь давайте установим связку Apache + PHP по инструкции ниже и сделаем так, чтобы PHP работал как модуль Apache:
Папки для серверной связки PHP + Apache