PHP 5 — установка и конфигурация под наши нужды в режиме mod_php для Apache


Оглавление (нажмите, чтобы открыть):

Настройка связки Apache + PHP + MySQL + phpMyAdmin

Данное описание подходит для любой редакции Windows 7/8/8.1.

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

Первым делом скачаем дистрибутив Apache с сайта: http://www.apachelounge.com/download/. В списке дистрибутивов Apache 2.4 binaries VC11, нам нужно скачать «httpd-2.4.7-win64-VC11.zip».

После того как скачали, открываем архив httpd-2.4.7-win64-VC11.zip

Извлекаем из него папку Apache24 в раздел диска C:\

Теперь нам необходимо немного поправить конфиг, прежде чем устанавливать Apache. Открываем файл httpd.conf (находится здесь: C:\Apache24\conf) желательно через удобный редактор, например notepad++. Находим строку (217) ServerName www.example.com:80 и меняем на ServerName localhost:80

Далее нам необходимо установить Apache используя командную строку. Нажимаем Пуск → Выполнить, вводим команду cmd и нажимаем OK. У нас должно открыться окно командной строки

Здесь нам необходимо указать полный путь к файлу httpd.exe, который находится в папке Apache. В нашем случае это C:\Apache24\bin\httpd.exe. Набираем команду C:\Apache24\bin\httpd.exe -k install и жмем Enter.

Если при выполнении программы у вас возникает следующая ошибка: failed to open the winnt service manager perhaps you forgot to log in as administrator, заходим в следующую папку: C:\Users\Здесь_имя_вашего_пользователя\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\System Tools, запускаем командную строку от имени администратора

И повторяем команду установки.

Установка завершена. Откройте директорию bin (полный путь: C:\Apache24\bin\) и запустите файл: ApacheMonitor.exe. В системном трее появится значок Apache, с помощью которого можно быстро запускать/останавливать службу Apache, жмем start (запуск):

Теперь проверим работоспособность. Открываем браузер, и в адресной строке пишем http://localhost/ (можно просто localhost). Если установка выполнилась успешно, должна открыться страница с надписью It works!

Установка PHP (ручная)

Нужен ли нам Apache без PHP? Конечно нет, это нонсенс! Поэтому далее мы рассмотрим ручную (без использования инсталлятора) установку PHP.

Скачиваем PHP (Zip архив) с сайта: http://windows.php.net/download/. Нам нужна версия: VC11 x64 Thread Safe.

Содержимое архива распаковываем в директорию C:\PHP (папку PHP создаём сами). Далее в папке C:\PHP находим два файла php.ini-development и php.ini-production. Эти файлы содержат базовые настройки. Первый файл оптимизирован для разработчиков, второй для рабочих систем. Основная разница в настройках: для разработчиков разрешен вывод на экран ошибок, тогда как для рабочих систем вывод ошибок запрещен из соображений безопасности.

Сделаем кое что, прежде чем продолжить установку PHP. Открываем Панель управления → оформление и персонализация → параметры папок → вкладка Вид, находим строку «Скрывать расширения для зарегистрированных типов файлов», и если там стоит галочка, убираем ее и нажимаем «Применить».

Продолжаем установку. И так, выбираем нужный вам файл (я выбрал php.ini-development). Выбранный файл нужно будет просто немного переименовать. Правый клик по файлу → Переименовать → стираем «-development», оставляя только php.ini

Теперь открываем php.ini, нам необходимо внести несколько изменений (будьте внимательны при внесении изменений, если в начале строки стоит точка с запятой, ее надо будет убрать):

  1. Найти опцию extension_dir (строка 721) и изменить путь к папке ext в соответствии с путем установки PHP. У меня это выглядит так:
    extension_dir = «C:\PHP\ext»
  2. Найти опцию upload_tmp_dir (строка 791). Здесь надо указать путь к временной папке. Я выбрал c:\windows\temp. Всё вместе:
    upload_tmp_dir = «C:\Windows\Temp»
  3. Найти опцию session.save_path (строка 1369). Здесь также требуется указать путь к временной папке:
    session.save_path = «C:\Windows\Temp»
  4. В разделе Dynamic Extensions необходимо раскомментировать несколько строк (убрать точку с запятой в начале), соответствующих модулям PHP, которые могут понадобиться для работы: 866, 873, 874, 876, 886, 895, 900

Сохраняем изменения и закрываем.

Теперь вернемся к настройкам Apache. Нам придется немного отредактировать конфиг Apache. Заходим в папку C:\Apache24\conf и открываем файл httpd.conf.

Переходим в конец файла и в самом низу добавляем следующие строчки:

Путь к папке php указываете тот, который вы выбрали в процессе установки (если вы устанавливали в другую директорию).

В этом же файле находим следующие строки (строки примерно 274-276):

Перед index.html дописываем через пробел index.php. В итоге получается:

Чтобы изменения вступили в силу, перезапускаем службу Apache (значок в трее — Apache monitor). Если служба перезапустится — это хороший знак. Если нет (выскочит ошибка) — ищите ошибки в конфигурационных файлах. Особенно внимательно проверьте все пути.

Чтобы нам убедиться в работоспособности PHP, откройте папку C:\Apache24\htdocs (здесь содержатся файлы веб-сайта по умолчанию). Создайте в этой папке файл index.php со следующим содержанием:

Теперь откройте в браузере http://localhost/ (или просто localhost). Если все прошло нормально, вы увидите похожую страницу:

Если у вас вместо страницы с инфомацией о php открылась страница с надписью «It works!», тогда просто нажмите обновить страницу.

Установка MySQL

Открываем страницу загрузки дистрибутива: http://dev.mysql.com/downloads/installer/5.6.html и скачиваем Windows (x86, 32-bit), MSI Installer 5.6.16 250.8M. После нажатия на кнопку Download вы увидите форму для регистрации, ее можно пропустить нажав на ссылку внизу (» No thanks, just start my download!).

Запускаем установщик, после небольшой загрузки видим следующее окно:

Нажимаем Install MySQL Products, появляется следующее окно, в котором мы принимаем лицензионное соглашение (ставим галочку) и жмем Next >

Следующее окно нам предлагает проверить, есть ли более новая версия MySQL, ставим галочку Skip. (пропустить) и нажимаем Next >

В следующем окне нам предлагают выбрать тип установки, выбираем Custom и жмем Next >:

В следующем окне нам предоставляется возможность выбратьнеобходимые компоненты: убираем галочку с MySQL Connectors, в Application убираем галочку с MySQL Workbench CE 6.0.8 и MySQL Notifier 1.1.5, в MySQL Server 5.6.16 убираем галочки с Development Components и Client C API library (shared) и жмем Next >

Далее нам пишут, что ничего дополнительно нам устанавливать не нужно и мы можем приступить к установке, просто жмем Next >

Следующее окно нам сообщает что именно будет установлено, просто нажимаем Execute

После успешной установки жмем Next >

Вследующем окно нам сообщается о том, что далее мы немного настроим наш сервер, жмем Next >

В первом окне настрокйки, устанавливаем галочку Show Advanced Options, остальное оставляем как есть и жмем Next >

В следующем окне нам предлагается установить пароль администратора (root). Этот пароль лучше не терять! Устанавливаем пароль и жмем Next >

В следующем окне стираем в поле ввода цифры 56, остальное оставляем как есть и жмем Next >

Осталось проверить успешно ли прошла установка. (win 8): Заходим в меню пуск → переходим к приложениям (стрелочка вниз) → находим MySQL5.6 Command Line Client (терминал для работы с MySQL в командной строке) → открываем его. Далее вводим пароль администратора (root). Если пароль правильный, вы попадете в командную строку ( mysql> ). Введите команду: show databases; (точка с запятой на конце обязательна). В результате вы должны увидеть список баз данных (как минимум две — information_schema и mysql). Это означает, что сервер работает правильно. Закрываем командную строку выполнив команду exit.

