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.

Configuramos apache
cd /etc/apache2
nano apache2.conf

Buscamos la directiva "/var/www/" y agregamos esto:

<IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
</IfModule>

es decir debe quedar asi:

<Directory "/var/www/">
     Options Indexes FollowSymLinks
     AllowOverride None
     Require all granted

     <IfModule mod_rewrite.c>
        RewriteEngine On
        RewriteBase /
        RewriteRule ^index\.php$ - [L]
        RewriteCond %{REQUEST_FILENAME} !-f
        RewriteCond %{REQUEST_FILENAME} !-d
        RewriteRule . /index.php [L]
     </IfModule>
</Directory>

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








Otra forma de instalar php

Configuraciones previas
0.- Actualizamos indices locales y elevamos distribucion si hay...
apt update
apt upgrade
apt dist-upgrade

Instalamos el repositorio
1.-
apt install software-properties-common
add-apt-repository ppa:ondrej/php

Podemos buscar modulos, por si los necesitamos
2.- apt search php8.0-* |less

Luego de ver que modulos podemos instalar, lo hacemos asi...
3.- apt install php8.0 php8.0-gd php8.0-xml php8.0-soap php8.0-mbstring php8.0-mysql

Instalamos apache
4.- apt install libapache2-mod-php8.0

Si instalamos ngix como servidor, estas serian las lineas
apt install php8.0-fpm
systemctl enable php8.0-fpm
systemctl start php8.0-fpm

Habilitamos el modulo que acabos de instalar en el paso anterior
5.- a2enmod php8.0

Si instalamos varias versiones, con este comando podemos seleccionar la version de php a usar
6.- update-alternatives --config php

Vemos la version instalada
7.- php -v

8.- Servidor Virtual, en localhost:

Abre el archivo "hosts" ubicado en C:\Windows\System32\drivers\etc

Añade la IP local y el nombre de host que desees virtualizar separados por un espacio o tabulador. Por ejemplo:

127.0.0.1 tewys.test

Configurar Apache para aceptar hosts virtuales

El segundo paso es abrir el archivo de configuración de Apache para el host virtual "vhost".

El archivo se encuentra en esta ruta en mi Xampp:
C:\xampp\apache\conf\extra\httpd-vhosts.conf

Sigue estos pasos para configurar Apache:

Abre el archivo httpd-vhosts.conf con cualquier editor de texto.
Agrega las siguientes líneas al final del archivo:

NameVirtualHost *:80
<VirtualHost *:80>
ServerAdmin webmaster@tewys.test
DocumentRoot "C:/xampp/htdocs/T_aws/html/"
ServerName tewys.test

<Directory "C:/miproyecto/htdocs/T_aws/html/">
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
</VirtualHost>