GNU/Linux >> Tutoriales Linux >  >> Ubuntu

¿Cómo instalar y configurar Apache 2?

¿Cómo puedo instalar Apache2, php, mysql y configurarlo con hosts virtuales y, preferiblemente, el certificado Let's Encrypt SSL, y luego proceder a instalar WordPress en él?

Respuesta aceptada:

Supongo que tiene una instalación de Ubuntu en ejecución. Esto está escrito con 16.04 en mente, pero también debería funcionar con algunas adaptaciones en otras versiones.

En estas respuestas, # denota un shell raíz, mientras que $ denota un shell de usuario normal.

example.org se usa como ejemplo (D'oh) en esta respuesta y debe cambiarse para adaptarse a su instalación.

Instalación de Apache2, PHP, MariaDB, etc.

$ sudo apt install apache2 libapache2-mod-php mariadb-server php-mysql

Esto instalará Apache2, PHP, MariaDB y algunas dependencias, además de enlaces de PHP para acceder a mysql.

En esta etapa, debería poder acceder a http://example.org y ver una página predeterminada:

Configurar un host virtual

Los Vhosts son hosts virtuales, que se utilizan para servir diferentes contenidos para diferentes nombres de dominio.

Comience a editar un nuevo archivo llamado /etc/apache2/sites-available/01-example.org.conf en tu editor favorito:

$ sudo editor /etc/apache2/sites-available/01-example.org.conf 

Introduzca la siguiente configuración:

<VirtualHost *:80>
        ServerName example.org
        ServerAlias www.example.org
        ServerAdmin [email protected]
        DocumentRoot /var/www/html/example.org/
        ErrorLog ${APACHE_LOG_DIR}/example.org.error.log
        CustomLog ${APACHE_LOG_DIR}/example.org.access.log combined
</VirtualHost>

Primero, definimos el ServerName principal. Este es el dominio utilizado para acceder al sitio. Solo se puede definir uno por vhost. Además, definimos un ServerAlias, en caso de que alguien ingrese www.example.org en su navegador. Esto asegura que Apache responda a ambos nombres. Ambos nombres deben apuntar a su servidor, ya sea en DNS o en /etc/hosts para pruebas locales.

Se puede especificar cualquier número de alias de servidor, y no es necesario que contengan partes de ServerName. Por lo tanto, ServerAlias example.com sería válido.

Crear el nuevo DocumentRoot

He colocado el nuevo documentroot en /var/www/html/example.org . Esta es una ubicación que puede ser atendida por Apache en Ubuntu. Si yo, por ejemplo, lo coloqué en /srv/ , tendría que incluir una estrofa de Directorio para ello. Por ahora, cree la raíz web, llénela con algo de contenido y active la nueva configuración:

$ sudo mkdir /var/www/html/example.org
$ echo "This is a test" | sudo tee /var/www/html/example.org/index.html
$ sudo a2ensite 01-example.org.conf
$ sudo service apache2 reload

Si ahora visita http://example.org, debería ver el resultado *Esto es una prueba”. ¡Felicidades! ¡Tu primer vhost se está ejecutando!

Instalar letsencrypt y obtener certificados

Para recibir certificados de Let's Encrypt, necesitamos un cliente. El paquete letsencrypt incluido con 16.04 es antiguo, por lo que necesitamos un ppa para esto.

$ echo "deb http://ppa.launchpad.net/certbot/certbot/ubuntu xenial main" | sudo tee /etc/apt/sources.list.d/01-certbot.list
$ sudo add-apt-key -k keyserver.ubuntu.com 8C47BE8E75BCA694
$ sudo apt update && sudo apt install certbot python3-certbot-apache 

Ejecute certbot como root:

$ sudo certbot

Seleccione el dominio para el que desea obtener un certificado y siga las instrucciones en pantalla de certbot. Cuando se le pregunte si desea redirigir, seleccione redirigir si solo desea https y no redirigir si desea tanto http como https. Hoy en día, casi no hay razón para no redirigir.

Please choose whether or not to redirect HTTP traffic to HTTPS, removing HTTP access.
-------------------------------------------------------------------------------
1: No redirect - Make no further changes to the webserver configuration.
2: Redirect - Make all requests redirect to secure HTTPS access. Choose this for
new sites, or if you're confident your site works on HTTPS. You can undo this
change by editing your web server's configuration.
-------------------------------------------------------------------------------
Select the appropriate number [1-2] then [enter] (press 'c' to cancel): 

Intente visitar http://example.com nuevamente; debería cambiar para mostrar que es seguro.

Relacionado:¿Cómo mejorar la velocidad de arranque en Ubuntu?

¡Felicitaciones, no ha configurado apache2 con un certificado TLS válido que asegure que el tráfico esté encriptado!

Instalar WordPress

El siguiente paso es instalar alguna aplicación. Elegí WordPress como ejemplo para instalar.

Primero conviértete en root ingresando sudo -i . A continuación, cambie el directorio a su raíz web y descargue, descomprima y cambie la propiedad al usuario de Apache:

$ sudo -i
# cd /var/www/html/example.org/
# wget https://wordpress.org/latest.tar.gz
# tar -zxf latest.tar.gz && rm latest.tar.gz
# chown -R www-data.www-data wordpress/

Ahora tendrá una instancia de WordPress en https://example.com/wordpress/ – vayamos allí.

El asistente le dice que necesita una tabla MySQL, un usuario y una contraseña. ¡Hagámoslos!

De forma predeterminada, Ubuntu utilizará la autenticación de socket de Unix para MariaDB. Por lo tanto, para iniciar sesión en MariaDB como root, debe usar

sudo mysql -u root

o ejecute el comando en un shell raíz (por ejemplo, sudo -i ). Esto lo iniciará sin ingresar ninguna contraseña

# mysql -u root
Welcome to the MariaDB monitor.  Commands end with ; or g.
Your MariaDB connection id is 32
Server version: 10.0.33-MariaDB-0ubuntu0.16.04.1 Ubuntu 16.04
Copyright (c) 2000, 2017, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.
MariaDB [(none)]> CREATE DATABASE wordpress_db;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> GRANT ALL PRIVILEGES ON `wordpress_db`.* TO 'wordpress_user'@'localhost' IDENTIFIED BY 'passw0rd';
Query OK, 0 rows affected (0.01 sec)
MariaDB [(none)]> exit

Complete el nombre de usuario wordpress_user , nombre de la base de datos wordpress_db y contraseña passw0rd en la configuración de WordPress. Eso es básicamente todo; el resto se trata de seguir las pautas de instalación de WordPress.

Para agregar más hosts virtuales, simplemente comience desde "Configurar un host virtual".

Lecturas adicionales

  • Módulos de Apache:deshabilitar y habilitar
  • Ejecutar certbot desde cron para renovar automáticamente los certificados
  • Guía para mod_rewrite, un módulo de Apache de uso común
  • Permisos de archivo para /var/www/html
  • Guía de usuario de Certbot

Ubuntu
  1. Cómo instalar y configurar ModSecurity en Apache

  2. Cómo instalar Apache en CentOS 8

  3. Cómo instalar Apache Maven en Ubuntu 18.04 y 16.04

  4. Cómo instalar y configurar mysql 8 en Ubuntu 20.04

  5. Cómo instalar y configurar PHP y Apache (pila LAMP) en Ubuntu 20.04

Cómo instalar Mod_Security Apache en Ubuntu 14.04

Cómo instalar Apache en Linux Mint 19

Cómo instalar Apache en Ubuntu 20.04 LTS

Cómo instalar el servidor Apache y configurar hosts virtuales en Ubuntu 22.04

Cómo instalar ModSecurity Apache en Ubuntu 20.04

Cómo instalar Apache en Ubuntu 22.04