Добавьте в файл C:\Windows\System32\drivers\etc\hosts строчку: 127.0.0.1 localhost. В этом же файле удалите или закомментируйте (поставить знак # в начале строки) строку ::1 localhost (если она изначально закомментирована, то не надо ничего с ней делать).

Установка и базовая настройка phpMyAdmin

Открываем страницу загрузки http://www.phpmyadmin.net/home_page/downloads.php и выбираем для скачивания архив оканчивающийся на *all-languages.7z или *all-languages.zip (на момент написания статьи последняя версия была phpMyAdmin 4.1.9). Создаем папку phpmyadmin в C:\Apache24\htdocs и извлекаем туда файлы скаченного архива.

Проверим как оно работает. Открываем браузер и переходим по адресу http://localhost/phpmyadmin/. Должно открыться такое окно:

Теперь нам необходимо создать конфигурационный файл для MySQL. Заходим в папку phpmyadmin и создаем там папку config. Открываем в браузере следующий адрес: http://localhost/phpmyadmin/setup/

Теперь, чтобы настроить параметры подключения к MySQL, нажимаем на кнопку «Новый сервер», нам открывается новое окно, в графе «Хост сервера» localhost необходимо заменить на 127.0.0.1:

Сохраняем настройки (жмем Apply) и нас автоматически вернут на предыдущую страницу. Выбираем язык по умолчанию — Русский, сервер по умолчанию — 127.0.0.1, конец строки — Windows. Внизу нажимаем Сохранить и затем Скачать.

PHP 5 — установка и конфигурация под наши нужды в режиме mod_php для Apache

Этот раздел описывает установку PHP c Apache 2.x на Unix системах.

Мы не рекомендуем использовать потоковый MPM в промышленной среде вместе с Apache 2. Вместо этого, используйте prefork MPM, используемый по умолчанию в Apache 2.0 и 2.2. Подробную информацию по этому вопросу вы можете найти в соответствующем разделе FAQ Apache2 и потоковый MPM

Самым авторитетным источником информации по Apache 2.x является » документация Apache. Более подробная информация о настройках при установке может быть найдена там.

Самая последняя версия Apache Http Server может быть получена на » странице загрузки Apache, а адрес соответствующей версии PHP был указан выше. Это краткое руководство описывает лишь базовую установку Apache 2.x и PHP. Для получения более детальной информации прочитайте » документацию Apache. В инструкции ниже опущены номера версий — замените ‘NN’ на номер, соответствующий скачанной вами версии Apache.

На данный момент есть две версии Apache 2.x — 2.4 и 2.2. Хотя для выбора каждой из них существуют отдельные доводы, 2.4 является наиболее свежей и рекомендуемой версией, если вас устраивает такой выбор. Тем не менее, данные инструкции будут работать как для 2.4, так и для 2.2. Обратите внимание, что Apache httpd 2.2 официально больше не поддерживается, поэтому дальнейшая разработка не будет продолжаться, также как и приниматься новые патчи.

Скачайте Apache HTTP server как было указано выше и распакуйте его:

Аналогично, скачайте и распакуйте исходные коды PHP:

Скомпилируйте и установите Apache. Более подробную информацию по сборке Apache смотрите в его документации.

Теперь ваш Apache 2.x.NN доступен как /usr/local/apache2, сконфигурирован с поддержкой подгружаемых модулей и стандартным мульти-процессным модулем (MPM) prefork. Чтобы протестировать правильность установки используйте стандартную процедуру запуска Apache, такую как:

Теперь мы сконфигурируем и соберем PHP. Здесь вы можете настроить установку PHP с помощью различных опций, указывающих, например, какие расширения нужно включить. Просмотрите вывод команды ./configure —help для получения полного списка параметров конфигурации. В нашем примере мы сконфигурируем PHP очень просто — с поддержкой Apache и MySQL.

Если вы собирали Apache из исходников, как было описано выше, то используйте путь до apxs как указано в следующем примере, иначе, корректируйте этот путь соответствующим вашей установке образом. Учтите также, что в некоторых дистрибутивах apxs может иметь имя apxs2.

Если вы решите изменить параметры конфигурации после установки, вам надо будет повторить только три последних шага (configure, make, make install). Вам нужно будет только перезапустить Apache, чтобы новые модули подгрузились и начали работать. Перекомпиляция Apache для этого не требуется.

Заметьте, что если не указано обратное, то ‘make install’ установит так же PEAR, различные инструменты PHP — такие как phpize, версию PHP для командной строки (PHP CLI) и т.д.

Настройка вашего php.ini

Вероятно, вы захотите изменить некоторые настройки в php.ini. Если вы предпочитаете держать файл php.ini в другом месте, используйте параметр —with-config-file-path=/some/path в шаге 5.

Если же вы используетеphp.ini-production, прочитайте его, чтобы знать какие изменения в поведении PHP это повлечет.

Отредактируйте ваш httpd.conf, чтобы Apache загружал модуль PHP. Путь в правой части инструкции LoadModule должен указывать на модуль PHP. Команда make install может добавить эту инструкцию автоматически, но этого может и не произойти, поэтому проверьте, чтобы убедиться.


Теперь следует сконфигурировать Apache, чтобы он передавал файлы с некоторыми расширениями на обработку модулю PHP. В нашем примере сделаем это для .php файлов. Вместо обычного использования директивы Apache AddType, мы хотим избежать интерпретации как PHP потенциально опасных загрузок и файлов наподобие exploit.php.jpg. С помощью данного примера можно указать для интерпретации PHP любые расширения, просто добавив их в конец списка. Продемонстрируем это на расширении .php.

Или, если мы хотим добавить расширения .php, .php2, .php3, .php4, .php5, .php6 и .phtml, это можно записать так:

Чтобы PHP отображал содержимое файлов .phps с подсветкой синтаксиса, нужно внести соответствующую директиву

Можно использовать mod_rewrite для отображения любого .php файла с подсветкой синтаксиса, без нужды его переименования в .phps:

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

Используйте стандартную процедуру запуска Apache, например:

Если вы следовали инструкциям выше, то на данном этапе должны иметь запущенный веб-сервер Apache2 с поддержкой PHP, как модуля SAPI. Конечно, для PHP и Apache доступно гораздо больше параметров конфигурации. Используйте ./configure —help в соответствующей папке с исходными кодами для получения полного списка параметров конфигурации.

Если вы хотите собрать многопоточную версию Apache, то при сборке вам следует указать модуль MPM worker вместо стандартного модуля MPM prefork . Чтобы сделать это, нужно добавить следующий аргумент к ./configure на шаге 3:

Не следует бездумно использовать эту настройку, используйте ее только если вы понимаете все последствия этого решения. Документация Apache по » модулям MPM значительно глубже раскрывает эту тему.

Если вы хотите использовать зависимый контент (content negotiation), прочитайте Apache MultiViews FAQ.

Для сборки многопоточной версии Apache, ваша система должна поддерживать потоки. Это так же подразумевает сборку PHP c экспериментальной поддержкой Zend Thread Safety (ZTS). И, как следствие, не все расширения PHP смогут работать. Рекомендуется установка Apache с модулем MPM по умолчанию — prefork .

User Contributed Notes 18 notes

When I upgrade to apache 2.2, this:

AddType application/x-httpd-php .php5
AddType application/x-httpd-php .php42
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php3
AddType application/x-httpd-php .php
AddType application/x-httpd-php .phtm
AddType application/x-httpd-php .phtml
AddType application/x-httpd-php .asp

. does not worked for me, so I did this:

Another interesting point with Apache 2.2 is following.
Let suppose we installed PHP as module. But for some directory, we need to use PHP as CGI (probably because of custom configuration). This can be done using:

AddType application/x-httpd-php-custom .php
Action application/x-httpd-php-custom /cgi-bin/php-huge

Note type must be different than «application/x-httpd-php» and also you need to deactivate the handler on sertain extention. You can do mixed configuration:

AddType application/x-httpd-php-custom .php
Action application/x-httpd-php-custom /cgi-bin/php-huge

in such case files like *.php5 and so on will be parsed via module, but *.php will go to php-huge executable.

Building php 7.1.3 with mysql 5.7.17 and httpd 2.4.25 on Debian 8, step 5 failed for me. Instead of

during the make process should u receive an error declaring ext/ctype/ctype.lo (or another file) is truncated then you need to ‘make clean’ prior to a healthy ‘make’ and ‘make install.’

looking into your ext/ directory you may find the offensive file to be 1 byte long.

On 64-bit Fedora systems (I’m using Fedora 14), configuring PHP to use the MySQL libraries installed as part of the distribution gives the following error if you follow the default instructions in this manual.

Cannot find libmysqlclient under /usr

Modifying he following invocation of configure as follows:

./configure —with-apxs2=/path/to/apxs —with-libdir=lib64 —with-mysql

Note the addition of —with-libdir=lib64
This points the configure script to look for 64-bit mysqlclient libraries.

I have successfully installed Apache 2.2.11 and PHP 5.2.8 under Red Hat 9.0 on a Pentium 166 with 32 MB of RAM.

While I used RH9, the worst possible case, these notes are probably good for RH-based distributions too (Red Hat Enterprise, Fedora, CentOS. )

If you want to install MySQL, it needs to be installed before PHP because PHP requires some libraries be available.

One think important when picking up a binary distribution of MySQL is to download all four packages: MySQL-server, MySQL-devel, MySQL-client and MySQL-shared. Note: The MySQL was bundled with PHP 4 but is not anymore in PHP 5.

Then you need to install Apache before PHP, because again PHP needs some libraries be available. I installed Apache 2 from source, using the very last version available, which is 2.2.11.

I installed PHP 5.2.8 from source. Here, I had a number of problems, but none which I could not resolve easily, some of them with a little help from different forums I found through Google.

Rembember: When it says you need a package named xyz and you notice there is also one named xyz-devel, grab it.

Most of the packages I got from:
http://legacy.redhat.com/pub/redhat/linux/9/en/os/i386/RedHat/RPMS/
A similar page exists for other versions of Red Hat
and:
http://rpmfind.net/
This site has an updated version of some of the packages. Make sure to use only the one labeled for you version (in my case, Red Hat 9.0) or it will not likely work.

You already have glibc and glibc-common installed, but you need to get glibc-devel and glibc-kernheaders. Make sure to match glibc’s version (rpm -q glibc). Note: When it says kernel-header is a required dependency, that’s glibc-kernheader (not kernel-source). You will also need binutils (no need to match the version), and gcc and cpp (version must match).

You need zlib-devel (zlib is probably already installed, match the version you have).

If you install the GD extension, the actual library is already bundled with PHP 5 (use that one, they have done some changes in there, so don’t upgrade), but you will need to install libpng and libpng-devel (match version, or disable in configure if you don’t want) and libjpeg (no -devel with that one).

You will also need libxml2. Now there were a problem, because PHP requires libxml2 be 2.6 or greater, but Red Hat only supplied 2.5.4-1 for RH9 (if you have a more recent distro, you might be more lucky). After looking for a while, I decided to grab the source code for the most recent distribution at the official website (http://xmlsoft.org/) and compiled.

Hope my post is useful to someone. Please, share your experience when compiling/installing for your particular platform and setup. Remember how hard it’s been for you the very first time. I confess, my very first server installation took me nearly a week and I was glad others helped me.

PHP 5.1.4 INSTALLATION on Solaris 9 (Sparc)

Solaris9 Packages Installed:

Verify required package installation:
root# pkginfo SUNWbtool SUNWsprot SUNWtoo SUNWhea SUNWarc \
SUNWlibm SUNWlibms SUNWdfbh SUNWxglh SUNWcg6h

Uninstall Default Apache Packages:
root# /etc/init.d/apache stop
root# pkginfo |grep Apache
root# pkgrm SUNWaclg SUNWapchd SUNWapchr SUNWapchu

Мастер Йода рекомендует:  JavaScript разработчик (Vue)

Create installation Directory:
root# mkdir /phpdata/

Download Required Packages from Sunfreeware:

Install libiconv-1.8 and gcc3.3.2 packages
root# pkgadd -d ./libiconv-1.8-sol9-sparc-local
root# pkgadd -d ./gcc-3.3.2-sol9-sparc-local

set LD_LIBRARY_PATH, CC and PATH variables
root# LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/sparcv9/:\
/usr/lib:/usr/openwin/lib:/opt/local/lib:/usr/local/ssl/lib:\
/usr/local/apr/lib:/opt/mysql/mysql/lib
root# CC=gcc
root# PATH=$PATH:/usr/ucb:/usr/local/bin/
root# export LD_LIBRARY_PATH CC PATH

Install apr-1.2.2 and aprutil-1.2.2 packages

root# gzcat apr-1.2.2.tar.gz |tar xvf —
root# cd apr-1.2.2
root# ./configure
root# make
root# make install
root# cd ..

root# gzcat aprutil-1.2.2.tar.gz |tar xvf —
root# cd apr-util-1.2.2/
root# ./configure —with-apr=/usr/local/apr/
root# make
root# make install

Install gawk-3.1.4, expat-1.95.5, db-4.2.52.NC,
gdbm-1.8.3, libgcc-3.3 and libxml2-2.6.16 packages
root# cd ..
root# pkgadd -d ./gawk-3.1.4-sol9-sparc-local
root# pkgadd -d ./expat-1.95.5-sol9-sparc-local
root# pkgadd -d ./db-4.2.52.NC-sol9-sparc-local
root# pkgadd -d ./gdbm-1.8.3-sol9-sparc-local
root# pkgadd -d ./libgcc-3.3-sol9-sparc-local
root# pkgadd -d ./libxml2-2.6.16-sol9-sparc-local

Install GNU make package
root# gzcat make-3.81.tar.gz |tar xvf —
root# cd make-3.81
root# ./configure
root# make
root# make install
root# cd ..

Install mysql-standard-5.0.22 package
Search for user mysql
root# grep mysql /etc/passwd
root# grep mysql /etc/group

If not found create user and group mysql
root# groupadd mysql
root# useradd -G mysql mysql
root# pkgadd -d ./mysql-standard-5.0.22-solaris9-sparc.pkg.gz

Install openssl-0.9.7g package
root# gzcat openssl-0.9.7g.tar.gz |tar xvf —
root# cd openssl-0.9.7g
root# ./config shared
root# make
root# make install
root# cd ..

Install Apache2 package
root# gzcat httpd-2.2.0.tar.gz |tar xvf —
root# cd httpd-2.2.0
root# ./configure —enable-so
root# /usr/local/bin/make
root# /usr/local/bin/make install
root# cd ..

Install php-5.1.4 package
root# gzcat php-5.1.4.tar.gz |tar xvf —
root# cd php-5.1.4
root# ./configure —with-apxs2=/usr/local/apache2/bin/apxs\
—with-ldap —with-mysql=/opt/mysql/mysql/
root# /usr/local/bin/make
root# /usr/local/bin/make install
root# cp php.ini-dist /usr/local/lib/php.ini

Edit httpd.conf to load the PHP module
and to parse certain extensions as PHP
root# vi /usr/local/apache2/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php .phtml

Start Apache
root# /usr/local/apache2/bin/apachectl start

Add environmental variables below HTTPD
root# vi /usr/local/apache2/bin/apachectl
LD_LIBRARY_PATH=/usr/local/lib:/usr/local/lib/sparcv9/:
/usr/lib:/usr/openwin/lib:/opt/local/lib:/usr/local/ssl/lib:
/usr/local/apr/lib:/opt/mysql/mysql/lib
PATH=/bin:/sbin:/usr/ccs/bin:/usr/sbin:/usr/openwin/bin:\
/usr/ucb:/usr/local/bin/
export LD_LIBRARY_PATH PATH

Create Apache Startup Script

Hi too had same problem with multiview like when i execute http://huey/admin/test.php it used to compile but when i use http://huey/admin/test it wouldnt recognise it as php file. i worked it out with the addhandler method and AddType in different line and setting multiview for directive

«multiviews Options Indexes FollowSymLinks MultiViews»

the directives u can set it to root directory so now when u type pn test it will search in precendence for test.php, test.html if any .

its working for me with apache2.0.47 and php 4.3.9 on solaris

Настройка PHP5 + Apache 2.2 + MySQL 5.1.41 + phpMyAdmin 3.2.3

Настройка PHP5 + Apache 2.2 + MySQL 5.1.41 + phpMyAdmin 3.2.3
Читать с начала, и медленно!!
И будет вам счастье и рабочий сервер.

Предисловие
Все мы знаем, что для создания простенького сайта, достаточно текстового редактора и некоторых знаний HTML, но как быть если для проекта задуман динамичный, постоянно обновляемый сайт с необходимостью удобного управления всем его содержимым? Очевидно, одного HTML здесь не достаточно. Для создания такого сайта необходимо изучение дополнительных технологий и языков
программирования. Но какие именно языки и технологии могут быть полезны при разработке подобных сайтов? Для начала, HTML – язык разметки, который пока никто не отменял, поэтому его знание должно быть хорошим. Крайне желательно знание JavaScript, CSS, DHTML и XML. Языком разработки скриптов лучше всего выбрать PHP, основным достоинством которого является простота
в изучении. Без базы данных создать действительно серьезный проект практически невозможно, поэтому необходимо научиться работать с MySQL – лучшей базой данных для веб-разработок.
Главным плюсом перечисленных технологий является их наличие практически на любом хостинге,что позволит без затруднений развернуть ваш сайт в сети.
Установкой и настройкой программ необходимых для работы с вышеупомянутыми технологиями, мы и займемся. Устанавливать комплекс программ будем на домашнем компьютере, естественно, под операционной системой Windows XP, хотя некоторые функции, например веб-сервера Apache, рассчитаны только на работу в Unix системах, но для нас это не важно, так как в процессе обучения и
разработки они вряд ли будут задействованы.
Новичок, впервые столкнувшийся с проблемой установки и настройки такого крупного программного комплекса, может по настоящему испугаться кажущейся сложности данного процесса, но на самом деле ничего сложного здесь нет, и данный гид предназначен помочь вам в начале пути в новый и интересный мир веб-программирования.
Начнем по порядку.
Предупреждения относящиеся к редактированию конфигурационных файлов всех устанавливаемых программ:
· Если вы устанавливаете программы в каталоги отличные от указанных в данной статье, не забывайте изменять пути на используемые вами.
· Обязательно проверяйте существование всех устанавливаемых путей.
· Используйте при указании путей прямые косые черты «/», а не обратные «\», как принято в Windows (программы были написаны под Unix и в конфигурационных файлах используются стандарты написания путей именно данной системы).
Инструментарий веб-разработчика
Установка MySQL 5.1.41
Сайт разработчиков: http://www.mysql.com/
Дистрибутив: http://dev.mysql.com/downloads/mysql/5.1.html
Скачайте самораспаковывающийся архив «Windows MSI Installer (x86)» со страницы дистрибутивов и запустите его.
Установка в картинках
Далее будут показаны те диалоговые окна, в которых необходимо делать какой-либо выбор.
Отметьте в данном окне выборочную установку компонентов «Custom».

Здесь вы можете выбрать дополнительные компоненты и сменить каталог установки программы.Видим такое окошко и нажимаем «Install».

Теперь приступим к настройке MySQL сервера.
Выбираем детализированную настройку — «Detailed Configuration».


Оставляем отмеченным пункт «Developer Machine». Мы ведь разработчики – правда?
Выбрав пункт «Multifunctional Database», вы сможете работать как с таблицами типа InnoDB (с
возможностью использования транзакций), так и с высокоскоростной MyISAM (как правило, для веб-
разработок используется именно этот тип таблиц).

Выбор диска и каталога для хранения таблиц типа InnoDB.
В данном диалоговом окне выбирается максимально возможное количество подключений к серверу
MySQL. При выборе «Decision Support (DSS)/OLAP», максимальное количество подключений будет
ограничено двадцатью, чего более чем достаточно при установке сервера на домашнем компьютере
и отсутствии большого количества одновременных подключений.

Отметив «Enable TCP/IP Networking» мы включаем поддержку TCP/IP соединений и выбираем порт,
через который они будут осуществляться. Стандартным для сервера MySQL является порт 3306.
Отметив «Enable Strict Mode», мы задаем режим строгого соответствия стандарту SQL (данный
параметр рекомендуется оставлять включенным).
Обратите внимание на выставление настроек данного окна. Отметив «Manual Selected Default
Character Set / Collation» и выбрав из ниспадающего списка «cp1251» определяем, что изначально для
таблиц будет использоваться кодировка Cyrillic Windows (cp1251), что означает корректную работу с
русским языком в данной кодировке.

Если отметить «Install As Windows Service», сервер будет запускаться в виде сервиса, что является
рекомендуемым способом запуска. Ниже, в ниспадающем списке, задается имя сервиса. Далее,
уберите галочку рядом с «Launch the MySQL Server automatically», мы будем запускать сервер
вручную. Так же поставьте галочку рядом с «Include Bin Directory in Windows PATH» — это позволит
установить видимость каталога «bin», для командной строки.
Установите пароль главного пользователя — «root». Советуем сделать это. Поставьте хотя бы какой-
нибудь простенький пароль, только не оставляйте поле пустым, это убережет вас от возможных
неприятностей в дальнейшем.

apache — запуск двух версий PHP на одном сервере

У меня есть два проекта на локальном сервере, один проект работает на PHP5.6, а другой — на PHP7.0. Теперь можно ли будет включить эти две версии на основе проектов? Я уже пробовал добавлять AddHandler application/x-httpd-php7 .php в одном из проектов htaccess, но не работает. В настоящее время на сервере уже установлены PHP7.0 и PHP5.6-fpm. Ниже скриншот phpinfo.

Решение

Так что после поиска в гугле на весь день. Мне удалось запустить два моих проекта в FastCgi на разных версиях PHP. Спасибо ребятам из этого Форум . Я удалил все, включая Apache и начать все заново. Ниже приведены шаги, которые я использовал для включения двух версий PHP на моем локальном сервере. Кстати, мой компьютер работает на Linux Mint 18.

  1. Предполагая, что вы уже установили Apache, создали виртуальный хост для двух проектов и добавили необходимые php PPA. Давайте назовем проекты site56.local для php5.6 и site70.local для php7.0. Установите php5.6-fpm и php7.0-fpm, запустив.

sudo apt-get установить php7.0-fpm

  1. Создайте два файла в / usr / lib / cgi-bin / (честно говоря, я не знаю, нужен ли этот шаг по-прежнему) и сохраните.

sudo nano / usr / lib / cgi-bin / php56-fcgi

sudo nano / usr / lib / cgi-bin / php70-fcgi

Откройте файл php56 conf «/etc/apache2/conf-available/php5.6-fpm.conf», добавьте этот конфиг и сохраните.

AddHandler php56-fcgi .php
Action php56-fcgi /php56-fcgi
Alias /php56-fcgi /usr/lib/cgi-bin/php56-fcgi -socket /var/run/php/php5.6-fpm.sock -pass-header Authorization
Action php70-fcgi /php70-fcgi
Alias /php70-fcgi /usr/lib/cgi-bin/php70-fcgi -socket /var/run/php/php7.0-fpm.sock -pass-header Authorization

Require all granted

Теперь включите новую конфигурацию apache.

  1. Если вы установили php5.6 и php5.7, убедитесь, что вы отключили эти два и перезапустите apache.

sudo systemctl перезапустить apache2

  1. Создайте файл .htacces в проекте, который должен работать на php7.0, и добавьте этот обработчик.
  1. Теперь создайте файл phpinfo для двух проектов, и если вы видите что-то подобное, то поздравляю!

PS: убедитесь, что вы включили htaccess в вашем apache2.conf или httpd.conf

Другие решения

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

# ls -la / etc / apache2 / conf-enabled | grep php

# ls -la / etc / apache2 / mods-enabled | grep php

Настройте другую версию PHP-FPM для конкретного сайта:

Добавьте следующую строку в существующий файл VirtualHost.

Это не работает для Debian 9 Stretch. Мне понадобилось время, чтобы понять, что делать, но в конце концов я нашел решение, которое кажется еще проще:

Если вы установили php5.6 и php5.7, убедитесь, что вы отключили эти два и перезапустите apache.

На данный момент все ваши сайты должны работать на PHP 5.6.

Для сайтов, которым нужен php 7, добавьте эту строку в vhost:

Это должно сделать свое дело ��

Я попытался реализовать решение Makubex, и оно сработало. У меня была только одна проблема с недавно установленной LAMP, и это было то, что fastcgi не был включен.
Я просто снова установил php с помощью следующего скрипта и впоследствии включил fastcgi.

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

Добавив следующую строку

в конфигурации Apache vhost вы можете изменить версию php внутри каталога php70project в вашем корневом каталоге vhost / var / www на версию 7, работающую от имени fastcgi.

Следующий подход для использования с сокетом Unix

не работает, как задумано.
К сожалению, я не смог найти правильный код, чтобы это работало, но на этой странице нет примера использования сокетов Unix с подпапками. https://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html это может быть просто невозможно.

Это можно сделать, отключив и включив новую версию PHP-

  • переключиться на старую версию —
    a2dismod php7.0
    перезапуск службы apache2
  • перейти на более новую версию
    a2enmod php7.0
    перезапуск службы apache2

Как установить веб-сервер Apache c 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.

Для работы всех компонентов веб-сервера необходим файл «Visual C++ Redistributable for Visual Studio 2015-2020» — это официальный файл от Microsoft. Чтобы его скачать перейдите по ссылке. После скачивания, запустите этот файл и выполните установку.

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

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

Перейдите на сайт apachelounge.com/download и скачайте .zip архив с веб-сервером:

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

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

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

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

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


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

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

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

И нажмите Enter.

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

Это означает, что веб-сервер работает. Чтобы увидеть там файлы, добавьте их в каталог c:\Server\data\htdocs\ — это главная папка для данных сервера, где будут размещаться все сайты.

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

PHP 7 скачайте со страницы 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 7

Настройка 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-архив.

На странице скачивания нам предлагают зарегистрироваться или войти в существующую учётную запись — но это делать необязательно. Достаточно нажать на ссылку «No thanks, just start my download».

В каталог 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 5 — установка и конфигурация под наши нужды в режиме mod_php для Apache

Теперь мы знаем, как установить Apache и php. Теперь наша задача состоит в том, чтобы подружить эти две вещи. Займемся совестной настройкой Apache и PHP. Как и в предыдущих заметках, я постараюсь как можно подробней описать последовательность действий по настройке. Основные моменты будут показаны на скриншотах.

Перейдем в папку, в которую мы устанавливали Apache. Если вы последовали моему совету, в посте об установке Apache, то она у вас должна быть:

C:/Program Files/Apache Software Foundation/Apache2.2/conf

Открываем файл httpd.txt:

В отличие от синтаксиса конфигурационного файла php (далее для краткости буду называть конфиг), описанного в этой заметке, в конфиге Apache для комментирования используется символ “#” (решетка). Т.е. все строки начинающиеся с этого символа “не активны”. Для разделения значения переменной и ее параметра используется пробел. Например:

ServerRoot “C:/Program Files/Apache Software Foundation/Apache2.2”

ServerRoot – имя переменной

Мастер Йода рекомендует:  Квантовый компьютер теория и первая программа

“C:/Program Files/Apache Software Foundation/Apache2.2” – значение переменной.

Настройка Apache для работы с PHP.

PHP может быть установлен как модуль Apache и как CGI-приложение. Мы рассмотрим настройку PHP как модуль Apache.

В конфигурационном файле Apache найдите секцию “Dynamic Shared Object”:

Раскомментируйте выделенную строку c mod_rewrite.so. И добавьте саму нижнюю строчку. В этой строчке указан, путь к файлу, который нужен Apache, чтобы взаимодействовать с PHP. Если вы установили PHP в папку, отличную от той,которую я вам советовал (C:/php5), то пропишите здесь свой путь к файлу php5apache2_2.dll.

Строчкой ниже добавьте:

Этим мы даем знать веб-серверу, где находиться конфигурационный файл PHP.

Следующий шаг – назначение обработчика для типов файлов, в которые вы планируете добавлять PHP код. Строчкой ниже добавляет следующий текст:

AddHandler application/x-httpd-php .php

Этот текст означает, что для файлов с расшерением .php назначается обработчикapplication/x-httpd-php.

В итоге у вас должно получиться следующее ( не полный скрин, сверху еще модули):

Также нам нужно настроить одну полезную опцию:

#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#

DirectoryIndex index.html index.htm index.shtml index.php

Здесь задаются файлы, которые будут автоматически загружаться при обращении к каталогу. Например, если вы напишите в строке браузера http://localhost/, браузер будет искать файлы index.html index.htm index.shtml index.php, порядок слева направа, если найдет какой-то файл по покажет, если не найдет – то покажет список файлов в директории.

Теперь займемся правами доступа. Это базовые настройки для всех директорий:

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the “default” to be a very restrictive set of
# features.
#

Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all

Options – здесь указываеются через пробел настройки:

  • Includes – разрешение использовать SSI (server-side include).
  • Indexes – использование индексов в директории. Т.е. есть файл index.php и мы запрашиваем в бразере директорию, то вызывается этот файл. Например, http://localhost/directory/ – вызоветься файл http://localhost/directory/index.php.
  • FollowSymLinks – разрешает символические ссылки (используется в *nix системах).

AllowOverride – управляет возможностью переписывания настроек для конкретной директории и вложенных в нее директорий с помощью .htaccess файлов. Значение Allразрешает перекрывать базовые настройки сервера в любой директории.

Allow from all – разрешает доступ из брузера ко всем вложенным директориям ваших сайтов.


У некоторых людей возникают ошибки в процессе установки, связанные с тем, что сервер не может по доменному имени узнать IP адрес – “Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName“. Эту ошибку можно посмотреть в логах ошибок Apache (logs/error.txt). Решается заменой localhost на ваш IP адрес:

#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn’t have a registered DNS name, enter its IP address here.
# В строчке ниже замените locahost на тот IP адресс, который написан в логах Apache
ServerName localhost:80

Чтобы изменения вступили в силу, нам необходимо перезагрузить Apache.

Устанавливаем на Windows Apache, MySQL и PHP — Нехитрый домашний веб–сервер

Полезно запустить свой локальный веб-сервер хотя бы из любопытства. Понять устройство веба, сделать простенький сайт, втянуться и стать профессиональным разработчиком — проще, чем кажется. Совсем просто одним кликом установить готовый пакет WAMP (Windows: Apache HTTPD, MySQL, PHP), а ещё лучше — разобраться самому.

А чтобы лучше разобраться в веб-серверах давайте вместе установим, самостоятельно настроим и обновим все три компонента: Apache HTTPD 2.4, MySQL 8.0 и PHP 7.3. А заодно разберемся и с phpMyAdmin 4.8.

Если говорить совсем доступно, то заурядному веб-серверу нужны только три вещи: программа для ответа на запросы браузера, в нашем случае это Apache HTTPD, программа для управления базами данных, мы рассмотрим MySQL, и библиотеки для обработки кода на каком-то языке программирования, я поведу речь о PHP. Опционально, но совсем не обязательно, подобрать софт для ручных манипуляций с базами данных. Провайдеры дешевого интернет–хостинга чаще всего дают доступ к phpMyAdmin, а поэтому его используем и мы. Все эти программы совершенно бесплатны, а их код — открыт.

Конечно, базами данных можно управлять иначе, например, через PostgreSQL или SQLite, иначе можно отвечать и на запросы, допустим, через nginx или Microsoft IIS, да и языки можно использовать совершенно другие, скажем, Ruby или Python. Но к 2020 году, вот уже более десяти лет, связка Apache-MySQL-PHP всё ещё остается самой популярной.

Пройдем по чётким пунктам с краткими пояснениями для более глубокого понимания. Если вас интересует только результат — игнорируйте пояснения.

1. Подготовьтесь к установке сервера

1.1. Создайте папку web на диске D. Внутри нее создайте 5 подпапок: apache, php, tmp, www и log.

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

1.2. Установите текстовый редактор кода. Хорошие варианты: Visual Studio Code, Brackets, Atom, Sublime Text и Notepad++.

Редактор не требуется, но с ним удобнее работать: как минимум, редактор нумерует строки и автоматически подсвечивает фрагменты кода разными цветами. Для таких редакторов как VS Code и Atom (и отдельный для Sublime) существуют пакетные менеджеры. Установив дополнительные пакеты, вы заставите редактор «подсвечивать» код ещё большего числа языков, а также научите автоматически указывать ошибки, дополнять выражения и делать многое другое. Но в конце–концов можно использовать и встроенный «Блокнот» Windows.

1.3. В каталоге D:\web\www создайте файл index.html с текстом Hello world и файл index.php с текстом .

HTML–файл необходим для проверки работы веб-сервера Apache HTTPD, который в среде разработчиков чаще называют просто Apache или «апач», хотя это и не совсем верно, ведь так называется группа проектов и стоящая за ними организация Apache Software Foundation, а не одна программа, но это простительная ошибка. Если Apache работает, то в браузере в ответ на обращение к серверу появятся слова Hello world. А вот PHP–файл необходим для проверки работы PHP, о котором ниже. Если PHP работает, то в браузере в ответ на обращение к серверу появятся сведения о конфигурации PHP.

2. Установите и настройте Apache HTTPD

2.1. Загрузите архив с последней версией Apache HTTPD для 64–разрядной Windows: httpd-2.4.38-win64-VC15.zip. На всякий случай, проверьте на официальном сайте Apache Lounge нет ли версии новее: apachelounge.com/download.

Официальная сборка Apache под Windows не выпускается, сборки готовят отдельные организации, самой активной из которых является Apache Lounge. Сам Apache работает по HTTP и в Windows трудится как фоновый процесс, а в Linux — как демон (англ. daemon), откуда и название HTTPD. Существует Apache и под 32-битные версии Windows, для них необходима версия Win32, а не Win64. Указанные в имени файла VC15, VC14 и VC11 говорят о версии Visual Studio, которой скомпилирован Apache. Выберете самую последнюю версию и установите свежие вспомогательные файлы Visual Studio с официального сайта Microsoft: VC_redist.x64.exe.

2.2. Распакуйте архив и перенесите содержимое папки Apache24 в папку D:\web\apache.

Важно ничего не перепутать и перенести не все содержимое архива, а лишь содержимое подпапки с именем Apache24. В архиве могут быть файлы readme и прочая информация, которая не нужна для работы сервера.

2.3. Откройте файл D:\web\apache\conf\httpd.conf. Поиском по файлу найдите и измените значение SRVROOT на D:/web/apache . Найдите и измените значения DocumentRoot и Directory на D:/web/www .

У Apache несколько файлов с настройками, все они находятся в папке conf (от слова configuration, «конфигурация» в переводе с английского). Основные настройки задаются в файле httpd.conf. Параметр ServerRoot задает корневую папку самой программы Apache, а DocumentRoot и Directory задают корневую папку хоста, то есть ту папку, в которой хранятся файлы сайта. Номера строк с параметрами могут меняться в новых версиях Apache, поэтому я их не привожу, поищите параметры по документам. Чтобы открыть окошко поиска в вашем текстовом редакторе, нажмите Ctrl + F.

2.4. В том же файле httpd.conf найдите, раскомментируйте и измените значение ServerName на localhost:80 .

Параметр ServerName задаёт доменное имя, по которому хост (иначе говоря, сайт) будет откликаться. Так повелось, что домен внутри компьютера называют localhost и этот домен соответствует IP–адресу 127.0.0.1. Для обращения к сайту можно использовать как доменное имя, так и IP–адрес. Порт под номером 80 используется в вебе для протокола HTTP без шифрования. Комментарии в файле конфигурации Apache предваряются октоторпом (символом решетки), сервер будет игнорировать такие строки.

2.5. В том же файле httpd.conf найдите и измените значение параметра ErrorLog на «D:/web/log/apache-error.log» , а также значение CustomLog на «D:/web/log/apache-access.log» common. Сохраните файл httpd.conf с перезаписью.

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

2.6. Установите Apache через командную строку. Откройте командную строку (или выполните команду cmd в PowerShell) от имени администратора и выполните команду D:\web\apache\bin\httpd.exe -k install .

Сервер установится тут же, прямо в режиме командной строки. Если вся подготовка прошла без ошибок — Apache установится, но ещё не запустится. Если захотите удалить Apache, то выполните в командной строке команду D:\web\apache\bin\httpd.exe -k uninstall .

2.7. Запустите «Диспетчер задач» Windows, перейдите на вкладку «Службы». Найдите Apache2.4 в списке служб, вызовите контекстное меню: так вы сможете запустить, остановить или перезапустить сервер. Запустите сервер.

В файлах сервера Apache для Windows также есть программа Apache Monitor, графический интерфейс, смысл которого ровно такой же: запускать, останавливать и перезапускать службу Apache2.4. Но в последней версии Windows 10 сильно проще попасть в список служб, поэтому смысла пользоваться Apache Monitor больше нет.

2.8. Откройте браузер и наберите адрес http://localhost/ или http://127.0.0.1/ — вы должны увидеть надпись Hello world.

Браузер обратится с запросом по 80 порту к тому же компьютеру, на который он установлен, и будет ждать ответа. Если установка Apache прошла без ошибок, но в ответе нет надписи Hello world — проверьте есть ли в каталоге D:/web/www файл index.html и еще раз пройдитесь по всем пунктам. Если все прошло успешно и в ответ вы получили файл index.html, то поздравляю, вы уже можете дополнять его кодом на HTML, CSS и JavaScript и обращаться к файлам по имени хоста.

2.0. Обновить Apache легко. Переименуйте папку D:\web\apache в apache_old, распакуйте новую версию Apache в D:\web\apache, перенесите httpd.conf из папки apache_old в папку apache. Если все работает — удалите apache_old.

3. Добавьте в Apache виртуальные хосты

3.1. Откройте файл C:\Windows\System32\drivers\etc\hosts от имени администратора. Добавьте в него строки 127.0.0.1 host1.localhost и 127.0.0.1 host2.localhost . Сохраните файл hosts.

Если текстовый редактор не может работать от имени администратора в защищенной папке Windows, то файл host можно скопировать в ничем не защищенную папку. Например, на Рабочий стол, где его можно отредактировать, сохранить, переместить обратно и подтвердить операцию с административными привилегиями, когда Windows их запросит. Редактор Visual Studio Code может запрашивать привилегии прямо во время сохранения защищенных файлов.

3.2. Создайте папки D:\web\www\host1.localhost и D:\web\www\host2.localhost для виртуальных хостов. Внутри каждой папки создайте по файлу index.html с текстом host1 и host2 соответственно, а также по файлу index.php с текстом .

HTML–файлы необходимы для проверки работы новых хостов Apache. Если хост работает, то в ответ на обращение к хосту в браузере появится соответствующий текст.

3.3. Создайте папки D:\web\log\host1.localhost и D:\web\log\host2.localhost для журналов ошибок виртуального хоста.

3.4. Откройте файл D:\web\apache\conf\httpd.conf. Раскомментируйте строку Include conf/extra/httpd-vhosts.conf . Сохраните файл httpd.conf.

Когда Apache увидит, что у него есть доступ к httpd-vhosts.conf, то он перестанет принимать во внимание указанные ранее параметры DocumentRoot, ServerName, ErrorLog и CustomLog в файле httpd.conf. Все эти параметры будут взяты из файла конфигурации виртуальных хостов, а самый первый указанный хост будет считаться за localhost.

3.5. Откройте файл D:\web\apache\conf\extra\httpd-vhosts.conf. Опишите виртуальные хосты в следующей нотации, после чего перезапустите Apache:

ServerAdmin webmaster@host1.localhost
DocumentRoot «D:/web/www/host1.localhost»
ServerName host1.localhost
ServerAlias www.host1.localhost
ErrorLog «D:/web/log/host1.localhost/error.log»
CustomLog «D:/web/log/host1.localhost/access.log» common

ServerAdmin webmaster@host2.localhost
DocumentRoot «D:/web/www/host2.localhost»
ServerName host2.localhost
ServerAlias www.host2.localhost
ErrorLog «D:/web/log/host2.localhost/error.log»
CustomLog «D:/web/log/host2.localhost/access.log» common

3.6. Откройте браузер и перейдите по адресам http://host1.localhost/ и http://host2.localhost/ — вы должны увидеть надписи host1 и host2 соответственно.

Если хочется поработать с двумя и более проектами на одном компьютере, то под каждый из них легко создать отдельные виртуальные хосты. Еще один хост легко создать, пройдя по инструкции сначала: создать папку хоста в D:\web\www, папку журналов ошибок в D:\web\log, строку с именем хоста в файле hosts и блок VirtualHost в файле httpd-vhosts.conf.

3.0. Сохранить виртуальные хосты при обновлении Apache также легко. Просто не забудьте перенести еще и D:\web\apache_old\conf\extra\httpd-vhosts.conf в новую папку apache.

4. Установите и настройте PHP

4.1. Загрузите архив с последней версией PHP для 64–разрядной Windows: php-7.3.2-Win32-VC15-x64.zip. На всякий случай, проверьте на официальном сайте PHP нет ли версии новее: https://windows.php.net/download/.

Обратите внимание, что вам нужна версия Thread Safe, то есть работающая в нескольких потоках, и она должна точно соответствовать версии Visual Studio, с помощью которой был скомпилирован Apache, например — VC15. Разрядность тоже должна быть как у Apache, 64-битные версии обозначаются x64, а 32-битные — x86.

4.2. Распакуйте архив и перенесите все его содержимое в папку D:\web\php.

4.3. Откройте файл D:\web\apache\conf\httpd.conf. Найдите секцию файла со множеством строк LoadModule и в самый ее конец добавьте две строки, первая — LoadModule php7_module «D:/web/php/php7apache2_4.dll» , и вторая — AddHandler application/x-httpd-php .php .

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

4.4. В том же файле httpd.conf сразу после секции LoadModule добавьте строку PHPIniDir «D:/web/php» .

Директивой PHPIniDir задается адрес файла php.ini. Этот файл содержит множество важных настроек самого PHP: допустимые размеры файлов для обработки, ограничения времени работы скриптов, параметры пользовательских сессий и многое другое.

4.5. В том же файле httpd.conf найдите и измените значение DirectoryIndex на index.php index.html . Сохраните файл httpd.conf с перезаписью.

4.6. Перезапустите Apache, откройте браузер и перейдите по адресу http://localhost/ или http://127.0.0.1/ — вы должны увидеть сведения о конфигурации PHP и Apache.

Это значит, что вы все сделали правильно.

4.7. Откройте файл D:\web\php\php.ini-development и сохраните его под именем D:\web\php\php.ini.

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

4.8. В файле D:\web\php\php.ini найдите, раскомментируйте и отредактируйте следующие параметры: параметр extension_dir = «D:/web/php/ext» , параметр sys_temp_dir = «D:/web/tmp» , параметр extension=mysqli , параметр extension=mbstring , параметр date.timezone = Europe/Moscow (укажите свой часовой пояс в соответствии с документацией php.net/manual/ru/timezones.php). Сохраните php.ini и перезапустите Apache.

В то время как PHP работает как расширение Apache, у самого PHP также есть множество важных и полезных расширений в виде библиотек, многие из которых идут в комплекте с PHP; прежде чем подключать эти расширения необходимо указать их адрес в параметре extension_dir. По ходу работы большинства популярных скриптов создаются временные файлы, необходимо указать папку для этих файлов в параметре sys_temp_dir. Одно из самых востребованных расширений — mysqli, стандартная библиотека для PHP, которая позволяет подключаться к базам данных под управлением MySQL. При работе с базами нередко нужно разбивать или собирать строки из нескольких мегабайт, для чего будет полезна библиотека mbstring. Также не стоит забывать про свой часовой пояс — он указывается вручную. С этим минимальным набором вы можете выполнять скрипты на PHP, хотя локальной базы данных у вас ещё нет.

4.0. Обновить PHP легко. Переименуйте папку D:\web\php в php_old, распакуйте новую версию PHP в D:\web\php, перенесите php.ini из папки php_old в папку php. Если все работает — удалите php_old.

5. Установите и настройте MySQL

5.1. Загрузите последнюю версию MySQL Installer для Windows: mysql-installer-community-8.0.15.0.msi. На всякий случай, проверьте на официальном сайте MySQL нет ли версии новее: dev.mysql.com/downloads/windows/installer/.

Обратите внимание на то, что это только установщик, и он собран для 32–битных Windows. Уже в ходе установки вы выберете какая версия MySQL вам нужна: для 64– или 32–битных систем.

5.2. Установите MySQL Installer. Программа установится без лишних диалогов и сразу запустится с предложением принять лицензионное соглашение и установить уже сам MySQL. Примите лицензионное соглашение.

Установщик пригодится в будущем для обновления MySQL — сам MySQL обновляться не умеет. Если установщик мешает, то его можно удалить и установить снова, когда появится желание обновить MySQL. Программа без труда определит установленную версию MySQL и предложит ее обновить. Новые минорные версии MySQL выходят достаточно часто, не лишним будет периодически заглядывать в установщик. Правда, при выходе мажорного обновления могут потребоваться полное удаление и повторная установка как самой MySQL, так и MySQL Installer.

5.3. Выберете тип Custom (англ. Индивидуальный) на этапе Choosing a Setup Type (англ. Выбор типа установки) и нажмите Next.

Остальные типы установки включают большое количество программ, которые могут и не пригодиться. В любой момент можно будет запустить установку повторно и добавить английскую документацию, примеры, командную строку MySQL, фирменный визуальный редактор, универсальные драйверы ODBC и прочее.

5.4. Выберете MySQL 8.0.15 – X64 из древовидного списка MySQL Servers в поле Available Products (англ. Предлагаемые продукты), нажатием стрелки перенесите этот пункт в поле Products/Features to be Installed (англ. Продукты для установки), нажмите Next, подтвердите установку редистрибутива Visual Studio нажатием Execute, нажмите Next, снова нажмите Execute для установки сервера и переходите к конфигурации нажав Next ещё дважды.


Затянутая процедура установки нужна только чтобы исключить неоднозначности и сто раз перепроверить каждый компонент, ведь сервер баз данных может оказаться самым критическим звеном инфраструктуры.

5.5. Выберете Standalone MySQL Server (англ. Обособленный сервер MySQL) на первом шаге диалога о конфигурации установки.

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

5.6. Не меняйте настройки по умолчанию на втором шаге и нажмите Next.

Если у вас будет небольшая база данных, то лучше оставить Development Computer (англ. Компьютер для разработки) в поле Config Type (англ. Тип конфигурации). Если же база будет большой и потребует много оперативной памяти — взгляните на другие варианты. В форме Connectivity (англ. Соединение) всё же лучше ничего не менять.

5.7. Выберете Use Legacy Authentication Method (англ. Использовать устаревший метод проверки подлинности) на третьем шаге и нажмите Next.

Новый метод проверки подлинности логина и пароля доступа к серверу MySQL намного надежнее, но на 2020 год мало какие движки сайтов его поддерживают.

5.8. Придумайте пароль root–пользователя сервера на четвертом шаге, проще всего использовать такой же пароль — root, и нажмите Next.

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

Мастер Йода рекомендует:  164 крутых опенсорс проекта для новичков

5.9. Снимите галочку Start the MySQL Server at System Startup (англ. Запускать сервер MySQL при запуске системы) на пятом шаге, и нажмите Next.

Галочку имеет смысл снять, если вам не нужно чтобы MySQL со всеми базами висел в оперативной памяти с самого запуска Windows. Если памяти не жалко, и вы не будете забывать остановить службу MySQL80, когда она вам не нужна, — автозагрузку можно и оставить.

5.10. Нажмите Execute. MySQL сервер будет установлен и запущен. Нажмите Finish чтобы выйти из программы установки MySQL — вы вернетесь в MySQL Installer, нажмите Next и Finish уже в нем.

Запустите «Диспетчер задач» Windows и увидите mysqld.exe в фоновых процессах (d расшифровывается как daemon, англ. демон, аналог Windows–процессов в системах Linux). Откройте вкладку «Службы» и увидите службу по имени MySQL80, которую вы можете останавливать и запускать по правому клику мыши. Поздравляю, вы установили СУБД MySQL и настало самое время к ней подключиться.

5.0. Обновить MySQL ещё легче. Установите или запустите уже установленный MySQL Installer и проверьте в нём обновления. А если понадобится найти сами файлы баз данных под управлением MySQL, например, для переноса на новую мажорную версию, — вы их найдете по пути C:\ProgramData\MySQL\MySQL Server 8.0\Data.

6. Установите и настройте phpMyAdmin

6.1. Загрузите архив с последней версией phpMyAdmin: phpMyAdmin-4.8.5-all-languages.zip. На всякий случай, проверьте на официальном сайте phpMyAdmin нет ли версии новее: phpmyadmin.net/downloads/.

Обратите внимание на то, что phpMyAdmin (или просто PMA) работает на чистом PHP, это не программа для Windows. Для работы PMA должен быть запущен Apache с модулем PHP.

6.2. Распакуйте содержимое phpMyAdmin-4.8.5-all-languages (папка в архиве может быть вложена) в папку D:\web\www\pma.localhost, создайте отдельный виртуальный хост pma.localhost и не забудьте перезапустить Apache.

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

6.3. Откройте браузер и наберите адрес http://pma.localhost/ — вы должны увидеть окно phpMyAdmin для подключения к серверу MySQL. Введите логин root и пароль root — вы увидите графическое представление своих баз данных.

6.4. Опционально: в файле D:\web\www\pma.localhost\config.sample.inc.php найдите параметр $cfg[‘blowfish_secret’] = » , поставьте в одиночные кавычки строку из 32 произвольных символов, на основе которых будут сгенерированы куки–файлы и сохраните файл под именем D:\web\www\pma.localhost\config.inc.php.

Чтобы получить 32 символа на реальном сервере — можно упасть лицом на клавиатуру, а на локальной машине достаточно трижды набрать цифры от 0 до 9 и добавить 01: 01234567890123456789012345678901.

Установка и настройка Apache / PHP / MySQL в Ubuntu

Вы только что установили последнюю версию Ubuntu 13.04, и хотите установить дополнительное программное обеспечение для изучения веб-программирования и запуска фреймворков, например, Symfony 2, yii, zend и т.д.? Тогда вам к нам. Расмотрим всего лишь 10 шагов для этого. Мы сначала рассмотрим установку веб-сервера, потом Symfony.

Но сначала несколько деталей:

  • Эта статья представляет собой краткое руководство, которое обобщает все шаги, необходимые для запуска вашого сервера с последующей установкой Symfony 2.
  • Полагаю, вы хотите создать сайт, который будет доступен по http://symfony URL и содержание сайта будет помещен в каталог /Главная/MyName/WWW/symfony/. Вы всегда можете изменить это.

1. Установим Apache2. Установим MySQL3. Установим РНР 54. Установим PHPMyAdmin Во время установки может возникнуть два вопроса: 1) Как PhpMyAdmin перенастроить для работы с вашим сервером? Выберите apache2 2) Необходимо настроить базу данных с PhpMyAdmin DBCONFIG? Выберите Нет

