Instalar Laravel con Apache y MySQL

By Posted on 3656 views

Este art铆culo es un tutorial paso a paso para iniciar con PHP,  instalar LaravelApache y MySQL en el entorno Linux (Fedora).

Laravel es uno de los frameworks de c贸digo abierto m谩s f谩ciles de implementar y asimilar para PHP. Su filosof铆a es desarrollar c贸digo PHP de forma elegante y simple basado en un modelo MVC(Modelo-Vista-Controlador). Cuenta con un c贸digo modular y extensible por medio de un administrador de paquetes y un soporte robusto para el manejo de bases de datos. Fue creado en 2011 y tiene una gran influencia de frameworks como Ruby on RailsSinatra y ASP.NET MVC .

Iniciamos

Como se espera de cualquier versi贸n de Linux lo primero que se debe hacer es actualizar el sistema, para ello ejecutamos:

sudo dnf update -y 

Instalar Apache

El servidor HTTP Apache es un servidor web HTTP de c贸digo abierto. Es activamente mantenido por Apache Software Foundation. Apache es utilizado principalmente, para realizar servicio a p谩ginas web, ya sean est谩ticas o din谩micas.

En la terminal ejecutamos lo siguiente para instalar el paquete necesario:

sudo dnf install httpd -y

El paquete del servidor web, httpd, depende de algunos otros paquetes. Deben estar instalados para que el servidor web funcione. El comando anterior instala esas dependencias. Como estamos interesados en solo utilizar el servidor en una m谩quina local de desarrollo no se necesita tener que configurar el firewall. Si deseas configurar el servidor para que desde otras m谩quinas se acceda a el, te recomiendo leer este art铆culo.

Luego de haber terminado se procede a validar la correcta instalaci贸n, ejecutar el comando: 

sudo systemctl start httpd

Despu茅s de ejecutar el comando anterior el servidor web Apache debi贸 haber iniciado, validarlo colocando en el buscador http://localhost o http://127.0.0.1/.

Deber谩 cargar la siguiente p谩gina y ser谩 indicativo que la instalaci贸n fue exitosa: 

Apache Instalado
Servidor Apache levantado

Instarlar MySQL

MySQL es un sistema de gesti贸n de bases de datos relacional desarrollado bajo licencia dual: Licencia p煤blica general/Licencia comercial por Oracle Corporation y est谩 considerada como la base datos de c贸digo abierto m谩s popular del mundo. 

Se instalar谩 la versi贸n Community Server 5.7.25 , escribir en la terminal:

sudo dnf --disablerepo=mysql80-community --enablerepo=mysql57-community install mysql-community-server

Una vez finalizada la instalaci贸n se levantara el servidor de base de datos MySQL escribiendo en la terminal: 

sudo systemctl start mysqld

Obtener la contrase帽a root din谩mica generada en la instalaci贸n, escribir el siguiente comando en la terminal:

grep 'A temporary password is generated for [email protected]' /var/log/mysqld.log |tail -1

Se obtendr谩 una salida en la consola como la siguiente:聽

鈥淎 temporary password is generated for [email protected]: s/jh+GaRo5+U鈥

El valor s/jh+GaRo5+U ser铆a la contrase帽a generada.

Se continua con la Instalaci贸n Segura de MySQL, donde se har谩:聽

  • Cambio de la contrase帽a root generada.
  • Remover usuarios an贸nimos.
  • Desabilitar conexi贸n remota del usuario root.
  • Remover base de datos creada por defecto test y el acceso a ella.

Escribir en la l铆nea de comandos:

/usr/bin/mysql_secure_installation

Se ira obteniendo paso a paso en la terminal una salida como la siguiente, lo primero que se debe ingresar es la contrase帽a obtenida anteriormente:聽

Securing the MySQL server deployment.

Enter password for user root: 

The existing password for the user account root has expired. Please set a new password.

New password: 

Re-enter new password: 

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No: y

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 0
Using existing password for root.

