
Apache2 es un servidor web ligero que se utiliza para servir contenido estático y también se suele utilizar para servir páginas php. En mi hosting se encuentra "detrás" del servidor nginx y sirve las páginas de este blog.
En esta entrada voy a poner a modo de chuletilla los comandos más comunes que utilizo así como donde se localizan sus ficheros de configuración principales.
He probado todos estos comandos en una distro ubuntu 18.04 LTS.
Comandos básicos para Iniciar/Reiniciar/Parar apache
Iniciar servidor
service apache2 start
Reinciar servidor
service apache2 restart
Parar servidor
service apache2 stop
Fichero principal de configuración de Apache2
El fichero principal de configuración de nginx es el fichero apache2.conf. Se localiza en:
/etc/apache2/
En la misma carpeta se encuentra el fichero ports.conf donde se indican los puertos que voy a utlizar en los virtualHost.
Localización archivos .conf que contienen los virtual host de los sites
Ruta donde localizar los virtualhost disponibles para instalarlos en el servidor
/etc/apache2/sites-available/
Ruta donde localizar los virtualhost que ya están corriendo en el servidor
/etc/apache2/sites-enabled/
Habilitar/deshabilitar sites
En apache habilitar un site es mucho más sencillo. Dejo los comandos básicos.
Por ejemplo, para habilitar un site cuyo archivo de configuración se llama blog.conf:
sudo a2ensite blog.conf
service apache2 reload
Esto creará un enlace simbólico en la carpeta sites-enabled y reiniciará el servidor para dejar el site blog habilitado.
¿Y si quiero eliminar algún site? Bastará con deshabilitarlo y reiniciar apache2 con los comandos:
sudo a2dissite blog.conf
service apache2 reload
Actualizando permisos y/o propietarios del site
Después de actualizar algún fichero en tu site es posible que hayas perdido los permisos o que el usuario del fichero haya cambiado. Tanto para apache como para nginx se suele utilizar mucho estos 2 comandos:
Dar como propietario www-data a la carpeta apache2 y a todos sus ficheros/carpetas hijas.
sudo chown -R www-data:www-data /var/www/html/apache
Cambiar los permisos a la carpeta apache y a todos sus ficheros/carpetas hijas
sudo chmod -R 775 /var/www/html/apache
r=read, w=write, x=execute
Owner: 7=rwx, Group: 5=r-x, Other: 5=r-x
Modulos Apache2
Otros comandos muy útiles son aquellos que te permiten cargar módulos o listar los disponibles. Por ejemplo para instalar php en apache2 vas a necesitar cargar un módulo concreto. En mi caso para la versión 7.2 yo tengo php7_module.
Para los modulos de configuración de apache
Habilitar módulo conf
a2enconf php7.2-fpm
Deshabilitar módulo conf
a2disconf php7.2-fpm
Para los modulos generales de apache
Habilitar módulo proxy fcgi
a2enmod proxy_fcgi
Deshabilitar módulo proxy fcgi
a2dismod proxy_fcgi
Después de estas instrucciones hay que reiniciar apache.
Listar módulos disponibles:
foouser@fooserver:~# apache2ctl -t -D DUMP_MODULES
Loaded Modules:
core_module (static)
so_module (static)
watchdog_module (static)
http_module (static)
log_config_module (static)
logio_module (static)
version_module (static)
unixd_module (static)
access_compat_module (shared)
...
...
authz_host_module (shared)
authz_user_module (shared)
autoindex_module (shared)
deflate_module (shared)
dir_module (shared)
env_module (shared)
filter_module (shared)
mime_module (shared)
mpm_prefork_module (shared)
negotiation_module (shared)
php7_module (shared)
proxy_module (shared)
proxy_fcgi_module (shared)
reqtimeout_module (shared)
rewrite_module (shared)
setenvif_module (shared)
status_module (shared)
Puedes ir a las carpetas
/etc/apache2/conf-enabled
/etc/apache2/conf-available
Para comprobar los módulos tipo conf habilitados/disponibles.
El resto de módulos se encuentran en:
/usr/lib/apache2/modules/
Por ejemplo para ver los módulos conf habilitados:
foouser@fooserver:/etc/apache2/conf-enabled# ls
charset.conf
other-vhosts-access-log.conf
security.conf
localized-error-pages.conf
php7.2-fpm.conf
serve-cgi-bin.conf
Estos directorios son útiles para investigar problemas relacionados con la carga de módulos. Por ejemplo el módulo existe pero no lo tienes habilitado.
La instalación de apache consume tiempo y es normal encontrar algunos problemas con los módulos (sobre todo cuando cambias de versión de PHP o subes de versión del S.O). Hay mucha documentación en internet para resolver estos problemas.
No hace falta poner nada más
Hola,
No es necesario indicar nada más. Si la instalación de Apache2 es correcta simplemente debes lanzar el comando tal cual lo indico. Por ejemplo para arrancar apache2 debes ejecutar: service apache2 start no hay que introducir nada más.
Si te sale algún error lo podemos mirar.
una consulta para utilizar esos comandos para apache por delante se coloca alguna orden? es decir, ls, cd, sudo nano, etc con que orden se antepone a esos comandos para hacer las configuraciones. No tengo mucho conocimiento.