5. Устанавливаем необходимые Apache / полезные модули для Symfony 2

Первая mod_rewrite, что позволит использование перезаписи URL в .htaccess:

6. Установка полезных модулей PHP 7. Настройка PHP

Изменяем PHP параметры, редактируя следующие строки в / etc/php5/apache2/php.ini:

Затем нужно настроить вновь модуля:

APC

Редактируем / etc/php5/conf.d/20-apc.ini файл и добавляем следующие строки:

XDebug

Создайте файл / etc/php5/conf.d/20-xdebug.ini:

8. Настройка локального сайта

8.1 хост-файл

Добавьте строку: 8.2 Virtual Host

Он создает новый VirtualHost для нашего сайта:

В редакторе вставьте эту конфигурацию заменив /Главная/MyName /WWW/Symfony/Web/ каталог, где вы хотите разместить свой сайт: Активизирует VirtualHost, что мы только что создали: Каталог, в котором Вы разместили Symfony готов: Остается только перезапустить Apache: 9. Устанавливаем Composer

Сначала установите curl модуль, что позволит нам легко установить Composer:

настройка Apache 2 + PHP5

для хостинга клиентских сайтов

Постановка задачи: Заказчик арендует (покупает) выделенный сервер, помещает его в ЦОДе провайдера и хочет разместить на нём несколько своих сайтов.