Estimated strength of the password: 100 
Change the password for root ? ((Press y|Y for Yes, any other key for No) : y

New password: 

Re-enter new password: 

Estimated strength of the password: 50 
Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y
By default, a MySQL installation has an anonymous user,
allowing anyone to log into MySQL without having to have
a user account created for them. This is intended only for
testing, and to make the installation go a bit smoother.
You should remove them before moving into a production
environment.

Remove anonymous users? (Press y|Y for Yes, any other key for No) : y
Success.


Normally, root should only be allowed to connect from
'localhost'. This ensures that someone cannot guess at
the root password from the network.

Disallow root login remotely? (Press y|Y for Yes, any other key for No) : y
Success.

By default, MySQL comes with a database named 'test' that
anyone can access. This is also intended only for testing,
and should be removed before moving into a production
environment.


Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y
 - Dropping test database...
Success.

 - Removing privileges on test database...
Success.

Reloading the privilege tables will ensure that all changes
made so far will take effect immediately.

Reload privilege tables now? (Press y|Y for Yes, any other key for No) : y
Success.

All done! 

Puede leer m谩s sobre c贸mo mejorar la seguridad de la instalaci贸n de MySQL .

Nota: Si no quiere por alguna raz贸n que se haga una "Instalaci贸n Segura de MySQL", al menos es muy importante cambiar la contrase帽a del usuario root.

Instalar PHP

PHP es un lenguaje de programaci贸n interpretado de prop贸sito general de c贸digo del lado del servidor originalmente dise帽ado para el desarrollo web de contenido din谩mico. Fue uno de los primeros lenguajes de programaci贸n del lado del servidor que se pod铆an incorporar directamente en un documento HTML en lugar de llamar a un archivo externo que procese los datos.聽

Escribir en la l铆nea de comando:

sudo dnf install php php-common php-cli php-pdo php-mbstring php-zip php-xml php-openssl php-tokenizer php-ctype php-json

Todas las dependencias instaladas anteriormente junto al php son necesarias y obligatorias. Si alguna de las dependencias no se instala correctamente, instalarla de la siguiente manera:

sudo dnf install php-nombre-de-la-extension

Escribir en la terminal el siguiente comando para reiniciar el servidor Apache:

sudo systemctl restart httpd

Instalar Laravel

Primero se debe instalar Composer.

驴Qu茅 es Composer?, es un administrador de dependencias para PHP que nos permite descargar paquetes desde un repositorio para agregarlo a nuestro proyecto. Por defecto, se agregan a una carpeta llamada /vendor. De esta manera evitamos hacer las b煤squedas manualmente,Composer es capaz de instalar las librer铆as que requiere tu proyecto con las versiones que necesiten.

Ejecutar en la terminal lo siguiente:

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer
composer -V

Una vez instalado Composer ejecutar en la l铆nea de comandos:

composer global require "laravel/installer"
echo 'export PATH="$PATH:$HOME/.config/composer/vendor/bin"' >> ~/.bashrc

Para validar la instalaci贸n escriba en la l铆nea de comandos:

laravel --version

Para estar a煤n m谩s seguro de la correcta instalaci贸n de Composer y Laravel, creamos un nuevo proyecto:

laravel new blog
Nuevo proyecto en Laravel
Creando un nuevo proyecto con Laravel

El comando anterior creara un nuevo proyecto con todos los archivos necesarios para iniciar el desarrollo.聽

Nuevo proyecto  con Laravel
Proyecto Laravel generado desde la l铆nea de comando

Para hacer correr una aplicaci贸n con el servidor que viene incluido en Laravel podemos hacerlo de manera f谩cil y r谩pida con:聽

cd blog
php artisan serve 

En la terminal se mostrar谩:

Laravel development server started on http://127.0.0.1:8000/
Laravel servidor iniciado
Levantar servidor Laravel

Ya esta configurado todo lo necesario para iniciar a divertirnos, en el pr贸ximo art铆culo “Crear tu Primera Aplicaci贸n con Laravel” se detallar谩 el desarrollo de una aplicaci贸n implementado el CRUD(crear, leer, actualizar, borrar).聽聽

驴Qu茅 piensas del art铆culo?

Tu direcci贸n de correo electr贸nico no ser谩 publicada. Los campos obligatorios est谩n marcados con *

18 − 16 =

3 Comments
  • Andres Martinez
    noviembre 28, 2019

    Saludos,
    Segu铆 las indicaciones y todo va en orden. Pero me queda una duda: si detengo el proceso Apache
    sudo service apache2 stop
    De todos modos mientras ejecute Laravel, la plataforma arranca (php artisan serve). Pero si trato de ver la p谩gina de inicio del navegador, por ejemplo http://localhost (sin puertos), entonces aparece error. 驴Qu茅 significa esto? Me parece como si Laravel incorporara una versi贸n de Apache en s铆 misma.
    Agradezco sus comentarios, y gracias por el art铆culo

  • Manuel
    marzo 30, 2020

    Amigo lo que sucede es que artisan crear un host privado para el proyecto no es apache ni nada por el estilo lo unico que necesitas es tener mysql y php artisan serve corriendo por eso no te funciona localhost sin puerto porque el puerto es donde esta el proyecto.

  • Jose
    abril 22, 2020

    Amigo el titulo del articulo hace referencia a correr el proyecto laravel sobre el servidor apache, pero lo 煤nico que haces es correr el proyecto sobre el propio servidor de laravel, por lo dem谩s muy buen tutorial.