apache — вопросы с ответами

13 ответов
Я использую веб-сервер Apache, для которого установлен владелец _www:_www. Я никогда не знаю, что лучше всего делать с правами доступа к файлам, например, когда я создаю новый проект Laravel 5. Laravel 5 требует, чтобы папка /storage доступна для записи. Я нашел много разных подходов, чтобы застав...
file-permissions
laravel-5
04 июнь 2015, в 08:16
6 ответов
У меня есть ядро ​​Ubuntu 14.04. Я устанавливал приложение Laravel на этом сервере. После установки я попытался открыть каталог root. sudo nano /etc/apache2/sites-available/000-default.conf У меня есть только эти параметры в файле <VirtualHost *:80> # The ServerName directive sets the...
laravel-4
30 янв. 2015, в 17:42
6 ответов
Это вопрос, связанный с Laravel-install. У меня есть настройка сервера Unix с открытым доступом: <VirtualHost *:80> ServerAdmin [email protected] DocumentRoot "/var/www/mydomain" ServerName mydomain.org ServerAlias www.mydomain.org ErrorLog "/var/log/mydomain.org-error_log" CustomLog "/va...
20 апр. 2014, в 19:39
17 ответов
Мой сайт laravel работал до этого, я недавно обновился до Apache 2.4 и PHP 5.5.7. Теперь я получаю белый пустой экран, когда я перехожу на laravel.mydomain.com, ничего в журналах ошибок apache, маршрутах и ​​т.д. должно быть хорошо, как это было раньше. .htaccess загружается, когда я получаю 500, ко...
frameworks
laravel-4
19 дек. 2013, в 08:54
8 ответов
Apache регистрирует PHP Fatal error: Call to undefined function json_decode(). После некоторых поисковых запросов, похоже, эта проблема возникает из-за отсутствия последней версии php. Как ни странно, запуск php --version ouputs PHP 5.5.1-2+debphp.org~precise+2 (cli) (built: Aug 6 2013 10:49:43) C...
14 авг. 2013, в 19:01
2 ответа
Как найти файл my httpd.conf? Я запускаю сервер Ubuntu Linux из Amazon Web Services EC2 (Elastic Compute Cloud), и я не могу найти свою конфигурацию Apache.
amazon-ec2
httpd.conf
30 авг. 2012, в 16:40
2 ответа
Мне нужна помощь в перезаписи URL. Случай аналогичен этому. У меня есть рабочий сайт Zend Framework. Теперь я должен добавить блог в Wordpress (также работает). Я решил не заниматься ZF-контроллером/action-/route-making; Я видел пару учебников об этом, и я считаю их слишком много для "простого" пере...
mod-rewrite
virtualhost
zend-framework
10 июнь 2011, в 14:47
25 ответов
Я пытаюсь выполнить некоторый PHP-код в проекте (используя Dreamweaver), но код не запускается. Когда я проверяю исходный код, PHP-код отображается как HTML-теги (я вижу его в исходном коде). Apache работает правильно (я работаю с XAMPP), страницы PHP открываются должным образом, но код PHP не выпол...
25 фев. 2011, в 17:48
1 ответ
Это код .htaccess для постоянных ссылок в WordPress. Я не понимаю, как это работает. Может кто-нибудь объяснить? <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.p...
.htaccess
21 фев. 2011, в 03:33
5 ответов
Я создаю веб-приложение, которое должно взаимодействовать с другим приложением, используя соединения сокетов. Для меня это новая территория, поэтому хочу быть уверенным, что сокеты отличаются от websockets. Похоже, они только концептуально похожи. Спроси, потому что изначально я планировал использов...
sockets
websocket
mod-wsgi
11 фев. 2011, в 20:00
9 ответов
Когда вы рассмотрите возможность использования одного над другим и почему?
19 фев. 2010, в 14:07
2 ответа
У меня есть основное представление о запуске PHP в разных конфигурациях, таких как mod_php, cgi, FastCGI и т.д. В моих выводах и тестах я обнаружил, что FastCGI немного лучше. Мне нравится поддержка FastCGI для SuEXEC. Подождите, я не хочу снова заниматься бенчмаркингом. Если вы работаете в Интернет...
fastcgi
mod-php
10 сен. 2009, в 14:19
5 ответов
Несколько недель назад я перешел с общего хостинга на VPS, и у меня возникли такие неприятные проблемы с разрешением в WordPress. Вы знаете, что вы можете загружать и обновлять плагины (и сам Wordpress) с панели администратора, но с тех пор, как я переехал, он начал просить меня мои учетные данные F...
permissions
11 июль 2009, в 12:22
16 ответов
Я настраиваю новый сервер и хочу полностью поддерживать UTF-8 в моем веб-приложении. Я пытался сделать это в прошлом на существующих серверах, и мне всегда приходилось прибегать к ISO-8859-1. Где именно мне нужно установить кодировку/кодировки? Я знаю, что мне нужно настроить Apache, MySQL и PHP д...
10 нояб. 2008, в 19:45
6 ответов
Можно ли настроить xampp для обслуживания файла вне каталога htdocs? Например, скажем, у меня есть файл, расположенный следующим образом: C:\projects\transitCalculator\trunk\TransitCalculator.php и мои xampp файлы обычно подаются из: C:\xampp\htdocs\ (потому что это настройка по умолчанию) Есть ли...
xampp
04 авг. 2008, в 16:57