Предположим, что используя КВМ — Вы уже установили linux (в данном случае ставится Debian Squeeze), а также ssh и ftp и базу данных MySQL. В этой статье мы установим:

  • Apache 2 — веб-сервер;
  • PHP 5 — язык программирования, используемый для создания веб-приложений.

Примечание: Обязательно обновите свой source лист и пакеты, уже установленные в системе:

1. Установка сервера Apache2 и интерпретатора PHP5

Устанавливаем веб сервер Apache2 и интерпретатор PHP5:

Что не версия, то расположение и подход к конфигурированию сервиса apache2 и структуры/положения конфигурационных файлов чуть-чуть да меняют. В любом случае идут верным путем, отделяя «мух от котлет» и используют модульную структуру конфигурирования. Такой подход позволяет настраивать поэтапно:

  1. 1. Настройку пакетов расширений php — графических пакетов, авторизации, работы с СУБД, отладчиков;
  2. 2. Глобальные настройки, языковые настройки, настройки prefork, worker, event для нагруженных решений, сайтов и порталов;
  3. 3. Настройку непосредственно доменов и субдоменов, распологаемых на нашем выделенном сервере в любое время и в любом порядке.

Конфигурационные файлы Apache находятся в папке /etc/apache2, а папка вашего веб-сайта по умолчанию /var/www. Но обо всем по порядку.

