- Настройка веб-сервера Apache под Windows
- План работ:
- 1. Установка Apache под Windows
- 2. Выпуск самоподписанного сертификата Windows
- 3. Публикация информационной базы Windows
- 4. Проверка публикации
- Переменные окружения веб-сервера Apache
- Как добавить путь до PHP в переменную окружения PATH в Windows
- Что такое и для чего нужна PATH
- Нужно ли в Windows добавлять PHP в переменную окружения
- Как добавить PHP в системные переменные среды
- apache — Как получить системные переменные окружения в PHP при работе CLI & amp; Apache2handler?
- Решение
- Другие решения
Настройка веб-сервера Apache под Windows
План работ:
- Установка Apache под Windows.
- Выпуск самоподписанного сертификата Windows (Необязательно).
- Генерация сертификата.
- Публикация информационной базы Windows.
- Проверка публикации.
В отличие от IIS, веб-серверApaсhe доступен как для Windows, так и для Linux и позволяет настроить работу публикаций по шифрованному протоколу http.
1. Установка Apache под Windows
Первым делом необходимо скачать и установить веб-сервер. Список доступных реализаций можно найти по ссылке, а в статье будет использован самый первый из списка дистрибутивов. Он поставляется в виде zip-архива без инсталлятора.
Поэтому нужно скачать архив и разархивировать в любую удобную папку, например, C:\Apache24. 24. В названии папки указан номер версии Apache. В данном случае используется версия 2.4. При публикации информационной базы из командной строки стоит обращать на это внимание, так как с платформой поставляются отдельные библиотеки веб-компонент для версий Apache 2.2 и 2.4.
После разархивирования файла архива, откройте командую строку от имени администратора. Самый простой вариант – это открыть меню Пуск и ввести cmd. После того, как приложение будет найдено щелкнуть по нему правой кнопкой мыши и выбрать пункт меню «Запустить от имени Администратора» («Run as Administrator»).
В командной строке переходим в директорию распакованного Apache с помощью команды cd. Например:
В директории Apache вводим команду:
Это установит службу Apache, которой можно будет управлять в окне служб.
На этом установка Apache закончена. Осталось только опубликовать информационную базу и указать файлы сертификата в настройках Apache.
2. Выпуск самоподписанного сертификата Windows
В отличии от IIS, сертификат для Apache выпускается с помощью стороннего программного обеспечения OpenSSL.
По умолчанию в операционной системе Windows его нет. Поэтому его нужно скачать и установить самостоятельно. Возможные дистрибутивы OpenSSL для Windows указаны на wiki странице официального сайта.
В статье рассматривается дистрибутив по ссылке, который указан первым на странице wiki.
После скачивания дистрибутива установки необходимо его запустить.
На первой странице нужно согласиться с условиями лицензионного соглашения (переключить переключатель на «I accept the agreement») и нажать кнопку «Next».
Мастер переключится на страницу размещения дистрибутива. Если местоположение не планируется изменять, то можно оставить поле в значении по умолчанию и нажать кнопку «Next».
На следующем шаге ничего менять не нужно и можно просто нажать «Next».
Дистрибутив готов к установке. Нужно нажимать кнопку «Install» и дождаться завершения установки.
Финальный шаг – это страница пожертвований в пользу поддержки проекта. Если в планы не входит перечисление пожертвований, то необходимо снять все флажки и нажать кнопку Finish.
Дистрибутив OpenSSL установлен и теперь можно переходить к генерации сертификата.
Для этого необходимо запустить интерпретатор командной строки от имени Администратора.
Теперь нужно проверить, что исполняемый файл доступен из переменных окружения операционной системы. Нужно ввести openssl и если будет выведено сообщение, аналогичному на картинке, то воспользуйтесь инструкцией по добавлению директории bin в переменную окружения PATH.
Директория bin для OpenSSL была указана на втором шаге установщика.
Если пришлось добавить директорию bin в переменные окружения, то необходимо перезапустить командную строку от имени администратора. В противном случае, если ввод перешел в режим конфигурирования OpenSSL, нужно нажать сочетание клавиш Ctrl + C.
Далее нужно перейти в директорию Apache и создать папку, в которой будут располагаться файлы сертификатов.
После создания нужно перейти в созданную директорию.
После чего требуется ввести команду генерации сертификата, где вместо нужно подставить имя компьютера, на котором планируется размещен Apache:
Во время выполнения команды будет задано несколько вопросов. Для «Common Name (e.g. server FQDN or Your bane)» нужно также указать имя сервера. Остальные поля заполняются произвольно (кроме «Country name» — здесь можно оставить по умолчанию).
3. Публикация информационной базы Windows
Перед публикацией базы нужно отредактировать в любом удобном редакторе файл, расположенный в директории дистрибутива Apache.
Нужно в файле найти секцию VirtualHost _default_:443 и в ней заменить SSLCertificateFile и SSLCertificateKeyFile на полные пути к ключу и закрытого файла сертификата, на подготовленные заранее файлы.
После этого можно переходить к публикации базы.
Для публикации информационной базы нужно открыть конфигуратор конкретной базы от имени администратора и перейти в пункт меню «Администрирование». После этого выбрать «Публикация информационной базы».
В окне публикации указать имя публикации и по желанию определить каталог, где будут находиться настройки публикации. Его также можно оставить по умолчанию.
После этого требуется нажать кнопку «Опубликовать» и дождаться окончания операции.
4. Проверка публикации
Для проверки корректной работы нужно открыть страницу в браузере и перейти по ссылке, которая состоит из двух частей:
- Имя вашего сервера (например, server1)
- Имя публикации базы (которое было указано в окне настройки публикации)
Для таких параметров ссылка будет иметь вид:
Переменные окружения веб-сервера Apache
Полная поддержка директив .htaccess прилагается.
Одни из самых дешевых услуг регистрации и главное пролонгации доменов.
Сервер позволяет обмениваться информацией с внешними программами (CGI) и между модулями с помощью переменных окружения. Имя пременной должно начинаться с буквы и может содержать буквы, цифры и подчёркивания. Перед вызовом CGI сервер устанавливает переменные запроса в соответствии со стандартом (и кое-что от себя, некоторые модуля добавляют свои переменные):
Переменные записываются в виде %<ИМЯ_ПЕРЕМЕННОЙ>.
Реальный пример с синтаксисом:
Наиболее часто используются следующие переменные:
- QUERY_STRING (параметры запроса);
- REMOTE_ADDR ( IP -адрес посетителя);
- REMOTE_HOST (имя хоста посетителя);
- REMOTE_USER (имя пользователя, если он прошел авторизацию);
- REMOTE_METHOD (обычно GET или POST );
- PATH_INFO (путь к файлу веб-страницы);
- HTTP_USER _ AGENT (содержимое http -заголовка User — Agent);
- HTTP_REFERER (содержимое http -заголовка Referer);
- HTTP_COOKIE (содержимое http -заголовка Cookie);
- HTTP_HOST (имя хоста веб-сайта);
- TIME_YEAR (все переменные TIME _* хранят разбитые на части текущие дату и время);
- TIME_MON;
- TIME_DAY;
- TIME_HOUR;
- TIME_MIN;
- TIME_SEC;
- TIME_WDAY;
- REQUEST_URI (строка запроса без имени хоста и параметров запроса);
- REQUEST _ FILENAME (имя файла);
- THE _ REQUEST (полная строка запроса в том виде, в котором ее присылает браузер посетителя).
Реальные значения приблизительно таковы:
HTTP_ACCEPT => text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
HTTP_ACCEPT_CHARSET => windows-1252, utf-8, utf-16, iso-8859-1;q=0.6, *;q=0.1
HTTP_CONNECTION => Keep-Alive, TE
HTTP_HOST => www.htaccess.net.ru — если клиент посылает поле HOST в запросе
HTTP_IF_MODIFIED_SINCE => Wednesday, 26-Jul-00 15:20:17 GMT ; length=1437
HTTP_USER_AGENT => Opera/7.60 (Windows NT 5.1; U) [ru]
HTTP_VIA => 1.0 be.mtu.ru:3129 (Squid/2.3.STABLE1) — proxy
HTTP_X_FORWARDED_FOR => 198.170.72.21 — proxy
PATH => /bin:/usr/bin:/usr/local/bin — директории, в которых ищутся исполняемые программы
REMOTE_ADDR => 177.20.56.84 — клиент или прокси
SCRIPT_FILENAME => /home/www/users/AM/public_html/main_menu/local/about_it_localyandex/index.shtml — абсолютное имя файла
SCRIPT_NAME => /_main_menu/local/about_it_localyandex/index.shtml — логическое имя объекта
SERVER_ADDR => 172.20.2.14 — IP адрес
SERVER_ADMIN => admin@_Best-Host.RU почтовый адрес администратора сервера
SERVER_NAME => Best-Host.RU имя-определенное-по-IP
SERVER_SIGNATURE => Apache/1.3.33 Server at htaccess.net.ru Port 80
SERVER_SOFTWARE => Apache/1.3.33 (Debian GNU/Linux) mod_throttle/3.1.2 PHP/4.3.10-16 mod_perl/1.
Более подробно и в контексте применения в модуле mod_rewrite (- URL преобразований) переменные окружения будут рассмотрены в разделе — Директива модуля — RewriteCond
Недавно освободившиеся домены с PR и ТИЦ:
Сервис http://reg.ru — крупнейшего хостинга и регистратора доменов позволяет подать заявку на регистрацию доменного имени, которое недавно было освобождено прежним Администратором. Освобожденные домены часто имеют высокие показатили ТИЦ и PR и могут быть интересны к приобретению.
Использовать промокод при оплате услуг сможет каждый из зарегистрировавшихся только один раз. Поэтому вначале добавляем в корзину все что нужно, а затем одной операцией вводим купон и проводим оплату.
Как добавить путь до PHP в переменную окружения PATH в Windows
Что такое и для чего нужна PATH
Вполне возможно, что вам не приходилось ранее сталкиваться с PATH и выражениями «переменная окружения», поэтому я кратко поясню, что это такое.
Переменная PATH содержит список папок, в которых Windows ищет исполнимые файлы.
В графическом интерфейсе, когда для запуска программ используются ярлыки, значение PATH не очень большое. Но если вы запускаете программу в командной строке, то PATH может пригодиться. Опять же, если вы указываете полный путь до файла, например, C:\Users\Alex\Documents\php.exe, то PATH не используется. Но если, например, вы запускаете программу только по имени файла или просто по имени (без файлового расширения), то запустится ли программа, будет зависеть от содержимого переменной PATH.
К примеру, я в командной строке пытаюсь запустить файл (без указания полного пути)
В этом случае операционная система посмотрит все записи PATH (там может быть указано несколько каталогов). Затем в каждом из этих каталогов Windows попытается найти файл php.exe. Если файл найден, то он будет запущен. Если файл не найден, то будет выведено соответствующее сообщение.
По сути, что-то дописывать в переменную PATH нужно только тем, кто много работает с командной строкой. К примеру, вы программист и размещаете свои программы в папке C:\MyApps и при этом вы часто запускаете свои утилиты командной строки. В этом случае вы можете добавить C:\MyApps в PATH и после этого для запуска программ из этой папки вам уже не нужно будет каждый раз вводить полное имя (например, C:\MyApps\parser.exe), а достаточно будет в командной строке ввести только имя файла:
Нужно ли в Windows добавлять PHP в переменную окружения
При установке и настройке PHP в Windows необязательно добавлять в PATH путь до PHP, но это рекомендуется делать.
Во-первых, вы сможете запускать PHP используя сокращённую запись:
Во-вторых, ряд расширений (которые включаются в файле php.ini) работают некорректно, если вы не прописали в PATH путь до PHP; в том числе, это касается такого довольно популярного расширения как cURL. По идее — это какой-то баг этих расширений или PHP, но нам самим придётся исправлять ситуацию, поскольку эта проблема существует уже много лет.
Как добавить PHP в системные переменные среды
Нажмите кнопку Windows (это которая раньше была кнопкой «Пуск»), начните набирать «Изменение системных переменных среды»
и откройте соответствующее окно настроек.
Там нажмите «Переменные среды», откроется:
В окне «Системные переменные» найдите и кликните на Path, потом нажмите «Изменить»:
Далее «Создать» и впишите туда «C:\Server\bin\PHP\»:
Поднимите запись в самый Вверх:
Закройте все окна с сохранением сделанных изменений.
apache — Как получить системные переменные окружения в PHP при работе CLI & amp; Apache2handler?
Моя система Ubuntu и я установил свои переменные среды в /etc/environment ,
Если я бегу PHP использование сценария CLI — переменные среды из /etc/environment признаны.
Но если я пойду казнить PHP сценарий через http://domain/test.php (то есть apache2handler) точно такой же сценарий выводит NULL, то есть переменные окружения из /etc/environment не загружены.
Я исправил добавление переменных в /etc/apache2/envvars и это решило проблему.
Но это два разных файла, которые затем должны быть синхронизированы.
Как я могу сделать PHP / апаш загрузить и распознать переменные среды из /etc/environment (Система)?
РЕДАКТИРОВАТЬ: Чтобы уточнить вещи, когда я говорю «не загружен в PHP», это означает, что переменные из /etc/environment не установлены в $_SERVER , $_ENV , getenv() и не существует в $GLOBALS , Другими словами «не загружаются в PHP».
Решение
У меня была точно такая же проблема. Чтобы решить это, я просто поставил /etc/environment внутри /etc/apache2/envvars ,
Теперь я могу использовать эти переменные в конфигурационных файлах Apache Virtual Host и в PHP.
Вот пример виртуального хоста Apache:
И это пример того, как получить к ним доступ с помощью PHP:
Другие решения
В Ubuntu PHP использует разные INI-файлы для обычных процессов и процессов CLI.
Там должно быть несколько INI-файлов, таких как /etc/php5/cli/php.ini , /etc/php5/fpm/php.ini или же /etc/php5/php.ini , Откройте связанный файл INI и измените
После этого вы получите переменные окружения, которые вы установили перед использованием $ _ENV [‘varname’].
Из php.ini о variables_order :
Так что вы можете попробовать использовать GETENV () вместо $ _ENV [].
Недавно я написал библиотеку для получения значений из переменных окружения и анализа типов данных PHP. Эта библиотека может использоваться для анализа переменных среды в типах данных PHP (таких как приведение к целочисленному типу, float, null, boolean), синтаксического анализа сложных структур данных, таких как строка JSON и т. Д., С участием сообщества.
Поместите переменные окружения в «/ etc / environment» и «/ etc / apache2 / envvars» после перезапуска сервера Apache и загрузите переменные окружения в операционную систему:
И чтобы получить значения из переменной среды (независимо от среды CLI, Apache, Nginx, встроенного сервера PHP и т. Д.), Выполните следующие действия:
я думаю, что вы можете использовать только для установки переменной среды из .htaccess: