Configurar un servidor de amazon web service (aws) en minutos

Vamos a configurar nuestro servidor web con apache, php, phpmyadmin, certificados https y algunas configuraciones basicas para arrancar de inmediato con nuestro sitio web. En menos de 20 minutos tu sitio web estara listo para que todo el mundo lo vea.

Paso 1.- Activar Instancia:

Ubuntu Server 18.04 LTS (HVM)
SSD Volume Type
ami-0ebc8f6f580a04647
 
Paso 2.- Conectarme a Servidor via ssh

Paso 3.- Me cambio a administrador

sudo su

Paso 4.- Actualizar

apt-get update
apt-get upgrade

Paso 5.- Instala Apache

apt-get install apache2

Paso 6.- Instalo php

apt-get install php

Paso 7.- Instado algunas librerias extras de PHP

apt-get install php-pear php7.2-curl php7.2-dev php7.2-gd php7.2-mbstring php7.2-zip php7.2-mysql php7.2-xml

Paso 8.- Me muevo a /etc/php/7.2/apache2/php.ini, para configurar los errores, mientras programamos, cuando este en produccion, lo dejamos como estaba. De igual manera, configuramos para subir archivos grandes

cd  /etc/php/7.2/apache2
nano php.ini

display_errors = On

Cuando no queramos que se muestren los errores, lo regresamos a Off.

*** Ahora, sonfiguracion para subir archivos grandes:

Modificaremos estos 3 parametros:

    post_max_size
    upload_max_filesize
    memory_limit

 Dejalos asi:

    post_max_size    23138 (esta a 8)
    upload_max_filesize    23130 (esta en 2)
    memory_limit    23148 (128)

Para que se ejecuten los cambios, reinicia apache:

/etc/init.d/apache2 restart

Paso 9.- Actualizo de nuevo

apt-get update
apt-get upgrade

Paso 10.- Instalo PHPMYADMIN

apt-get install php-mysql
apt-get install mysql-server mysql-client
service mysql start
apt-get install phpmyadmin php-mbstring php-gettext

Coloca una contraseña para el admin de phpmyadmin.

Paso 11.- Cambiar de Directorio a Phpmyadmin

Entrar a /etc/phpmyadmin/apache.conf, osea asi:
nano /etc/phpmyadmin/apache.conf

y editar la linea:
Alias /phpmyadmin /usr/share/phpmyadmin

por esta:
Alias /privado/phpmyadmin /usr/share/phpmyadmin

Paso 12.- Reiniciasmo apache

/etc/init.d/apache2 restart

Paso 13.- Agregamos una base de datos RDS

Necesitamos que phpmyadmin administre nuestra base de datos RDS, que previamente creamos en aws. Recuerda colocar los datos de la base de datos.

nano /etc/phpmyadmin/config.inc.php

    -- Agregar estas lineas al final del documento --

    $i++;
    $cfg['Servers'][$i]['host']          = 'direccion publica de de la base de datos...';
    $cfg['Servers'][$i]['port']          = '3306';
    $cfg['Servers'][$i]['socket']        = '';
    $cfg['Servers'][$i]['connect_type']  = 'tcp';
    $cfg['Servers'][$i]['extension']     = 'mysql';
    $cfg['Servers'][$i]['compress']      = FALSE;
    $cfg['Servers'][$i]['auth_type']     = 'config';
    $cfg['Servers'][$i]['user']          = '__usuario__';
    $cfg['Servers'][$i]['password']      = '__clave__';

Paso 14.- Damos permisos al directorio.

Necesitamos subir archivos via ftp, liberamos el directorio /var de esta manera:

Nos movemos primero:
cd /var

Luego, cambiamos los permisos de la carpeta www:
chmod 777 www

Luego nos movemos dentro de www

cd www

Y cambiamos los permisos de la carpeta html:
chmod 777 html

Paso 15.- Instalar certbot, para los certificados https

apt install certbot

Paso 16.- Detenemos el servidor

service apache2 stop

Paso 17.- Instalo el certificado para el dominio

certbot certonly -d dominio.com -d www.dominio.com --noninteractive --standalone --agree-tos --register-unsafely-without-email

Logico, cambia dominio.com por tu dominio

Paso 18.- Creamos un archivo en /etc/apache2/conf-available/ssl-params.conf, asi:

nano /etc/apache2/conf-available/ssl-params.conf

Paso 19.- Agregale este contenido:

                SSLCipherSuite EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH
                SSLProtocol All -SSLv2 -SSLv3 -TLSv1 -TLSv1.1
                SSLHonorCipherOrder On
                # Disable preloading HSTS for now.  You can use the commented out header line that includes
                # the "preload" directive if you understand the implications.
                # Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload"
                Header always set X-Frame-Options DENY
                Header always set X-Content-Type-Options nosniff
                # Requires Apache >= 2.4
                SSLCompression off
                SSLUseStapling on
                SSLStaplingCache "shmcb:logs/stapling-cache(150000)"
                # Requires Apache >= 2.4.11
                SSLSessionTickets Off

Paso 20.- Viaja a /etc/apache2/sites-enabled/

Osea:
cd /etc/apache2/sites-enabled/

Paso 21.- Creamos un nuevo archivo .conf, para administrar nuestro dominio (virtual-host)

nano tudominio.com.conf

Paso 22.- Agrega las lineas necesarias


Buscar en tu computadora...

 

Paso 23.- Activa los servidores virtuales que creaste asi...
a2ensite tudominio.com.conf

Paso 24.- Ejecuta estos comando, para pulir la configuracion

a2enmod ssl
a2enmod headers
a2ensite default-ssl
a2enconf ssl-params
apache2ctl configtest

Paso 25.- Reinicio Apache
systemctl restart apache2
o
systemctl reload apache2

 

Paso 26.- Urls Amigables.

Habilita el modulo rewrite de Apache con el siguiente comando:

a2enmod rewrite

Reiniciamos apache:
service apache2 restart

Verificamos que este instalado el modulo:
apache2ctl -M

 Sube el archivo .htaccess en el directorio html (htdocs) con este contenido:


   
        Options -MultiViews
   

    RewriteEngine On

    # Redirect Trailing Slashes If Not A Folder...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)/$ /$1 [L,R=301]

    # Handle Front Controller...
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^ index.php [L]

Paso 27.- Instalamos el editor de video

add-apt-repository ppa:mc3man/trusty-media
apt-get update
apt-get install ffmpeg
ffmpeg -version

Paso 28.- Instalar SOAP

apt-get install php7.2-soap
systemctl restart apache2

..........

 

Contactame para ayudarte:

Ing. Arturo Towonk
WhatsApp: (+52) 2381572039
Correo: arturo@tewys.com
Telegram: @ArturoTw