2. Установка расширений для языка PHP, конфигурирование службы

Зачем это надо? Ну например — Вас замучил СПАМ! Хотите использовать капчу (CAPTCHA, картинка для роботов) для защиты от нежелательной корреспонденции или защитить свой форум от роботов-регистраторов? Тогда Вам потребуется поддержка в языке программирования php методов работы с графическими изображениями, пакет php-gd. Пришло время установить необходимые php-расширения, чтобы наш сервер мог обслуживать современные сайты и технологии. Установим необходимые (и не очень) пакеты расширений:

Если уже уставнолена СУБД, то крайне не помешают пакеты:

Слегка скорректируем настройки PHP, изменив в файле /etc/php5/apache2/php.ini следующие директивы:

Настроим теперь пакет XDebug, который лежит в /usr/lib/php5/20090626+lfs/ Скорее всего последняя директория будет отличаться. Открываем 20-xdebug.ini:

Подключение механизма Mod Rewrite посредством директив .htaccess

Mod_rewrite предоставляет механизм динамического изменения запрашиваемых URL-ов. Так называется дополнительный модуль для популярного веб-сервера Apache, доля которого на рынке веб-серверов составляет порядка 60-70%. Для включения mod_rewrite, достаточно чтобы модуль mod_rewrite.so был загружен в Apache. Этот модуль содержится в стандартной поставке сервера. Но как правило, он обычно отключен.

