Отсутствует каталог var после установки Apache httpd - PullRequest
1 голос
/ 05 января 2012

Я установил apache httpd на мой Linux-VM и хотел запустить его сервис. Но я получаю ошибку (13)Permission denied. Error retrieving pid file run/httpd.pid Я понял, что у меня нет этого файла. Даже не каталог VAR. Какие-нибудь решения для этого? Прошу прощения, это мой первый раз касающийся серверов.

Я установил apache так:

gzip -d httpd-2.2.21.tar.gz

tar xvf httpd-2.2.21.tar

./configure --prefix=/home/Hend/Desktop/Server

make

make install

Ответы [ 2 ]

3 голосов
/ 06 января 2012

У вас есть несколько альтернатив для этого:

Установите apache в пользовательский каталог, запустите от имени пользователя без полномочий root

Так вы начали это делать.Но тогда вам придется:

  • Добавить некоторые настройки в стартовый скрипт или, по крайней мере, передать ему достаточно переменных окружения, чтобы сообщить ему, где находятся файл конфигурации / pidfile / и т.д.
  • Измените всю конфигурацию Apache, так как по умолчанию используются каталоги, к которым у вас нет доступа.Например, вы должны поместить ваш DocumentRoot в другое место, чем /var/www
  • Запустить сервер на нестандартном порту.Поскольку непривилегированные пользователи не могут запускать службы на портах ниже 1024, необходимо запустить apache на другом порту, например 8000 вместо 80.Но в этом случае все ваши URL будут выглядеть как http://example.com:8000 вместо http://example.com.

Установить apache из исходников, в /usr/local

Вы можете установить apache по умолчаниюпуть для материала, не являющегося частью дистрибутива, то есть /usr/local вместо /usr/.То есть используйте --prefix=/usr/local/ при запуске configure.Таким образом, все должно быть намного проще.В любом случае вам придется запустить веб-сервер из root и настроить его на изменение пользователя только после открытия сокета.

Установить apache из исходных кодов в /usr/

. Вы можететакже установите apache в его папку по умолчанию, usint --prefix=/usr/.Таким образом, все должно быть намного проще, он должен устанавливать сценарии инициализации в обычном месте /etc/init.d/apache2 или /etc/init.d/httpd, конфигурацию в /etc/apache2 и т. Д. Помните, что при этом все установленные файлы apache будут конфликтовать с файлами предоставленной версии.по вашему дистрибутиву linux!

Установите apache из вашего менеджера дистрибутива

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

Преимущества этого:

  • Избегайте огромных процессов настройки + конфигурирования, чтобы сделать этоwork
  • Версии вашего дистрибутива должны быть "гарантированно" стабильными и протестированы со всеми остальными программами, поставляемыми с ним.Не всегда последняя версия лучше.
  • Каждый раз, когда обновляется новый выпуск (или, что более важно, происходит обновление безопасности), вы можете обновить его полуавтоматически, выполнив одну команду обновления, не беспокоясь ово время обновления все идет не так.
  • Таким образом, вся установка зависит от пары команд.

Например, для Debian:

apt-get install apache2

Вкл.fedora:

yum install httpd

и т. д.

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

/etc/init.d/apache2 start

или

/etc/init.d/httpd start

Работа выполнена.Теперь просто поместите материал в /var/www/ (или эквивалентный каталог, в зависимости от дистрибутива) и просмотрите его через веб-сервер.

1 голос
/ 05 января 2012

Вы должны запустить apache от имени root

Читали ли вы документы в исходном дистрибутиве?

т.е. УСТАНОВИТЬ

less INSTALL

  For complete installation documentation, see [ht]docs/manual/install.html or
  http://httpd.apache.org/docs/2.2/install.html

     $ ./configure --prefix=PREFIX
     $ make
     $ make install
     $ PREFIX/bin/apachectl start
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...