GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar y configurar el servidor web Apache en Ubuntu 13.10

Instalar el servidor web Apache

Hace un tiempo actualicé mi ubuntu a 13.10 y luego la instalación de apache php se arruinó. Así que tuve que reinstalarlo rápidamente para continuar trabajando en mis proyectos php.

Apache está en los repositorios de ubuntu, por lo que se puede instalar sin mucho esfuerzo. Aquí está el comando rápido que necesita para disparar a la terminal.

$ sudo apt-get install apache2

Apache por defecto se configura rápidamente para que pueda abrirlo desde el navegador con la url localhost

http://localhost/

Iniciar/Detener apache

Para iniciar o detener el servidor web apache desde la línea de comandos, use los siguientes comandos.

# Start web server
$ sudo service apache2 start
# Stop the web server
$ sudo service apache2 stop
# Restart the web server
$ sudo service apache2 restart
# Reload configuration without restarting
$ sudo service apache2 reload

El directorio raíz web predeterminado es /var/www. Entonces, cualquier archivo que se coloque en este directorio es accesible desde la url localhost. Más adelante comprobaremos cómo cambiar el directorio raíz web predeterminado

Para verificar qué versión de apache está instalada, use el comando apache2 con la opción v/

$ apache2 -v
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56

Localizar archivos de configuración

Para obtener más información sobre cómo se configura Apache exactamente en su sistema, use el comando apache2ctl.

$ apache2ctl -V
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
Server version: Apache/2.4.6 (Ubuntu)
Server built:   Aug  9 2013 14:28:56
Server's Module Magic Number: 20120211:23
Server loaded:  APR 1.4.8, APR-UTIL 1.5.2
Compiled using: APR 1.4.8, APR-UTIL 1.5.2
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/etc/apache2"
 -D SUEXEC_BIN="/usr/lib/apache2/suexec"
 -D DEFAULT_PIDLOG="/var/run/apache2.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="mime.types"
 -D SERVER_CONFIG_FILE="apache2.conf"
.....

Indica el nombre del archivo de configuración, el servidor mpm que se está utilizando y muchos otros detalles. Estos son útiles cuando se configura más apache.

El archivo de configuración principal se encuentra en /etc/apache2/apache2.conf
Solo anteponga HTTPD_ROOT con SERVER_CONFIG_FILE para obtener la ubicación real del archivo de configuración.

O hay otra opción S que también informa varios detalles de configuración sobre apache

$ apache2ctl -S
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message
VirtualHost configuration:
*:80                   is a NameVirtualHost
         default server localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
         port 80 namevhost localhost (/etc/apache2/sites-enabled/000-default.conf:1)
ServerRoot: "/etc/apache2"
Main DocumentRoot: "/var/www"
Main ErrorLog: "/var/log/apache2/error.log"
Mutex default: dir="/var/lock/apache2" mechanism=fcntl
Mutex mpm-accept: using_defaults
Mutex watchdog-callback: using_defaults
Mutex rewrite-map: using_defaults
PidFile: "/var/run/apache2/apache2.pid"
Define: DUMP_VHOSTS
Define: DUMP_RUN_CFG
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used
User: name="www-data" id=33 not_used
Group: name="www-data" id=33 not_used

Toda esa información es bastante útil al configurar apache. Ahorra tiempo que de otro modo se gastaría en adivinar.

Hay muchos archivos de configuración relacionados con apache. El archivo de configuración principal es "apache2.conf" como se mencionó anteriormente. Este archivo de configuración tiene instrucciones para cargar más archivos de configuración. Aquí está la línea que lo hace.

