Servidor EC2
Servidor EC2

Vamos a configurar un servidor EC2 de aws paso a paso. Le vamos instalar apache, php, phpmyadmin sobre un servidor ubuntu.

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>