Réponses:
Vous devez effectuer les opérations suivantes:
apt-cache showpkg <pachagename>
La commande ci-dessus affichera la liste des versions disponibles pour ce package. Sélectionnez ensuite la version requise et procédez comme suit.
apt-get install <packagename>=<complete version name>
Exemple:
apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7
Comment installer Apache 2.2 sur une distribution Ubuntu qui ne l'a pas dans les référentiels.
Exigences
Pour ce faire, vous devez avoir installé le package build-essentials.
~# sudo apt-get install build-essential
Pour donner à Apache la possibilité de compresser la sortie vers les navigateurs qui le prennent en charge, vous devez installer zlib. Téléchargez la version actuelle à partir de zlip Hompage (zlib-1.2.11.tar.gz au moment de l'écriture), extrayez-la, accédez au dossier extrait, générez et installez.
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
Installez Apache 2.2
Téléchargez la version actuelle à partir de la page de téléchargement Apache (httpd-2.2.32.tar.gz au moment de l'écriture), extrayez-la, accédez au dossier extrait, générez et installez.
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
Démarrez Apache:
sudo /usr/local/apache2/bin/apachectl start
Vérifiez, si tout va bien
Accédez à http: // localhost dans votre navigateur, où vous devriez voir un message disant "Ça marche!".
Alternativement, vous pouvez le faire via le terminal:
wget -qO- http://localhost | grep "It works!"
Qui devrait sortir quelque chose comme ça dans le terminal:
<html><body><h1>It works!</h1></body></html>
Créer un "service" pour Apache2
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22
Astuce: vous pouvez appeler apachectl avec le service sudo apache22 maintenant.
Faire démarrer Apache au démarrage
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 sécurisé
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
Vérifier les nouveaux paramètres
ps -aux | grep httpd
Si la sortie du terminal de la dernière commande affiche des lignes commençant par "apache", alors tout est OK.
Configurez votre site (s)
Si vous souhaitez configurer votre apache pour un seul site, modifiez simplement le httpd.conf
nano /usr/local/apache2/conf/httpd.conf
Les paramètres essentiels que vous voudrez peut-être modifier sont:
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>
Si vous souhaitez configurer plusieurs sites, consultez httpd-vhosts.conf
nano /usr/local/apache2/conf/httpd.conf
Vous devrez ajouter une section <Directory> contenant le <VirtualHost> similaire à celui ci-dessus, mais pour la racine du document du VitualHost. Par exemple:
<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
fichier avec un contenu radicalement différent.
sudo service apachectl stop
n'arrête pas le service.
Voir le guide ubuntu sur l' épinglage de paquet :
Modifier le fichier /etc/apt/preferences
Le fichier «préférences» est l'endroit où l'épinglage a lieu. Pour épingler un package, définissez sa priorité d'épingle sur un nombre plus élevé. Voici un exemple:
Package: apache2
Pin: release n=raring
Pin-Priority: 1000
Testez avant de courir apt-get update
ou apt-get install
avecapt-cache policy apache2
Voir man apt_preferences
pour plus de détails. J'ai choisi la version de pinning raring
parce que de cette façon, vous obtiendrez toujours des mises à jour sur la branche 2.2.x. N'oubliez pas que vous devez mettre le package à la disposition d'APT en ajoutant raring
les URL du référentiel.
Mise à jour :
Tout raring
comme EOL, vous pouvez utiliser les packages toujours pris en charge precise
ou archivés raring
sur http://old-releases.ubuntu.com .
L'utilisation de ceci /etc/apt/sources.list.d/raring.list
vous permettra d'installer des packages plus anciens:
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
. Bien sûr, si vous souhaitez utiliser la precise
version, vous /etc/apt/preferences
devez également la modifier en conséquence.
Pour installer apache2.2, utilisez le processus suivant:
Sur une distribution ultérieure (par exemple 16.04), j'ai téléchargé le 2.2.31 depuis le site Apache.
Je l'ai construit en utilisant la configuration suivante:
./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
Ensuite, bien sûr, peaufiner les fichiers httpd.conf et ssl.conf.
Après cela, je lance simplement le ./httpd -k start
Et il fonctionne !
notez que j'ai ajouté l'apache2.4 via apt-get mais ne l'ai jamais supprimé. Cela signifie qu'après le démarrage du système, j'ai besoin de tuer le processus apache2. Et puis je suis capable de démarrer apache2.2. J'ai dû installer apache2.4 pour utiliser apachectl, mais je l'ai dissous plus tard car j'utilise ./httpd
Vous êtes passé d'Ubuntu 13.04 à 13.10? Il n'y a aucun moyen de récupérer Apache 2.2 sans sortir des référentiels de packages Ubuntu. Il est préférable de simplement corriger votre configuration Apache pour qu'elle fonctionne avec 2.4.