Запуск веб-сервера Apache в связке с Python 3 и СУБД на Debian 11 и Ubuntu Server 21.10 — OS CONFIG

admin Linux

Краткое руководство по быстрому запуску веб-сервера Apache HTTP Server с Python 3 и системами управления базами данных MariaDB (MySQL) и PostgreSQL на ОС Debian GNU/Linux и Ubuntu Server 21.10.

Для начала необходимо установить СУБД MariaDB и/или PostgreSQL. Инструкции по установкам находятся по следующим ссылкам:

  • СУБД MariaDB на Debian GNU/Linux и Ubuntu Server — https://dondub.com/2021/05/zapusk-subd-mariadb-na-debian-10-9-i-ubuntu-server-21-04/
  • СУБД PostgreSQL на Debian GNU/Linux — https://dondub.com/2021/05/zapusk-subd-postgresql-v-debian-10-9/
  • СУБД PostgreSQL на Ubuntu Server — https://dondub.com/2021/05/zapusk-subd-postgresql-na-ubuntu-server-21-04/

Затем устанавливаем Apache и Python 3, а также PIP

# apt install python3 python3-pip apache2

Включаем модуль cgid

# /usr/sbin/a2enmod cgid

После этого устанавливаем коннекторы к СУБД.

Для PostgreSQL:

# apt install python3-psycopg2

для MariaDB (MySQL) — с помощью PIP

# pip install mysql-connector-python

и перезапускаем службу apache2

# systemctl restart apache2

Готово! Проверяем.

Каталог для хранения Python-скриптов:

/usr/lib/cgi-bin/

Создадим в нём файл welcome.py, зададим ему необходимые права

# touch /usr/lib/cgi-bin/welcome. py
# chmod 755 /usr/lib/cgi-bin/welcome.py

откроем его

# nano /usr/lib/cgi-bin/welcome.py

и внесём такие строки:

#!/usr/bin/python3
print('Content-Type: text/html; charset=utf-8')
print('')
print('<h2>Добро пожаловать на страницу Python</h2>')

После этого на другой машине в сети в адресной строке вводим: http://IP_илиимяхоста/cgi-bin/welcome.py

Должна появиться страница с текстом приветствия «Добро пожаловать на страницу Python»

Установка веб-сервера Апачи на Windows

Все исходники / Multilanguage / OS Windows / Веб программирование / Веб-серверы / Установка веб-сервера Апачи на Windows

Оглавление
  1. Сервер Apache
  2. Дистрибутивы Apache для Windows
  3. Выбор папки установки
  4. Настройка веб-сервера Апачи
  5. Запуск Апачи как приложение
  6. Запуск Апачи как служба
  7. Ошибки при запуске Апачи
  8. Несколько веб-сайтов на localhost
  9. Настройки директивы <Directory>
  10. Логи доступа и ошибок
  11. Файл конфигурации httpd. conf

Сервер Apache

HTTP-сервер Apache — это программный проект благотворительного фонда США Apache Software Foundation (ASF), финансируемой за счет пожертвований и корпоративных спонсоров. Соучредитель ASF Брайан Белендорф первым придумал имя «Apache» для сервера. Название «апачи» было выбрано из почтения и признательности людям и племенам, которые называют себя «апачи».

По мере того, как Apache рос из патчей (заплаток), добавляемых к одному из первых серверов стандарта HTTP/1.0, постепенно из слухов родилась легенда, что «Apache» на самом деле означает «a patchy server» (неоднородный сервер).

Apache – веб-сервер с открытым исходным кодом для современных операционных систем, включая UNIX, Windows, Mac OS/X и Netware. Написан на языке С и является одним из самых популярных в мире веб-серверов. Сайт проекта Apache The Apache HTTP Server Project.

Статья описывает необходимый минимум для запуска веб-сервера версии 2. 4.x на одном компьютере или в локальной сети операционной системы Windows.

Дистрибутивы Apache для Windows

Apache Software Foundation на своем официальном сайте предоставляет только исходные коды, но не бинарные файлы. Чтобы создать запускаемое приложение HTTP-сервера Apache для операционной системы Windows необходимо самостоятельно скомпилировать файлы прилагаемого исходного кода.

Компиляция исходного кода может оказаться непростой задачей и поэтому можно скачать готовые скомпилированные файлы групп разработчиков, указанных на официальном сайте Apache HTTP Server Project на странице Downloading Apache for Windows. Некоторые из них предоставляют инсталляторы полных комплектов ПО для веб-программирования, другие только скомпилированные модули Апачи

.

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

Выбор папки установки

Дистрибутив веб-сервера Апачи можно установить в любой папке, на любом носителе локального компьютера. Затем настройки пути прописываются в файле конфигурации

Папка_Установки_Apache/conf/httpd.conf. В этом же файле прописываются пути к веб-контенту базового и виртуальных хостов.

Пути к файлам хостинга можно определить также любые. Это удобно для использования общих веб-приложений, которые могут работать на разных серверах (IIS или Apache), например: phpMyAdmin.

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

Настройка веб-сервера Апачи

Запустить веб-сервер можно только после определения основных настроек:

Директива ServerRoot
Определяет каталог, в который были инсталлированы папки и файлы сервера. Для сборки Apache 2.4 и позже путь к каталогу сервера определяется в константе SRVROOT. В дальнейшем данная константа унифицирует строку пути до корневой папки сервера и позволяет избегать ошибок при повторяющихся вводах, например:
Define SRVROOT "G:/MyProjects/Hosting/Apache24"
ServerRoot "${SRVROOT}"
. . .
DocumentRoot "${SRVROOT}/htdocs"

Относительно корневого пути приложение веб-сервера

Апачи получает путь к конфигурационному файлу и файлам логов (по умолчанию они находятся в подкаталогах conf/ и logs/ соответственно), к файлам модулей и другим необходимым для работы файлам.

Директива Listen

Предписывает серверу Apache прослушивать только определенные IP-адреса или порты. Listen является обязательной директивой и без ее определения запуск сервера завершится неудачей.

По умолчанию в файле конфигурации сервера Apache директива разрешает отвечать на запросы на любом IP-адресе устройства на порту 80:

Listen 80
# или так
#Listen *:80

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

Вы можете ограничить доступ к серверу определением директивы с конкретным IP-адресом, например для определения работы сервера только на локальном компьютере:

Listen 127.0.0.1:80

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

Директива DirectoryIndex
Перенаправляет запрос к индексному файлу если запрашивается каталог. DirectoryIndex устанавливает имя файла, который будет вызваться по умолчанию:
<IfModule dir_module>
    DirectoryIndex index. html index.php
</IfModule>

dir_module – это идентификатор модуля mod_dir.so. Соответственно, чтобы происходило автоматическое перенаправление на индексные файлы модуль mod_dir.so должен быть включен в файле конфигурации сервера httpd.conf:

LoadModule dir_module modules/mod_dir.so

 

Директива AddDefaultCharset
Определяет кодировку символов по умолчанию для запросов веб-страниц. Настройка кодировки заключается в добавлении директивы в файл httpd.conf, например:
AddDefaultCharset  UTF-8

После данных настроек HTTP-сервер Апачи готов к запуску. Можно использовать два варианта запуска: сервер как консольное приложение или как служба операционной системы Windows.

Запуск Апачи как приложение

Приложение запускается с командной строки. Для этого в окне командной строки перейти в каталог bin с исполняемым файлом httpd. exe:

C:\Users\UserPC>cd /d G:\MyProjects\Hosting\Apache24\bin
G:\MyProjects\Hosting\Apache24\bin>httpd.exe

Вызвать окно командной строки сразу в подкаталоге bin можно набрав команду cmd в адресной строке проводника Windows при открытой папки исполняемого файла httpd.exe и нажать Enter:

Отследить работающий сервер можно по работе сайтов либо в окне Диспетчера задач. Останавливается сервер Апачи в данном варианте запуска сочетанием клавиш Control + C в окне консоли с которой был запущен сервер либо классическим закрытием окна кнопкой-крестиком Закрыть. Перезапуск сервера при изменении файла конфигурации или других настроек производится клавишами Control + Break при активном окне консоли.

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

Запуск Апачи как служба

Данный вариант запуска предусматривает предварительную установку службы сервера Апачи . Для этого запускается командная строка от имени администратора, осуществляется переход в подкаталог bin и в окне набирается команда:

httpd.exe -k install
Удаление производится командой:
httpd.exe -k uninstall

Запуск, перезапуск, остановка осуществляется командами в окне командной строки находясь в подкаталоге bin установленного экземпляра Апачи :

httpd.exe -k start
httpd.exe -k restart
httpd.exe -k stop

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

Запуск: G:\MyProjects\Hosting\Apache24\bin\httpd. exe -k start
Рестарт: G:\MyProjects\Hosting\Apache24\bin\httpd.exe -k restart
Остановка: G:\MyProjects\Hosting\Apache24\bin\httpd.exe -k stop

На вашем устройстве пути до исполняемого файла соответственно будут другие. Ярлыки с командами для запуска сервера как служба требуют права администратора.

В комплекте с приложением Апачи идет утилита наблюдения за службами сервера под названием Apache Service Monitor. С помощью монитора можно наблюдать и управлять состоянием всех установленных служб Apache с отслеживанием статистики запусков и перезагрузок.

Apache Service Monitor позволяет запускать, перезапускать и останавливать службу Апачи. Запущенный монитор всегда находится на панели задач в системном трее. Данная утилита применима только в режимах запуска сервера в роли службы.

Утилиту можно добавить в автозапуск при загрузке операционной системы Windows. Для этого откройте каталог установки сервера Апачи и перейдите в подкаталог bin, где находится исполняемый файл ApacheMonitor.exe, затем командой из контекстного меню создайте для него ярлык. Нажмите клавиши Windows + R, в открывшемся окне напечатайте shell:startup, затем нажмите ОК. Откроется папка Автозагрузка, скопируйте и вставьте созданный ярлык файла ApacheMonitor.exe в папку Автозагрузка.

Ошибки при запуске Апачи

Для отслеживания ошибок при первых стартах сервера Апачи лучше запускать его с помощью командной строки, в котором печатаются ошибки, возникшие во время старта сервера. Apache Service Monitor в таких случаях выводит окно с малополезной информацией: Error. The requested operation has failed!.

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

chcp 1251

Наиболее частые ошибки при запуске сервера Апачи:

Ошибки при установке и удалении службы
Данные ошибки возникают при запуске командной строки без прав администратора.
G:\MyProjects\Hosting\Apache24\bin>chcp 1251
Текущая кодовая страница: 1251
G:\MyProjects\Hosting\Apache24\bin>httpd.exe -k install
Installing the 'Apache2.4' service
(OS 5)Отказано в доступе.  : AH00369: Failed to open the Windows service manager, perhaps you forgot to log in as Administrator? (Не удалось открыть диспетчер служб Windows, возможно, вы забыли войти в систему как администратор?) 
Ошибка при удалении службы:
G:\MyProjects\Hosting\Apache24\bin>chcp 1251
Текущая кодовая страница: 1251
G:\MyProjects\Hosting\Apache24\bin>httpd.exe -k uninstall
Removing the 'Apache2.4' service
(OS 5)Отказано в доступе.  : Ah20010: Failed to open the 'Apache2.4' service
Ошибки запуска. Сервер пытается прослушивать занятый порт 80
Ошибка случается при запуске Апачи посредством командной строки, как приложения или как службы:
G:\MyProjects\Hosting\Apache24\bin>chcp 1251
Текущая кодовая страница: 1251
G:\MyProjects\Hosting\Apache24\bin>httpd. exe
G:\MyProjects\Hosting\Apache24\bin>httpd.exe -k start
(OS 10013)Сделана попытка доступа к сокету методом, запрещенным правами доступа.  : AH00072: make_sock: could not bind to address [::]:80
(OS 10013)Сделана попытка доступа к сокету методом, запрещенным правами доступа.  : AH00072: make_sock: could not bind to address 0.0.0.0:80
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs
При ошибке запуска на занятом порту, веб-сервер должен успешно запускаться на любом свободном номере порта от 1024 до 65535, например:
Listen 127.0.0.1:8000 

Определить приложение, занимающее интересующий порт поможет утилита Windows Монитор Ресурсов, которая отображает все прослушиваемые порты операционной системы с именами и идентификаторами рабочих процессов. Вызывается утилита правой кнопкой на меню Пуск->Выполнить и в открывшемся окне напечатать команду resmon.exe, нажать кнопку Ok.

На картинке видно, что процесс System с PID 4 прослушивает порт 80, из-за чего сервер Апачи не может успешно стартовать. Под процессом System PID 4 с портами 80 могут работать:

  • — Службы SQL Server Reporting Services (SQLEXPRESS_XXXX) (имя службы ReportServer$SQLEXPRESS_XXXX)
  • — Служба веб-публикаций(имя службы W3SVC)
  • — Диспетчер служб IIS

Список не является исчерпывающим и зависит от конфигурации вашей операционной системы. После закрытия приложений и остановку служб занимающих порт 80 сервер Апачи запустится успешно.

Несколько веб-сайтов на localhost

Для работы на локалке с разными сайтами необходимо в конфигурационном файле веб-сервера Апачи определять виртуальные хосты и регистрировать желаемые веб-имена в файле hosts (файл hosts). Без создания виртуальных хостов все веб-имена, зарегистрированные в операционной системе Windows, будут ссылаться на документы, находящиеся в папке основного хоста DocumentRoot «${SRVROOT}/htdocs».

Для создания виртуальных хостов служит директива <VirtualHost>. . .</VirtualHost> определяющая область действия групп директив для конкретного хоста. Виртуальные хосты могут быть созданы на основе разных IP, имен сайтов и портов. Рекомендуемая форма определения директивы виртуальных хостов:

<VirtualHost IP:Port>
    DocumentRoot "Путь к документам"
    ServerName доменное-имя
    . . .
</VirtualHost>

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

<VirtualHost 192.168.1.35:80>
    DocumentRoot "G:\MyProjects\Hosting\IIS\localpythonsite"
    ServerName localpythonsite
    # Для виртуального хоста можно определить 
    # собственную кодировку, отличную от настроек других
    # вирутальных хостов.
    AddDefaultCharset utf-8

    # Other directives here
    <Directory />
        Require all granted	

    </Directory>
</VirtualHost>
.  . .
<VirtualHost 192.168.1.35:80>
    DocumentRoot "G:\MyProjects\Hosting\IIS\localphpmyadmin"
    ServerName localphpmyadmin

    # Other directives here
    <Directory />
        Require all granted	
        AllowOverride All
    </Directory>
</VirtualHost>

То же самое, но область запросов ограничена собственным устройством:

<VirtualHost 127.0.0.1:80>
    DocumentRoot "G:\MyProjects\Hosting\IIS\localpythonsite"
    ServerName localpythonsite
    . . .
    <Directory />
        . . .
    </Directory>
</VirtualHost>

<VirtualHost 127.0.0.1:80>
    DocumentRoot "G:\MyProjects\Hosting\IIS\localphpmyadmin"
    ServerName localphpmyadmin

    # Other directives here
    <Directory />
        . . .
    </Directory>
</VirtualHost>

Необходимо отметить, что если общее прослушивание веб-сервера Апачи определено как Listen *:80, то базовый веб-ресурс будет всегда доступен по локальной сети.

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

Настройки директивы <Directory>

<Directory> — группа директив, которые применяются только к указанному каталогу файловой системы, подкаталогам и их содержимому. Может определяться для каждого виртуального хоста отдельно. Основные директивы, используемые внутри <Directory>:

Require all
  •         Require all granted – доступ всем разрешено
  •         Require all denied – доступ всем отказан
По умолчанию в файле конфигурации httpd.conf веб-сервера Апачи установлен запрет доступа ко всем директориям:
<Directory />
    AllowOverride none
    Require all denied
