Не могу найти `a2dissite` и `a2ensite` после сборки `apache2` из исходного кода на Mint17

Не могу найти `a2dissite` и `a2ensite` после сборки `apache2` из исходного кода на Mint17

После строительстваhttp-сервер apache2из источника (2.4.23) У меня нет команд a2dissiteи a2ensite.

Конфигурация была:

./configure --with-included-apr --prefix=/usr/local/apache2

Когда я бегу:

whereis apache2

Я получил:

apache2: /etc/apache2 /usr/local/apache2

Но which apache2ничего не показывает, может быть, нужна какая-то символическая ссылка на /usr/bin? http://localhostработает нормально.

Информация о версии источника:

/usr/local/apache2/bin/apachectl -v Server version: Apache/2.4.23 (Unix) Server built: Nov 1 2016 22:52:26

Версия для Linux:

linux mint 17
3.13.0-37-generic #64-Ubuntu SMP Mon Sep 22 21:28:38 UTC 2014 x86_64 

решение1

Я предполагаю, что вы построили из исходного кода, доступного на Apache Software Foundation. Скрипты a2en...(и поддерживающая конфигурация) специфичны для Debian; вы найдете исходный код в соответствующемРепозиторий Debian.

Лучшим вариантом для сборки httpdсервера из исходного кода и сохранения возможности его использования a2ensiteявляется использование исходного пакета Debian:

sudo apt-get install devscripts dpkg-dev build-essential
sudo apt-get build-dep apache2
dget http://httpredir.debian.org/debian/pool/main/a/apache2/apache2_2.4.23-5.dsc
cd apache2-2.4.23
dpkg-buildpackage -us -uc

Первые две команды устанавливают пакеты, необходимые для сборки apache2; затем dgetзагружают и извлекают исходный пакет, dpkg-buildpackageсобирают его и создают серию .debпакетов, которые вы можете установить вручную, dpkgкак обычно.

Если build-depстрока не работает, то эквивалентно следующее apache2:

sudo apt-get install debhelper lsb-release libaprutil1-dev libapr1-dev libpcre3-dev zlib1g-dev libnghttp2-dev libssl-dev perl liblua5.2-dev libxml2-dev autotools-dev gawk dh-systemd

решение2

Не делайте символических ссылок на /usr/bin. Это крайне плохая идея, и вам не следует этого делать.

Почему? Потому что большая часть /usr, включая /usr/bin, зарезервирована для менеджера пакетов. Все, что не является менеджером пакетов, включая вас, не должно трогать вещи там.

/usr/localсуществует для предоставления места для установки локально скомпилированного программного обеспечения. Обычно вы указываете /usr/localкак префикс, а не /usr/local/apache2. (Кстати, префикс — это то, что добавляется к пути bin, пути библиотеки и т. д. Так, например, инструменты командной строки Apache будут помещены в $PREFIX/bin, его библиотеки будут помещены в $PREFIX/lib/apache2и т. д.)

Решение вашей проблемы — добавить /usr/local/apache2/binв список путей, которые ваша оболочка использует для поиска двоичных файлов. Обычно это называется $PATHили просто «ваш путь», и его можно изменить с помощью команды типа:

export PATH="/usr/local/apache2/bin:$PATH"

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

При всем при этом я подозреваю, что вы все равно не найдете a2ensiteили a2dissite. Если я правильно помню, обе эти команды были добавлены разработчиками Debian, а затем унаследованы оттуда Mint. Поэтому они не включены в исходный код Apache. Стивена Киттаотличный ответрасскажет вам, как получить эти команды.

Связанный контент