Respuestas:
Debes hacer lo siguiente:
apt-cache showpkg <pachagename>
El comando anterior mostrará la lista de versiones disponibles para este paquete. Luego seleccione la versión necesaria y haga lo siguiente.
apt-get install <packagename>=<complete version name>
Ejemplo:
apt-cache showpkg apache2
apt-get install apache2=2.2.14-5ubuntu8.7
Cómo instalar Apache 2.2 en una distribución de Ubuntu que no lo tiene en los repositorios.
Requisitos
Necesitas tener el paquete build-essentials instalado para hacer esto.
~# sudo apt-get install build-essential
Para darle a Apache la capacidad de comprimir la salida a los navegadores que lo admiten, debe instalar zlib. Descargue la versión actual de zlip Hompage (zlib-1.2.11.tar.gz en el momento de la escritura), extráigala, navegue a la carpeta extraída, compile e instale.
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
Instalar Apache 2.2
Descargue la versión actual de la página de descarga de Apache (httpd-2.2.32.tar.gz al momento de la escritura), extráigala, navegue a la carpeta extraída, compile e instale.
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
Inicie Apache:
sudo /usr/local/apache2/bin/apachectl start
Comprueba si todo está bien
Navegue a http: // localhost en su navegador, donde debería ver un mensaje que dice "¡Funciona!".
Alternativamente, puede hacerlo a través de la terminal:
wget -qO- http://localhost | grep "It works!"
Lo que debería generar algo como esto en la terminal:
<html><body><h1>It works!</h1></body></html>
Crear "servicio" para Apache2
sudo cp /usr/local/apache2/bin/apachectl /etc/init.d/apache22
sudo chmod +x /etc/init.d/apache22
Sugerencia: puede llamar a apachectl con el servicio sudo apache22 ahora.
Hacer que Apache comience en el momento del arranque
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 seguro
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
Verificar nuevas configuraciones
ps -aux | grep httpd
Si la salida del terminal del último comando muestra algunas líneas que comienzan con "apache", entonces todo está bien.
Configure su (s) sitio (s)
Si desea configurar su apache para un solo sitio, simplemente edite httpd.conf
nano /usr/local/apache2/conf/httpd.conf
Los parámetros esenciales que es posible que desee modificar son:
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 desea configurar más de un sitio, eche un vistazo a httpd-vhosts.conf
nano /usr/local/apache2/conf/httpd.conf
Deberá agregar una sección <Directorio> dentro del <VirtualHost> similar al anterior, pero para la raíz del documento del VitualHost. Por ejemplo:
<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
archivo con contenido radicalmente diferente.
sudo service apachectl stop
no detiene el servicio.
Vea el tutorial de ubuntu sobre la fijación de paquetes :
Editar archivo /etc/apt/preferences
El archivo de 'preferencias' es donde tiene lugar la fijación real. Para anclar un paquete, establezca su Prioridad de pin en un número mayor. Aquí hay un ejemplo:
Package: apache2
Pin: release n=raring
Pin-Priority: 1000
Prueba antes de correr apt-get update
o apt-get install
conapt-cache policy apache2
Ver man apt_preferences
para más detalles. Elegí raring
el lanzamiento de pinning porque de esta manera todavía recibirás actualizaciones en la rama 2.2.x No olvide que debe hacer que el paquete esté disponible para APT agregando raring
las URL del repositorio.
Actualización :
Al igual raring
que EOL, puede usar los paquetes aún compatibles precise
o archivados raring
de http://old-releases.ubuntu.com .
Usar esto como /etc/apt/sources.list.d/raring.list
le permitirá instalar paquetes más antiguos:
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
. Por supuesto, si desea utilizar la precise
versión, también /etc/apt/preferences
debe cambiarla en consecuencia.
Para instalar apache2.2 use el siguiente proceso:
En una distribución posterior (por ejemplo, 16.04), descargué el 2.2.31 del sitio de Apache.
Lo construí usando la siguiente configuración:
./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
Luego, por supuesto, ajustar los archivos httpd.conf y ssl.conf.
Después de eso solo ejecuto el inicio ./httpd -k
Y funciona !
tenga en cuenta que agregué el apache2.4 a través de apt-get pero nunca lo eliminé. Esto significa que después del inicio del sistema, necesito matar el proceso apache2. Y luego puedo iniciar apache2.2. Tuve que instalar apache2.4 para usar apachectl pero luego lo disolví porque uso ./httpd
¿Has actualizado Ubuntu 13.04 a 13.10? No hay forma de recuperar Apache 2.2 sin salir de los repositorios de paquetes de Ubuntu. Es mejor simplemente arreglar su configuración de Apache para que funcione con 2.4.