Câu trả lời:
Bạn cần làm như sau:
apt-cache showpkg <pachagename>
Lệnh trên sẽ hiển thị danh sách các phiên bản có sẵn cho gói này. Sau đó chọn phiên bản cần thiết và làm như sau.
apt-get install <packagename>=<complete version name>
Thí dụ:
apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7
Cách cài đặt Apache 2.2 trên một bản phân phối Ubuntu không có trong kho.
Yêu cầu
Bạn cần cài đặt gói xây dựng cần thiết để thực hiện việc này.
~# sudo apt-get install build-essential
Để cung cấp cho Apache khả năng nén đầu ra cho các trình duyệt hỗ trợ nó, bạn cần cài đặt zlib. Tải xuống bản phát hành hiện tại từ zlip Hompage (zlib-1.2.11.tar.gz khi viết), giải nén nó, điều hướng đến thư mục giải nén, xây dựng và cài đặt.
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
Cài đặt Apache 2.2
Tải xuống phiên bản hiện tại từ Trang tải xuống Apache (httpd-2.2.32.tar.gz khi viết), giải nén nó, điều hướng đến thư mục được trích xuất, xây dựng và cài đặt.
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
Bắt đầu Apache:
sudo /usr/local/apache2/bin/apachectl start
Kiểm tra, nếu mọi thứ đều ổn
Điều hướng đến http: // localhost trong trình duyệt của bạn, nơi bạn sẽ thấy một thông báo nói rằng Nó hoạt động!
Thay đổi, bạn có thể làm điều này thông qua thiết bị đầu cuối:
wget -qO- http://localhost | grep "It works!"
Mà sẽ xuất ra một cái gì đó như thế này trong thiết bị đầu cuối:
<html><body><h1>It works!</h1></body></html>
Tạo "dịch vụ" cho Apache2
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22
Gợi ý: bạn có thể gọi apachectl với dịch vụ sudo apache22 ngay bây giờ.
Làm cho Apache bắt đầu lúc khởi động
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
Bảo mật Apache
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
Kiểm tra cài đặt mới
ps -aux | grep httpd
Nếu đầu ra cuối của lệnh cuối cùng hiển thị một số dòng bắt đầu bằng "apache" thì mọi thứ đều ổn.
Định cấu hình (các) trang web của bạn
Nếu bạn muốn định cấu hình apache của mình cho chỉ một trang web, chỉ cần chỉnh sửa httpd.conf
nano /usr/local/apache2/conf/httpd.conf
Các tham số thiết yếu bạn có thể muốn sửa đổi là:
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>
Nếu bạn muốn định cấu hình nhiều trang web, hãy xem httpd-vhosts.conf
nano /usr/local/apache2/conf/httpd.conf
Bạn sẽ phải thêm phần <Directory> với <Virtualhost> tương tự như phần trên, nhưng đối với thư mục gốc của Vitualhost. Ví dụ:
<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
tệp có nội dung hoàn toàn khác nhau.
sudo service apachectl stop
không dừng dịch vụ.
Xem hướng dẫn ubfox trên ghim gói :
Chỉnh sửa tập tin /etc/apt/preferences
Tệp 'ưu tiên' là nơi diễn ra việc ghim thực tế. Để ghim một gói, đặt Ưu tiên Pin của nó thành số cao hơn. Đây là một ví dụ:
Package: apache2
Pin: release n=raring
Pin-Priority: 1000
Kiểm tra trước khi chạy apt-get update
hoặc apt-get install
vớiapt-cache policy apache2
Xem man apt_preferences
để biết chi tiết. Tôi đã chọn raring
phát hành ghim bởi vì theo cách này, bạn vẫn sẽ nhận được các bản cập nhật trên nhánh 2.2.x. Đừng quên rằng bạn phải cung cấp gói cho APT bằng cách thêm raring
URL kho lưu trữ.
Cập nhật :
Cũng như raring
EOL, bạn có thể sử dụng các gói vẫn được hỗ trợ precise
hoặc được lưu trữ raring
từ http://old-release.ubfox.com .
Sử dụng điều này như /etc/apt/sources.list.d/raring.list
sẽ cho phép bạn cài đặt các gói cũ hơn:
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
. Tất nhiên nếu bạn muốn sử dụng precise
phiên bản, thì /etc/apt/preferences
cũng phải thay đổi.
Để cài đặt apache2.2, sử dụng quy trình sau:
Trong một bản phân phối sau (ví dụ 16.04), tôi đã tải xuống 2.2.31 từ trang web Apache.
Tôi đã xây dựng nó bằng cách sử dụng cấu hình sau:
./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
Sau đó, tất nhiên điều chỉnh các tệp httpd.conf và ssl.conf.
Sau đó tôi mới chạy ./httpd -k start
Và nó hoạt động !
lưu ý rằng tôi đã thêm apache2.4 qua apt-get nhưng không bao giờ xóa nó. Điều này có nghĩa là sau khi hệ thống khởi động, tôi cần phải giết tiến trình apache2. Và sau đó tôi có thể bắt đầu apache2.2. Tôi đã phải cài đặt apache2.4 để sử dụng apachectl nhưng sau đó đã giải tán nó vì tôi sử dụng ./httpd
Bạn đã nâng cấp từ Ubuntu 13.04 lên 13.10? Không có cách nào để đưa Apache 2.2 trở lại mà không đi ra ngoài kho gói Ubuntu. Tốt hơn hết là chỉ sửa cấu hình Apache của bạn để nó hoạt động với 2.4.