Подробнее о apache

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

Операционные системы различаются по способу реализации таких функций, как работа в сети и многопроцессорность. Apache версии 2.0 представил модули MultiProcessing Modules (MPM) для обеспечения моделей сетей и планирования, адаптированных к конкретным операционным системам и моделям использования. MPM используют нативные функции операционной системы и обеспечивают планирование с использованием процессов, потоков или их сочетания. Apache использует только один MPM в любое время, и он должен быть статически скомпилирован в сервер.

MPM, другие модули и основной веб-сервер основаны на Apache Portable Runtime (APR), который обеспечивает согласованный, независимый от платформы интерфейс к базовой операционной системе. APR включает API для доступа к базам данных SQL и серверам LDAP; они используются в двух базовых модулях, mod_dbd и mod_ldap, которые предоставляют общие возможности, которые могут использовать другие модули.

Обзор операционной части

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

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

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

Как получить доступ к Apache

Веб-сервер Apache доступен для большинства современных вычислительных платформ - большинство дистрибутивов Linux и BSD предлагают его в виде стандартного пакета, и он включен в Mac OS X. Бинарные пакеты для Microsoft Windows доступны на веб-сайте Apache и в его зеркалах, а также исходные и другие бинарные пакеты. Желательно ознакомиться с особенностями используемого вами дистрибутива, так как упаковщики в обязательном порядке изменяют детали в соответствии с соглашениями их целевой платформы.

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

Запуск и остановка Apache

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

В Unix-подобных системах Apache обычно работает как присоединенный процесс. Скрипт оболочки apachectl входит в состав Apache для автоматизации процесса запуска и остановки этого процесса. Такой скрипт обычно вызывается сценарием запуска системы. Apache ответит на следующие запросы, отправленные родительскому процессу:

  • TERM. Останавливает сервер, заставляя родительский процесс попытаться уничтожить каждый из дочерних процессов, а затем завершить сам себя;
  • HUP. Перезапускает сервер, заставляя родительский процесс завершать работу каждого из дочерних процессов, перечитывать файлы конфигурации и затем создавать новые дочерние процессы. Статистика сервера обнуляется при перезапуске;
  • USR1. Инициирует постепенный перезапуск. Дочерние процессы завершаются либо после обработки текущего запроса, либо сразу, если в данный момент не обслуживают запрос. Порождающий процесс сканирует файлы конфигурации и начинает порождать новые дочерние процессы, чтобы поддерживать соответствующее количество процессов сервера. Статистика сервера не сбрасывается при постепенном перезапуске;
  • WINCH. Инициирует корректную остановку. Дочерние процессы завершаются либо после обработки текущего запроса, либо сразу, если в данный момент не обслуживают запрос. Родительский процесс удаляет файл PID и прекращает прослушивание на всех портах, но продолжает мониторинг до тех пор, пока не останутся все оставшиеся дочерние элементы или не истечет время ожидания.

