건축 후아파치2 http 서버소스에서 (2.4.23a2dissite
) 및 명령이 없습니다 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 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...
(및 지원 구성)는 데비안에 따라 다릅니다. 해당하는 소스 코드를 찾을 수 있습니다.데비안 저장소.
소스에서 서버 를 구축 httpd
하고 계속 사용할 수 있는 가장 좋은 방법 a2ensite
은 데비안 소스 패키지를 사용하는 것입니다:
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
. 내가 정확하게 기억한다면 이 두 명령은 모두 데비안 개발자가 추가한 다음 Mint가 상속한 것입니다. 따라서 업스트림 Apache 소스 코드에는 포함되지 않습니다. 스티븐 키트의훌륭한 답변이러한 명령을 얻는 방법을 알려 드리겠습니다.