Para instalar LAMP en una instancia EC2 nos conectaremos a través del terminal y realizaremos los siguientes pasos:
Actualizamos nuestro sistema
$ sudo yum update -y
Instalamos Apache, MySQL y PHP 5.6
$ sudo yum install -y httpd24 php56 mysql55-server php56-mysqlnd
O instalamos Apache, MySQL y PHP 7
sudo yum install -y httpd24 php70 mysql56-server php70-mysqlnd
Arrancamos APache
$ sudo service httpd start Starting httpd: [ OK ]
Usamos chkconfig para iniciar Apache con cada inicio del sistema
$ sudo chkconfig httpd on
Si accedemos con el navegador mediante la DNS pública de la instancia deberíamos ver la “Amazon Linux AMI Test Page”. La raiz de nuestro sitio web será /var/www/html
VAmos a dar permiso al usuario ec2-user para manipular archivos
Si queremos (opcional?) dar permisos a ec2-user para manipular todos los archivos de la raiz del grupo
sudo usermod -a -G root ec2-user
Añadimos el grupo www a nuestra instancia
$ sudo groupadd www
Añadimos nuestro usuario al grupo www
$ sudo usermod -a -G www ec2-user
Una vez hecho esto nos desconectamos con el comando exit
$ exit
Al volver a conectarnos comprobamos que el grupo se ha creado correctamente
$ groups ec2-user wheel www
Cambiamos la propiedad del grupo /var/www y su contenido al grupo www
$ sudo chown -R root:www /var/www
Cambiamos también los permisos para futuros subdirectorios
$ sudo chmod 2775 /var/www
$ find /var/www -type d -exec sudo chmod 2775 {} \;
Cambiamos recursivamente los permisos de /var/www para dar permisos de escritura al grupo
$ find /var/www -type f -exec sudo chmod 0664 {} \;
Si necesitamos dar permisos al usuario apache para ciertas carpetas lo podemos hacer de la siguiente forma
sudo chown -R apache:apache /var/www/html/config
Probamos nuestro servidor, para ello crearemos un archivo que ejecutará la función phpinfo()
$ echo "<?php phpinfo(); ?>" > /var/www/html/phpinfo.php
Abriremos el navegador y accederemos a él
http://my.public.dns.amazonaws.com/phpinfo.php
Arrancamos MySQL
$ sudo service mysqld start Initializing MySQL database: Installing MySQL system tables... OK Filling help tables... OK To start mysqld at boot time you have to copy support-files/mysql.server to the right place for your system PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER ! ... Starting mysqld: [ OK ]
Ejecutamos mysql_secure_installation
$ sudo mysql_secure_installation
Cuando se nos pida introduciremos la contraseña para el usuario root que por defecto como no tiene pulsaremos Enter.
Pulsaremos Y para eliminar la cuenta de usuario anónimo.
Pulsaremos Y para desactivar el acceso remoto.
Pulsaremos Y para eliminar la base de datos de test.
Pulsaremos Y para recargar los privilegios de las tablas y guardar los cambios.
Si queremos arrancar MySQL con cada inicio del sistema (instancia)
$ sudo chkconfig mysqld on


