por Jesús en 2022-05-16 LaravelLinux

Muy bien, acabas de decidir dar el siguiente paso y compartir tu proyecto con todo el mundo, felicitaciones. En esta guía instalaremos Laravel en Linux (Ubuntu) con Apache, MariaDB y PHP (LAMP)

Lo primero que haremos es actualizar e instalamos algunos paquetes necesarios.

sudo apt update
sudo apt install git zip

 

Instalamos Apache2

sudo apt install apache2
sudo ufw app list
sudo ufw allow in "Apache"

 

Instalamos MariaDB y configuramos un usuario, su contraseña y tambien privilegios del mismo. Cambia los datos por los de tu preferencia.

sudo apt install mariadb-server
sudo mysql_secure_installation

sudo mysql
CREATE USER '_nuevo_usuario_'@'localhost' IDENTIFIED BY '_contrasenia_de_nuevo_usuario_';
GRANT ALL PRIVILEGES ON * . * TO '_nuevo_usuario_'@'localhost';
FLUSH PRIVILEGES;

 

Instalamos la ultima version disponible de PHP y algunas extensiones necesarias

sudo apt install php libapache2-mod-php
sudo apt install php-mysql php-xml php-mbstring php-gd php-zip php-curl php-gmp php-imagick
sudo systemctl restart apache2

 

Configure Apache with PHP-FPM

sudo apt update
sudo apt install php-fpm libapache2-mod-fcgid
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php-fpm
systemctl restart apache2

 

Instalamos la ultima versión de COMPOSER con los siguientes comandos.

cd ~
curl -sS https://getcomposer.org/installer -o composer-setup.php
sudo php composer-setup.php --install-dir=/usr/local/bin --filename=composer

 

Clonamos nuestro proyecto o lo puedes descargar de cualquier otra fuente, este paso es opcional.

cd /var/www/html
git clone https://github.com/usuario/nombre_de_tu_proyecto.git

 

Siendo que vamos a trabajar con Laravel, es necesario realizar estos pasos. Accedermos a nuestro proyecto y despues instalamos las dependencias del mismo, por ultimo creamos una copia de nuestro archivo de configuración.

cd nombre_de_tu_proyecto
composer install
cp .env.example .env

 

Permisos a directorios

sudo chown -R www-data: storage
sudo chmod -R 755 storage

sudo chown -R www-data: bootstrap/cache
sudo chmod -R 755 bootstrap/cache

 

Creamos nuestro VirtualHost

sudo nano /etc/apache2/sites-available/nombre_de_tu_vh.conf
<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    ServerName appname.com
    ServerAlias www.appname.com
    DocumentRoot /var/www/html/nombre_de_tu_proyecto/public

    <Directory "/var/www/html/nombre_de_tu_proyecto/public">
      Options -Indexes +FollowSymLinks +MultiViews
      AllowOverride All
      Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

 

Registramos nuestro VirtualHost

sudo a2enmod rewrite

sudo a2ensite nombre_de_tu_vh
sudo a2dissite 000-default
sudo apache2ctl configtest
sudo service apache2 reload

 

Instalar Certbot para Apache, esto nos ayudará con el certificado SSL.

sudo apt-get install certbot python3-certbot-apache
sudo ufw status
sudo ufw allow 'Apache Full'
sudo certbot --apache

sudo certbot renew --dry-run