Відповіді:
Вам потрібно зробити наступне:
apt-cache showpkg <pachagename>
Наведена вище команда відобразить список доступних версій для цього пакета. Потім виберіть потрібну версію і виконайте наступне.
apt-get install <packagename>=<complete version name>
Приклад:
apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7
Як встановити Apache 2.2 в дистрибутиві Ubuntu, який не має його у сховищах.
Вимоги
Для цього потрібно встановити пакунок build-essentials.
~# sudo apt-get install build-essential
Щоб надати Apache можливість стискати вихід до браузерів, які його підтримують, потрібно встановити zlib. Завантажте поточний реліз із Hompa zlip (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
Підказка: зараз ви можете зателефонувати на apachectl за допомогою служби sudo apache22 .
Зробіть 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
Безпечний 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
Перевірте нові налаштування
ps -aux | grep httpd
Якщо на термінальному виході останньої команди показано кілька рядків, що починаються з "apache", то все в порядку.
Налаштування веб-сайтів
Якщо ви хочете налаштувати 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
Вам доведеться додати розділ <Каталог>, утримуючи <VirtualHost>, подібний до вищевказаного, але для кореня документа VitualHost. Наприклад:
<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
не зупиняє послугу.
Дивіться інструкцію щодо ubuntu на закріпленні пакета :
Редагувати файл /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. Не забувайте, що вам потрібно зробити пакет доступним для APT, додавши raring
URL-адреси сховища.
Оновлення :
Як raring
і EOL, ви можете або все ще підтримувати precise
або архівувати raring
пакунки з http://old-releases.ubuntu.com .
Використання цього /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) я завантажив 2.2.31 з сайту Apache.
Я побудував його за допомогою наступної конфігурації:
./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
І це працює!
зауважте, що я додав apache2.4 через apt-get, але ніколи не видаляв його. Це означає, що після запуску системи мені потрібно вбити процес apache2. І тоді я в змозі запустити apache2.2. Мені довелося встановити apache2.4, щоб використовувати apachectl, але пізніше його розпустили, оскільки я використовую ./httpd
Ви модернізували з Ubuntu 13.04 до 13.10? Немає можливості повернути Apache 2.2 назад, не виходячи за межі сховищ пакетів Ubuntu. Краще просто виправити конфігурацію Apache, щоб вона працювала з 2.4.