Нижеследующая команда включает за нас модуль mod_rewrite в состав веб-сервера, обслуживающего Ваш веб-сайт, и допускается использование его директив в файлах .htaccess. Дополнительно задействуем модули expires и headers

Перезапустим службу apache2 для вступления изменений в силу

Чтобы проверить корректность установленного php и его модулей-расширений, переименовываем файл /var/www/index.html в index.php

. и добавляем в него небольшой php-код содержащий вызов функции phpinfo():

Готово! Посещаем тестовую страницу http://ip.address/test.php или http://domain/test.php и этот скрипт выдаст вам массу информации об используемых модулях php.

Примечание: Не оставляйте общедоступным скрипт содержащий вывод функции phpInfo() — после того, как Вы убедились что сервер сконфигурирован верно, удалите эту страницу или вызов этой функции.

3. Конфигурация сервера apache2

Вначале внесем необходимые измения в конфигурацию нашего сервера apache 2. Выясним в какой конфигурации работает наш сервер

Имеем установленный по умолчанию режим Prefork MPM. В первую очередь проверим и скорректируем файл глобальных наcтроек сервера — /etc/apache2/apache2.conf:

Тэг(опция): MaxClients

Директива MaxClients устанавливает максимальное количество параллельных запросов, которые будет поддерживать сервер. Apache не будет порождать больше процессов/потоков чем MaxClients. Значение MaxClient не долно быть слишком маленьким (иначе много клиентов останутся необслуженными), но и не стоит устанавливать слишком большое количество — лучше не обслужить часть клиентов чем исчерпать все ресурсы, залезть в своп и умереть под нагрузкой.