В Windows, если Apache был установлен в качестве службы, его можно запустить и остановить, используя команды NET START и NET STOP с помощью Apache Service Monitor.

Файлы конфигурации

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

Файлы конфигурации – это простые текстовые файлы, которые содержат директивы конфигурации, пустые строки и комментарии. Начальные пробелы в строке игнорируются, как и пустые строки. Строки, начинающиеся со знака хеш (#), рассматриваются как комментарии.

Формат конфигурационной директивы

Директивы конфигурации Apache описываются в стандартном формате, как показано здесь:

Если установлено значение ON, то запросы, которые сопоставляются с каталогом, но не заканчиваются косой чертой, будут перенаправлены на тот же URL с добавленной косой чертой, позволяя автоматически работать индексам каталогов и относительным URL.

Верхняя строка дает название директивы слева, а список контекстов, в которых директива может использоваться – справа, с использованием аббревиатур. Если директива может использоваться в файле конфигурации для каждого каталога и управляется категорией директивы AllowOverride, ключевое слово category включается в круглые скобки после сокращений контекста.

Главный сервер и виртуальные хосты

Apache настроен с помощью директивы Listen для прослушивания нескольких IP-адресов на одном или нескольких портах. Без каких-либо определений виртуального хоста все запросы будут ссылаться на главный сервер.

Виртуальные хосты определяются с использованием разделов <VirtualHost>, но они действуют только в том случае, если Apache прослушивает IP-адрес и порт, указанные в директиве <VirtualHost> открытия. Если директива NameVirtualHost не указана, все виртуальные хосты основаны на IP-адресе.

Директивы NameVirtualHost используются для обозначения IP-адресов с дополнительными номерами портов, которые будут принимать запросы для виртуальных хостов на основе имен. Вместо IP-адресов можно использовать имена хостов. Apache определяет виртуальный хост, который будет использоваться, сопоставляя значение заголовка хоста при запросах, поступающих на эти IP-адреса и порты, с именем сервера или псевдонимами, определенными в разделах виртуального хоста, где адрес и порт в директиве <VirtualHost> точно совпадают значения в директиве NameVirtualHost. Обратите внимание, что виртуальные хосты на основе имен не работают с HTTPS-соединениями, поскольку имя хоста необходимо для установки безопасного соединения, но его можно извлечь из заголовков HTTP только после того, как соединение установлено.

Это контейнер для директив, которые относятся только к какому-то конкретному виртуальному хосту. addr может играть роль IP-адреса или же быть полным доменным именем для виртуального хоста; это также может быть литерал _default_, который будет равняться любому IP-адресу, явно не указанному в другом разделе виртуального хоста. Номер порта можно указать с помощью порта. Адрес и порт могут быть одновременно представлены как *, чтобы имитировать любой адрес или порт соответственно.

Устанавливает IP-адрес для последующих разделов виртуального хоста на основе имен.

Адрес электронной почты или URL включены в сообщения об ошибках, сгенерированные Apache.

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

Стандартные атрибуты документа

После перевода URL-адреса запроса и применения контроля доступа Apache определяет специальные характеристики возвращаемого документа, такие как язык, тип содержимого, набор символов и кодировка документа.

Четыре стандартных атрибута используются для согласования содержимого документов. Клиенты указывают предпочтения в заголовках запросов Accept*, а атрибуты выбранного документа используются для установки заголовков ответов.

  • Content language. Естественный язык документа, такой как en-gb для британского английского, es-mx для мексиканского испанского или zh для неквалифицированного китайского. Предпочтения клиента указываются в заголовке Accept-Language, а язык выбранного документа возвращается в заголовке Content-Language;
  • Content type. MIME-тип документа, такой как text/ html или image/png; предпочтения указываются с помощью Accept, а MIME-тип документа возвращается в Content-Type;
  • Character set. Набор символов MIME также называется кодировкой символов. Например, utf8, shift-jis или iso-8859-1; предпочтения указываются с помощью Accept-Charset, а набор символов документа возвращается в параметре charset в заголовок Content-Type;
  • Content encoding. Кодировка документа, такая как сжатие, дефляция, gzip или идентификация; предпочтения указываются с помощью Accept-Encoding, а кодировка документа возвращается в Content-Encoding.
Наверх
Меню