# Include generic snippets of statements
IncludeOptional conf-enabled/*.conf

# Include the virtual host configurations:
IncludeOptional sites-enabled/*.conf

Corrige el mensaje de error

Apache por defecto da el siguiente mensaje de error

AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

Para solucionar esto, establezca la variable ServerName en su nombre de host o nombre de dominio completo en el archivo de configuración de apache

$ sudo nano /etc/apache2/apache2.conf

Agregue la siguiente línea al final

ServerName yourhostname

Recargar la configuración de Apache

$ sudo service apache2 reload

Cambiar directorio raíz web

Para cambiar el directorio raíz web, debemos cambiar la configuración en los archivos de configuración "habilitados para sitios". Como práctica estándar, se crea un archivo de configuración separado dentro del directorio habilitado para sitios para cada host virtual.

Un host virtual es un dominio. Entonces puede tener múltiples dominios servidos por apache. En este ejemplo, sin embargo, solo usamos el archivo de configuración predeterminado.

Debe haber un archivo llamado 000-default.conf dentro del directorio /etc/apache2/sites-enabled. Si no está allí, cópielo de /etc/apache2/sites-available. El archivo se ve así inicialmente.

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...
</VirtualHost>

Cambie la ruta de DocumentRoot a la nueva raíz web que desea usar. Guarde el archivo y reinicie apache.

$ sudo service apache2 restart

Ahora intente acceder a localhost. Si no funciona, verifique el registro de errores ubicado en

$ cat /var/log/apache2/error.log

A partir de Apache 2.4.3 existe una función de seguridad que evita que apache acceda a otros directorios. Y luego, la URL del host local mostraría el mensaje de error "Prohibido" y el registro de errores contendría un mensaje como este

[Sun Nov 03 11:25:24.521491 2013] [authz_core:error] [pid 6950] [client 127.0.0.1:41078] AH01630: client denied by server configuration: /var/www/phpinfo.php

El error significa que apache no puede acceder al directorio raíz web debido a alguna configuración. Para solucionar esto, agregue lo siguiente a la configuración de vhost

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
The "Require" directive fixes the problem. Newer version of Apache (2.3+) require the "Require" directive to allow access.

El archivo final 000-default.conf debería verse así

<VirtualHost *:80>
...
        #ServerName www.example.com

        ServerAdmin [email protected]
        DocumentRoot /var/www2

        # Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
        # error, crit, alert, emerg.
        # It is also possible to configure the loglevel for particular
        # modules, e.g.
        #LogLevel info ssl:warn

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

...

         # New directive needed in Apache 2.4.3: 
          <Directory "/var/www2">
   Order allow,deny
   Allow from all
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>
</VirtualHost>

Ahora reinicie apache nuevamente y el nuevo directorio raíz web finalmente debería funcionar.

Agregar más vhosts o dominios

Para agregar más hosts virtuales, simplemente cree más archivos de configuración como 000-default.conf y asígnele cualquier nombre que no tenga la extensión conf. Establezca un ServerName único en cada archivo y asigne a cada host un directorio raíz web separado.

Alternativamente, cree un archivo de configuración en el directorio de sitios disponibles y use el comando a2ensite para habilitar el sitio. Creará los enlaces simbólicos necesarios en el directorio "habilitado para sitios".

Primero cree un archivo de configuración copiando el archivo de configuración predeterminado.

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/mysite.conf

Edite el archivo de configuración según sea necesario. Lo importante a cambiar es la raíz del documento para el nuevo sitio.
Luego habilítelo usando el comando a2ensite

$ sudo a2ensite mysite

Reinicie apache. Y el nuevo sitio debería funcionar bien.

Habilitar archivo htaccess

El archivo htaccess permite modificar varios parámetros de configuración de apache por directorio en tiempo de ejecución. Por defecto, Apache no está configurado para usar el archivo htaccess. Para hacerlo, simplemente agregue la siguiente línea en la sección Directorio que se muestra arriba.

AllowOverride FileInfo

Lo anterior le indicará a apache que comience a leer los archivos htaccess y analice las instrucciones de configuración escritas en ellos.

La configuración final podría verse así -

<Directory "/var/www2">
   Order allow,deny
   Allow from all
   AllowOverride FileInfo
   # New directive needed in Apache 2.4.3: 
   Require all granted
</Directory>

Después de instalar apache, es posible que desee instalar otras cosas como php, mysql, phpmyadmin, según lo que necesite. ¡¡Así que adelante y disfruta!!


Ubuntu
  1. Cómo instalar y configurar un servidor NFS en Ubuntu 20.04

  2. Cómo instalar y configurar VNC en Ubuntu 20.04

  3. Cómo instalar y configurar VNC en Ubuntu 18.04

  4. Cómo instalar y configurar el servidor DHCP en Ubuntu 20.04

  5. Cómo instalar y configurar el servidor Redis en Ubuntu

Cómo instalar y configurar el servidor LAMP en Ubuntu

Cómo instalar y configurar el servidor OpenLDAP en Ubuntu 16.04

Cómo instalar y configurar VNC en Ubuntu Server 20.04

Cómo instalar el servidor web Apache en Ubuntu 18.04

Cómo instalar el servidor web Apache en Ubuntu 20.04

Cómo instalar y configurar un servidor web LAMP en Ubuntu 18.04