Хорошим может быть значение MaxClients = количество памяти выделенное под веб-сервер / максимальный размер порожденного процесса или потока. Для статических файлов apache использует около 2-3 Мб на процесс, для динамики (php, cgi) — зависит от скрипта, но обычно около 16-32 Мб.Если сервер уже обслуживает MaxClients запросов, новые запросы попадут в очередь, размер которой устанавливается с помощью директивы ListenBacklog.


Тэг(опция): MinSpareServers, MaxSpareServers, и StartServers

Т.к. создание потока, и особенно процесса — дорогая операция, apache создает их заранее. Директивы MaxSpareServers и MinSpareServers устанавливают как много процессов/потоков должны ожидать в готовности принять запрос (максимум и минимум). Если значение MinSpareServers слишком маленькое и неожиданно приходит много запросов, apache вынужден будет создавать много новых процессов/потоков, что создаст дополнительную нагрузку в этой стрессовой ситуации. С другой стороны, если MaxSpareServers слишком велико, apache будет сильно нагружать систему этими процессами, даже если количество клиентов минимально.

Постарайтесь установить такие MinSpareServers и MaxSpareServers, чтобы apache не создавал более 4 процессов/потоков в секунду. Если он создаст более 4, в ErrorLog будет помещено сообщение об этом. Это — сигнал того что MinSpareServers слишком мало.

Тэг(опция): MaxRequestsPerChild

Директива MaxRequestsPerChild устанавливает сколько запросов может обработать один дочерний процесс/поток прежде чем он будет завершен. По умолчанию значение этой директивы установлено в 0, что означает что однажды созданный процесс/поток не будет завершен никогда (ну кроме случаев остановки сервера или краха этого процесса/потока).

Рекомендую установить MaxRequestsPerChild равное какому-нибудь достаточно большому числу (несколько тысяч). Это не создаст излишней нагрузки, связаной с тем что apache будет вынужден создавать новые дочерние процессы, в то же время это поможет избавиться от проблем с утечкой памяти в дочерних процессах (что очень возможно например если вы используете нестабильную версию php).

Тэг(опция): KeepAlive и KeepAliveTimeout

KeepAlive позволяет делать несколько запросов в одном TCP-подключении. Это особенно полезно для html-страниц с большим количеством изображений. Если KeepAlive установлен в Off, то для самой страницы и для каждого изображения будет создано отдельное подключение (которое нужно будет обработать master-процессу), что плохо и для сервера и для клиента. Так что для подобных случаев рекомендуется устанавливать KeepAlive в On.

Для других применений (например для download-сервера) KeepAlive может быть бесполезен и даже вреден, т.к. при включенном KeepAlive сервер закрывает соединение не сразу, а ждет KeepAliveTimeout секунд нового запроса. Для того чтобы процессы не висели слишком долго в бесполезном ожидании, устанавливайте KeepAliveTimeout достаточно малым, около 5-10 секунд обычно достаточно.

Файл /etc/apache2/conf.d/charset

Раскомментируем кодировку UTF-8, или заменим её на Windows-1251, в зависимости от выбора кодировки по-умолчанию для нашего сервера в целом:

Файл /etc/apache2/sites-available/default

Внесем необходимые исправления в «домен по умолчанию». В начале файла добавляем опции ServerAdmin и ServerName и указываем в них основной сайт (по умолчанию)на сервере и почту администратора.

Изменяем положение корня «сайта по умолчанию» DocumentRoot с /var/www/ на /var/www/public_html, а также исправляем на . Не забудьте создать эту директорию:

Чтобы директивы mod_rewrite можно было использовать на всех сайтах нашего выделенного сервера, необходимо в этом файле (в соответствующем разделе » «) прописать: AllowOverride all. Обязательно поправим опцию AllowOverride в настройках директории /var/www/public_html, изменив её с значения None на All. Остальное можно не трогать.