</Directory>

Для конкретного каталога необходимо дополнительно разрешать доступ. Можно запретить доступ к отдельным каталогам, например:

# Определение сайтов на локалке
<VirtualHost 127.0.0.1:80>
    DocumentRoot "${SRVROOT}/htdocs"
    ServerName localhost

    # Все директории доступны
    <Directory />
        Require all granted	
    </Directory>

    # Но к директории /1 относительно корневого каталога доступ запрещен.
    <Directory "${SRVROOT}/htdocs/1">	
        Require all denied
    </Directory>
</VirtualHost>

 

AllowOverride

Директива позволяет переопределить настройки общего конфигурационного файла httpd.exe веб-сервера Apache для конкретного каталога через файл .htaccess. В нем вы можете переопределить практически все настройки веб-сайта, например: настройки PHP, создать перезапись URL-адресов и т. д.

Когда для директивы AllowOverride задано значение None, файлы . htaccess полностью игнорируются. В этом случае сервер даже не будет пытаться читать .htaccess. При значении AllowOverride All файлы .htaccess позволяют вносить изменения в конфигурацию для каждого каталога, игнорируя настройки базового файла httpd.conf.

Разработчики HTTP-сервера Apache рекомендуют полностью избегать использования .htaccess файлов, если у вас есть доступ к файлу конфигурации основного сервера httpd.conf. Использование .htaccess замедляет работу сервера, поскольку при каждом запросе URI сервер будет проверять файлы .htaccess во всех подкаталогах, встречающихся на пути до директории конечного ресурса. Например: alltech.com/moto/harley-davidson/streetbob – 4 проверки присутствия в каталогах файлов .htaccess.

Логи доступа и ошибок

Чтобы события ошибок и доступа к запрошенному URL не терялись в гуще информации общих логов сервера лучше определить собственные файлы логов для каждого виртуального хоста отдельно:

<VirtualHost 127. 0.0.1:80>
    # Здесь также можно определять константы
    Define DR "G:\MyProjects\Hosting\IIS\localphpmyadmin"
    DocumentRoot "${DR}"
    ServerName localphpmyadmin
    ErrorLog "${DR}\logs\error.log"
    CustomLog "${DR}\logs\access.log" common

    # Other directives here
    <Directory />
        Require all granted	
        AllowOverride All
    </Directory>
</VirtualHost>

Файл конфигурации httpd.conf

В качестве наглядного примера к статье прикреплен файл конфигурации http.conf, вам только необходимо прописать в нем пути до вашего каталога установки компонентов HTTP-сервера Апачи.

Скачать исходник

  • httpd-conf.zip
  • Размер: 7 Кбайт
  • Загрузки: 22
Похожая тематика
  • Веб сервер IIS, запуск и настройки
  • Установка PHP FastCGI на серверы Apache, IIS
Реклама
Хостинг UNIX
  • — Технологии: PHP, Python, Perl
  • — APC, Zend OPcache (PHP 5. 6, 7+), memcached
  • — VDS: Ubuntu, Debian, CentOS, Windows
  • — Тестовый период для всех услуг — 10 дней

Запуск Apache — HTTP-сервер Apache версии 2.4

Запуск Apache — HTTP-сервер Apache версии 2.4

HTTP-сервер Apache версии 2.4

Apache > HTTP-сервер > Документация > Версия 2.4

Доступные языки:  de  | ru  | да  | фр  | я | ко | tr 

В Windows Apache обычно запускается как служба. Дополнительные сведения см. в разделе Запуск Apache как службы.

В Unix программа httpd запускается как демон, который постоянно выполняется в фон для обработки запросов. В этом документе описывается, как вызывать httpd .

  • Как запускается Apache
  • Ошибки при запуске
  • Запуск во время загрузки
  • Дополнительная информация

См. также

  • Остановка и перезапуск
  • httpd
  • apachectl
  • Комментарии
