답변:
다음을 수행해야합니다.
apt-cache showpkg <pachagename>
위 명령은이 패키지에 사용 가능한 버전 목록을 표시합니다. 그런 다음 필요한 버전을 선택하고 다음을 수행하십시오.
apt-get install <packagename>=<complete version name>
예:
apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7
리포지토리에없는 Ubuntu 배포판에 Apache 2.2를 설치하는 방법.
요구 사항
이를 위해 build-essentials 패키지가 설치되어 있어야합니다.
~# sudo apt-get install build-essential
Apache가 출력을 지원하는 브라우저로 출력을 압축 할 수있게하려면 zlib를 설치해야합니다. zlip Hompage (zlib-1.2.11.tar.gz 작성) 에서 현재 릴리스를 다운로드하여 압축을 풀고 추출 된 폴더로 이동하여 빌드 및 설치하십시오.
wget http://www.zlib.net/zlib-1.2.11.tar.gz
tar -xvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local
make
sudo make install
Apache 2.2 설치
Apache 다운로드 페이지 ( 현재 작성중인 httpd-2.2.32.tar.gz) 에서 현재 버전을 다운로드하고 압축을 풀고 추출 된 폴더로 이동하여 빌드 및 설치하십시오.
wget http://www-eu.apache.org/dist/httpd/httpd-2.2.32.tar.gz
tar -xvf httpd-2.2.32.tar.gz
cd httpd-2.2.32/
./configure --prefix=/usr/local/apache2 --enable-mods-shared=all --enable-deflate --enable-proxy --enable-proxy-balancer --enable-proxy-http
make
sudo make install
Apache를 시작하십시오.
sudo /usr/local/apache2/bin/apachectl start
모든 것이 정상인지 확인
브라우저에서 http : // localhost 로 이동하면 “작동합니다!”라는 메시지가 표시됩니다.
또는 터미널을 통해이 작업을 수행 할 수 있습니다.
wget -qO- http://localhost | grep "It works!"
터미널에서 다음과 같이 출력해야합니다.
<html><body><h1>It works!</h1></body></html>
Apache2에 대한 "서비스"작성
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22
힌트 : 이제 sudo service apache22를 사용 하여 apachectl을 호출 할 수 있습니다 .
부팅 할 때 Apache를 시작합니다
sudo sed -i '2i #\n### BEGIN INIT INFO\n# Provides: apache2\n# Required-Start: $remote_fs\n# Required-Stop: $remote_fs\n# Default-Start: 2 3 4 5\n# Default-Stop: 0 1 6\n# Description: apache2\n# Short-Description: The Apache webserver\n### END INIT INFO' /etc/init.d/apache22
sudo /usr/sbin/update-rc.d apache22 defaults
안전한 아파치
sudo service apache22 stop
sudo adduser --system apache
sed -i -e 's/User daemon/User apache/g' /usr/local/apache2/conf/httpd.conf
sed -i -e 's/Group daemon/Group nogroup/g' /usr/local/apache2/conf/httpd.conf
sudo service apache22 start
새로운 설정 확인
ps -aux | grep httpd
마지막 명령의 터미널 출력에 "apache"로 시작하는 일부 행이 표시되면 모든 것이 정상입니다.
사이트 구성
하나의 사이트에 대해서만 아파치를 구성하려면 httpd.conf를 편집하십시오.
nano /usr/local/apache2/conf/httpd.conf
수정해야 할 필수 매개 변수는 다음과 같습니다.
ServerName www.example.com:80
DocumentRoot "/usr/local/apache2/htdocs"
<Directory "/usr/local/apache2/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
둘 이상의 사이트를 구성하려면 httpd-vhosts.conf를 살펴보십시오.
nano /usr/local/apache2/conf/httpd.conf
VitualHost의 문서 루트에 대해 위의 <VirtualHost>와 함께 <Directory> 섹션을 추가해야합니다. 예를 들면 다음과 같습니다.
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot "/usr/local/apache2/docs/dummy-host.example.com"
ServerName dummy-host.example.com
ServerAlias www.dummy-host.example.com
ErrorLog "logs/dummy-host.example.com-error_log"
CustomLog "logs/dummy-host.example.com-access_log" common
<Directory "/usr/local/apache2/docs/dummy-host.example.com">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
/etc/init.d/apache2
완전히 다른 내용의 파일 이 이미 있습니다.
sudo service apachectl stop
서비스는 중지되지 않습니다.
패키지 고정 에 대한 우분투 하우투를 참조하십시오 .
파일 편집 /etc/apt/preferences
'기본 설정'파일은 실제 고정이 수행되는 위치입니다. 패키지를 고정하려면 핀 우선 순위를 더 높은 숫자로 설정하십시오. 예를 들면 다음과 같습니다.
Package: apache2
Pin: release n=raring
Pin-Priority: 1000
테스트 실행하기 전에 apt-get update
나 apt-get install
에apt-cache policy apache2
자세한 내용 man apt_preferences
을 참조하십시오. raring
이 방법으로 2.2.x 분기에서 여전히 업데이트를받을 수 있기 때문에 고정 릴리스를 선택했습니다 . raring
의 리포지토리 URL 을 추가하여 APT에서 패키지를 사용할 수 있도록해야 합니다.
업데이트 :
raring
EOL과 마찬가지로 http://old-releases.ubuntu.com 에서 여전히 지원되는 패키지 precise
또는 아카이브 된 raring
패키지를 사용할 수 있습니다 .
이것을 사용하면 /etc/apt/sources.list.d/raring.list
오래된 패키지를 설치할 수 있습니다.
deb http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-updates main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-backports main restricted universe multiverse
deb http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
deb-src http://old-releases.ubuntu.com/ubuntu/ raring-proposed main restricted universe multiverse
raring
. 물론 precise
버전 을 사용하려면 /etc/apt/preferences
그에 따라 변경해야합니다.
apache2.2를 설치하려면 다음 프로세스를 사용하십시오.
이후 배포판 (예 : 16.04)에서 Apache 사이트에서 2.2.31을 다운로드했습니다.
다음 구성을 사용하여 빌드했습니다.
./configure --enable-so --enable-ssl --with-included-apr --enable-mods-shared=all --enable-load-all-modules --enable-rewrite --enable-proxy --enable-proxy_connect --enable-proxy_http --enable-proxy_ajp --enable-authn_alias --with-npm=prefork --enable-proxy_balancer --enable-proxy_ftp --enable-cache --enable-suexec --enable-disk_cache > conf.txt
물론 httpd.conf 및 ssl.conf 파일을 조정하십시오.
그 후 나는 단지 ./httpd -k start를 실행한다.
그리고 작동합니다!
apt-get을 통해 apache2.4를 추가했지만 제거하지는 않았습니다. 이것은 시스템 시작 후 apache2 프로세스를 종료해야 함을 의미합니다. 그런 다음 아파치 2.2를 시작할 수 있습니다. 나는 apachectl을 사용하기 위해 apache2.4를 설치해야했지만 나중에 ./httpd를 사용하기 때문에 그것을 버렸다.
Ubuntu 13.04에서 13.10으로 업그레이드 했습니까? 우분투 패키지 저장소 외부로 나가지 않고 Apache 2.2를 다시 가져올 수있는 방법이 없습니다. 2.4에서 작동하도록 Apache 구성을 수정하는 것이 좋습니다.