Примечание: Если при использовании файлов .htaccess появляется ошибка 403 ДОСТУП ЗАПРЕЩЕН («permission denied») — установите разрешения 644 на эти файлы:

4. Файловая структура папок для типового хостинга

Теперь создадим клиентские сайты на нашем сервере. Рассмотрим на примере. Создадим недостающие папки и расставим нужные права. Используется следующая струкутра, так как не использую никаких ISP панелей:

Это корневая папка сервера DocumentRoot — здесь я располагаю служебный сайт сервера и специльное ПО — postfixadmin, squirelmail, awstats и проч. Папка public_html остаётся «папкой для сервера default» (сервера по умолчанию) Теперь рассмотрим содержимое папки vhosts:

И наконец содержимое папки любого виртуального хоста:

Примечание: Из особеностей назначения прав:

Папки сайтов, находящиеся в vhosts должны иметь владельца proftpd и группу www-data, разрешение 755

Папки tmp должны иметь владельца и группу root и разрешение 777

Файлы .htaccess должны иметь владельцом root и разрешение 644

Группа proftpd необходима для организации к папкам клиентских сайтов доступа по FTP. Для продвинутых рекомендую, не заводя нового пользователя в системе, использовать цифровую нотацию групп/пользователей в настройках службы proftpd и назначать конкретные права этому пользователю для конкретной пользовательской папки. Как факультатив)

Как вы устроите свой хостинг — решать Вам. Я делаю структуру удобную мне и моим клиентам. Для всех виртуальных хостов будет создан виртуальный пользователь и настроен доступ по ftp к корневой папке хоста (например example.com). Этот подход позволяет дать возможность клиентам иметь доступ к резервным копиям (бэкапам, backups), лог-файлам своего сайта и создавать выше корня public_html защищенные папки (например, cgi-bin) и системные файлы с паролями для авторизации htaccess (пример, .privsite)

5. Создание хостинга виртуального домена example.com на базе сервера Apache2

Теперь добавим новый файл конфигурации для домена example.com в папке sites-available:

В этом файле мы описали домен example.com с отдельными, обособленными от общего сервера, настройками. Теперь «включаем» этот домен:

Скопируем наш файл для тестов в папку /var/www/vhosts/example.com/public_html:

Проверим настройки и перезапутим апач:

Проверяем информацию о сайте в браузере — http://example.com

Примечание: Можно отлаживать работу сервера и своих сайтов не имея записей в ДНС или не настраивая свой личный ДНС-сервер. Для этого используются файлы существующие в любой системе — hosts. Их расположение:

  • c:\WINDOWS\system32\drivers\etc\hostsWindows
  • /etc/hosts*nix, FreeBSD

Этот файл может содержать адреса и псевдонимы для локальных узлов или узлов в пределах локальной сети. Прежде чем обратиться к службе ДНС Ваш компьютер просматривает этот файл на предмет совпадения пар ip-адрес — доменное имя. Добавьте Ваши сайты в этот файл, связав их с адресом настраиваемого сервера (10.6.10.123):

Если же Вам необходимо использовать динамически формируемые субдомены, то придется настроить свой локальный ДНС сервер.

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

Установка PHP

Инсталляция PHP для Apache под UNIX

Установка PHP под Apache 1.3.X как CGI интерпретатора

Для быстрой установки PHP 4.x под Apache 1.3.X произвести следующие действия:

— разархивировать пакеты:
1. gunzip apache_1.3.x.tar.gz
2. tar xvf apache_1.3.x.tar
3. gunzip php-x.x.x.tar.gz
4. tar xvf php-x.x.x.tar
— сконфигурировать пакеты:
5. cd apache_1.3.x
6. ./configure —prefix=/www
7. cd ../php-x.x.x
8. ./configure —with-mysql —with-apache=../apache_1.3.x —enable-ftp
— установить php:
9. make
10. make install
— переконфигурировать и установить apache:
11. cd ../apache_1.3.x
12. ./configure —activate-module=src/modules/php4/libphp4.a
13. make
14. make install
— создать конфигурационный файл php:
15. cd ../php-x.x.x
16. cp php.ini-dist /usr/local/lib/php.ini
— отредактировать файл http.conf:
17. Добавить в httpd.conf AddType application/x-httpd-php .php
— перезапустить или запустить сервер apache:
18. apachectl start или apachectl restart

Кроме того, имеет смысл проверить перед запуском apache наличие следующих строк в файле httpd.conf:
1.
LoadModule php4_module libexec/apache/libphp4.so
2.

DirectoryIndex index.php index.php3 index.html index.phtml

DirectoryIndex index.php3 index.html index.phtml

3.

AddType application/x-httpd-php3 .php3
AddType application/x-httpd-php3-source .php3s

AddType application/x-httpd-php .php .phtml .html .htm
AddType application/x-httpd-php-source .phps

Естественно строки могут не повторять точно содержимое, главное принцип.

При конфигурировании исходных кодов apache рекомендуется указывать axps.

Схема сборки PHP 5 аналогична. Иногда возникает проблема с отсутствием записей в файле httpd.conf указывающих на PHP 5 (характерно для старых версий apache и первых реализаций PHP 5) в этом случае после установки PHP рекомендуется проверить, и если требуется, зарегистрировать библиотеки PHP командами группы ld и проверить наличие вышеуказанных строк изменив версию 4 на 5.

Установка под apache 1.3.X как mod_php

Разберем на примере установки из портов OC FreeBSD 5.2.1.
Для начала имеет смысл обновить содержимое портов. Для этого в каталоге /usr/local/etc создадим файл с именем cvsupfile и поместим в него следующий код:
*default host=cvsup.ru.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs
*default delete use-rel-suffix
*default tag=.
doc-all
ports-all

Далее выполним команду:
/usr/local/bin/cvsup -g -L 2 /usr/local/etc/cvsupfile

После отработки скрипта должны получить обновленные порты.

Затем переходим в каталог исходных кодов порта: cd \usr\ports\www\mod_php4X

Выполняем команду make и получаем окно вида:

Options for mod_php4 4.3.8_1,1

[ ] APACHE2 Use apache 2.x instead of apache 1.3.x
[ ] DEBUG Enable debug
[ X ] IPV6 Enable ipv6 support

Где требуется выбрать необходимые опции, затем выбрать OK (в более ранних версиях позволялось выбирать модули которые надо подключать: mysql, gd и т.п. рекомендуется установить необходимые модули перед установкой mod_php4).

Далее выполняем make install, проверяем httpd.conf (смотри выше) и выполняем apachectl restart (если сервер запущен) или apachectl start.

Аналогично устанавливается mod_php5.

Установка под apache 2.0.X

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

Касаемо php5 в нем должны присутствовать следующие строки:
1.
LoadModule php5_module libexec/apache2/libphp5.so
2
AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

При работе последней конфигурацией (доступной на текущей момент) apache-2.0.50 совместно с mod_php5-5.0.0_1,1 отмечены трудности с SSI. Рекомендуется четко соблюдать правила написания SSI.

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

Механизм apache предусматривает возможность задания различных пользователей, от имени которых запускается процесс. Таким образом, остается разграничить пользователей на уровне операционной системы, назначить им права и квоты, если это необходимо. Единственной проблемой при таком подходе остается некорректная работа функции suexec() в apache версий 1.3.X которая выражается в создании файлов от имени пользователя под которым запущен daemon apache, а не от пользователя который инициализирует процесс.

Проблема может быть решена модификацией исходного кода сервера apache которая позволит запускать демон от имени суперпользователя или инициализировать процессы соответствующим способом. Однако возникает дилемма с обновлением и не совсем корректной работой самого web сервера. Разработчики аpache утверждают, что эта проблема решена в версиях apache 2.X.

Инсталляция PHP для Apache 1.3 под Windows

Как правило для установки под Windows используют уже скомпилированный дистрибутив. При этом предпочтение следует отдать полному варианту, содержащему дополнительные расширения (модули) PHP, т.е. файлу zip, объемом 7.5М.

Учитывая, что PHP можно установить в 2-х вариантах:
— как модуль веб-сервера (выполняется в адресном пространстве сервера, обеспечивая таким
образом наивысшую производительность)
— как CGI интерепретатор (выполняется в отдельном от сервера адресном пространстве,
более безопасный вариант)
то и алгоритм инсталляции различен в зависимости от типа установки.

В любом случае, необходимо вначале разархивировать дистрибутив, скажем, в папку \PHP\ системного диска. Далее, необходимо скопировать файл php.ini-dist в папку Windows и переименовать его в php.ini — это будет конфигурационный файл PHP.

Если планируется установка PHP как модуля сервера, то в обязательном порядке необходимо файл php5ts.dll скопировать в папки Windows system32 или system .

Затем, открыв конфигурационный файл Apache — httpd.conf (/Program Files/Apache Group/Apache/conf/) добавляем в него следующие директивы:

LoadModule php5_module c:/php/php5apache.dll
AddModule mod_php5.c
AddType application/x-httpd-php .php

если PHP устанавливается как модуль, и:

ScriptAlias /php/ «c:/php/»
AddType application/x-httpd-php .php
Action application/x-httpd-php «/php/php.exe»

если PHP устанавливается как CGI интерпретатор.

На этом инсталляция закончена и можно приступить к настройке конфигурации PHP.

Более подробную информацию можно получить в файле install.txt, который поставляется вместе с PHP дистрибутивом.

Инсталляция PHP для Apache 2 под Windows

До настоящего момента работа PHP под Apache 2 носит лишь экспериментальный характер. Насколько возможно, рекомендуется использовать PHP только под Apache 1.

Дата публикации: 25.07.04
Последнее обновление: 28.07.04
Просмотров: 65014

Copyright © PHP World — Леонид Лукин, 2004-2008.

Добавить комментарий