900 02 Если Слушай указанный в конфигурационном файле, по умолчанию равен 80 (или любой другой порт ниже 1024), то необходимо иметь привилегии root в чтобы запустить apache, чтобы он мог привязаться к этому привилегированному порт. После запуска сервера и выполнения нескольких предварительных таких действий, как открытие файлов журнала, он запустит несколько дочерних процессов, выполняющих работу по прослушиванию и ответы на запросы от клиентов. Основной httpd процесс продолжает работать как пользователь root, но дочерние процессы запустить от имени менее привилегированного пользователя. Это контролируется выбранным Многопроцессорный модуль.

Рекомендуемый метод вызова httpd исполняемый файл должен использовать управляющий скрипт apachectl . Этот скрипт устанавливает определенные переменные среды, которые необходимы для httpd для правильной работы в некоторых операционных системы, а затем вызывает двоичный файл httpd . apachectl пройдет через любую командную строку аргументы, поэтому любые параметры httpd также могут использоваться с апачектл . Вы также можете напрямую редактировать скрипт apachectl , изменив HTTPD переменная в верхней части, чтобы указать правильное расположение httpd двоичный файл и любые аргументы командной строки, которые вы хочу быть всегда присутствует .

Первое, что делает httpd , когда вызывается для поиска и чтения файла конфигурации httpd.conf . Расположение этого файла установлено в время компиляции, но можно указать его местоположение при запуске время с использованием параметра командной строки -f , как в

/usr/local/apache2/bin/apachectl -f /usr/local/apache2/conf/httpd.conf

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

Если во время запуска Apache возникает фатальная проблема, он написать сообщение с описанием проблемы либо в консоль, либо к ErrorLog до выход. Одним из наиболее распространенных сообщений об ошибках является « Unable для привязки к порту ... ». Это сообщение обычно вызывается либо:

  • Попытка запустить сервер на привилегированном порту, когда войдите в систему как пользователь root; или
  • Попытка запустить сервер при наличии другого экземпляра Apache или другого веб-сервера, уже привязанного к тому же Порт.

Дополнительные инструкции по устранению неполадок см. FAQ по апачу.

Если вы хотите, чтобы ваш сервер продолжал работать после перезагрузитесь, вы должны добавить вызов apachectl в свой файлы запуска системы (обычно rc.local или файл в каталог rc.N ). Это запустит Apache как корень. Перед этим убедитесь, что ваш сервер правильно настроены для безопасности и ограничения доступа.

9Скрипт 0011 apachectl предназначен для работы в качестве стандартный сценарий инициализации SysV; он может принимать аргументы запуск , перезапуск и остановка и перевести их в соответствующие сигналы для httpd . Таким образом, вы часто можете просто связать apachectl в соответствующий каталог инициализации. Но будь Обязательно проверьте точные требования вашей системы.

Дополнительная информация об опциях командной строки httpd и apachectl а так же другая поддержка программы, входящие в состав сервера, доступны на Страница Сервер и вспомогательные программы. Также имеется документация по всем модулям, включенным в дистрибутив Apache. и директивы, которые они предоставлять.

Обратите внимание:
Это не раздел вопросов и ответов. Комментарии, размещенные здесь, должны указывать на предложения по улучшению документации или сервера и могут быть удалены нашими модераторами, если они реализованы или считаются недействительными/не по теме. Вопросы о том, как управлять HTTP-сервером Apache, следует направлять либо на наш IRC-канал #httpd, на Libera.chat, либо в наши списки рассылки.

Как заставить Apache запускаться во время загрузки в Linux?

спросил

Изменено 5 лет, 10 месяцев назад

Просмотрено 160 тысяч раз

Я установил Apache 2 из исходного кода на свой компьютер с Linux. apachectl -k start работает нормально, но как заставить Apache запускаться во время загрузки?

Это в дистрибутиве Red Hat Linux:

Linux 2.6.9-55.ELsmp #1 SMP Пт, 20 апреля 17:03:35 по восточному поясному времени 2007 i686 i686 i386 GNU/Linux

  • linux
  • апач -2.2
  • запуск
1

Вы хотите добавить сценарий инициализации на соответствующий уровень выполнения. Сценарий инициализации обычно имеет вид /etc/init.d/apache2 , где вы можете вручную запустить /etc/init.d/apache2 start 9.0012, чтобы запустить его.

В Gentoo вы должны написать:

 rc-update добавить apache2 default
 

В Ubuntu/Debian это работает:

 sudo update-rc.d apache2 defaults
 

В Red Hat Linux/Fedora/CentOS небольшой поиск в Google показывает следующее:

 chkconfig --add httpd
 

Немного отличается от дистрибутива к дистрибутиву, но идея обычно одна и та же. По сути, все эти команды создают символическую ссылку из /etc/init.d/ в соответствующую папку уровня запуска в /и т.д./ .

2

Вот что у меня наконец сработало. Это предполагает, что вы являетесь пользователем root.

  1. vi /etc/init.d/apache2 (отредактируйте его, как показано ниже)
  2. chmod 755 /etc/init.d/apache2
  3. chkconfig --добавить apache2
  4. chkconfig --list apache2 (для проверки работоспособности)

Содержимое /etc/init. d/apache2:

#!/бин/баш
#
# apache2 Сценарий запуска для HTTP-сервера Apache
#
# chkconfig: 3 85 15
# описание: Apache — это сервер World Wide Web. Он используется для обслуживания \
# HTML-файлы и CGI.
/usr/local/apache2/bin/apachectl $@
 

Вы можете получить уровень запуска, запустив /sbin/runlevel, который в моем случае был 3. И, конечно же, вам нужно вызвать свою версию apachectl, которая в моем случае была /usr/local/apache2/bin/apachectl

Спасибо за следующее:

  • Ответ от Эвана Терана +1 за помощь
  • Ответ от Russell Heilling + 1 за помощь
  • человек chkconfig
  • Эта ссылка от sysdigg, содержащая информацию об уровне запуска.
3

Проверьте, есть ли у вас сценарий инициализации httpd в каталоге /etc/rc.d . Если да, то вы можете просто запустить следующую команду, которая запустит службу httpd во время загрузки.

 chkconfig --level 345 httpd on
 

Если у вас нет сценария инициализации, просто добавьте к файлу /etc/rc. local команду apachectl -k start (команда для запуска Apache).

Поскольку вы установили исходный код, сценарий инициализации не будет установлен в каталоге /etc/init.d/. Бинарный файл apachectl спроектирован так, чтобы быть совместимым со стандартными параметрами сценария инициализации, поэтому вы вполне можете просто создать символическую ссылку на него, а не создавать сценарий-оболочку (например, ln -s /usr/local/sbin/apachectl /etc/init.d/ апач)

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

Ссылка: Документация Apache http://httpd.apache.org/docs/2.2/invoking.html

Запуск во время загрузки

Если вы хотите, чтобы ваш сервер продолжал работать после перезагрузки системы, вы должны добавить вызов apachectl в файлы запуска вашей системы (обычно это rc.local или файл в каталоге rc.N). Это запустит Apache как root. Перед этим убедитесь, что ваш сервер правильно настроен для безопасности и ограничений доступа.

Сценарий apachectl действует как стандартный сценарий инициализации SysV; он может принимать аргументы запуска, перезапуска и остановки и преобразовывать их в соответствующие сигналы для httpd. Таким образом, вы часто можете просто связать apachectl с соответствующим каталогом инициализации. Но не забудьте проверить точные требования вашей системы.

1

Это зависит от вашей версии Linux. Предполагая, что файл /etc/init.d/apache2 создан, попробуйте:

 chkconfig-aapache2
 

или

 update-rc.d apache2 по умолчанию
 

Один из них должен работать.

1

chkconfig --levels 345 httpd

запустит httpd на уровнях выполнения 3,4,5.

chkconfig --list покажет все службы и их текущие уровни запуска. 345 является типичным для сетевой службы.

1

В Red Hat Linux есть полезная утилита ntsysv, которая позволяет вам выбирать, какие службы вы хотите запустить на текущем уровне выполнения.