GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo instalar Laravel 9 en Ubuntu 22.04

Laravel es un marco de aplicación web popular creado para desarrolladores de PHP. Laravel es bien conocido en la comunidad de PHP por su simplicidad como herramienta para construir aplicaciones grandes y robustas. Laravel también es conocido por su sintaxis expresiva y elegante.

Desde sus inicios, Laravel ha evolucionado hasta convertirse en uno de los marcos de aplicaciones web más populares y poderosos y muchas organizaciones grandes están comenzando a darse cuenta del potencial de este marco y comenzaron a adoptarlo.

En este tutorial, lo guiaremos para configurar Laravel en Ubuntu 22.04.

Comencemos con la configuración.

1 Requisitos previos

  • Sistema operativo Ubuntu 22.04
  • Versión mínima de PHP 8.0.
  • Sería mejor si su servidor tuviera al menos 2 GB de RAM

2 Actualización del sistema

Actualicemos primero nuestro sistema.

sudo apt update -y && apt upgrade -y

3 Instalación de PHP y extensiones de PHP

La versión predeterminada de PHP en el repositorio de Ubuntu 22.04 es PHP 8.1, por lo que podemos continuar con la instalación de PHP sin agregar repositorios.

sudo apt-get install php php-fpm libapache2-mod-php php-dev php-zip php-curl php-pear php-mbstring php-mysql php-gd php-xml curl -y

Verifique la versión de PHP:

php -v


Output:

PHP 8.1.2 (cli) (built: Jul 21 2022 12:10:37) (NTS)
Copyright (c) The PHP Group
Zend Engine v4.1.2, Copyright (c) Zend Technologies
    with Zend OPcache v8.1.2, Copyright (c), by Zend Technologies

4 Instalación y configuración de la base de datos

En esta configuración, vamos a utilizar MariaDB como nuestro sistema de gestión de bases de datos, pero puede elegir cualquier sistema de gestión de bases de datos compatible con Laravel, como SQLite, MySQL, Postgres y SQL Server.

Instalamos MariaDB.

sudo apt install mariadb-server

Habilite e inicie MariaDB.

sudo systemctl enable mariadb --now

Compruebe el estado de MariaDB.

sudo systemctl status mariadb

Output:
● mariadb.service - MariaDB 10.6.7 database server
     Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2022-09-03 12:32:57 EDT; 2min 13s ago
       Docs: man:mariadbd(8)
             https://mariadb.com/kb/en/library/systemd/
   Main PID: 123075 (mariadbd)
     Status: "Taking your SQL requests now..."
      Tasks: 9 (limit: 9456)
     Memory: 57.2M
        CPU: 425ms
     CGroup: /system.slice/mariadb.service
             └─123075 /usr/sbin/mariadbd

Protejamos la base de datos MariaDB.

sudo mysql_secure_installation

Siga la guía de implementación del servidor MariaDB:

Securing the MySQL server deployment.

Enter password for user root:
The 'validate_password' component is installed on the server.
The subsequent steps will run with the existing configuration
of the component.
Using existing password for root.

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

 ... skipping.
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!

Ahora reinicie MariaDB.

sudo systemctl restart mariadb

Ahora vamos a crear una base de datos y un usuario de base de datos para nuestra aplicación Laravel.

mysql -u root -p
MariaDB [(none)]> create database laravel;
MariaDB [(none)]> grant all privileges on laravel.* to 'laravel_user'@'localhost' identified by 'your_secure_password';
MariaDB [(none)]> flush privileges;
MariaDB [(none)]> exit;

Nota: No olvide cambiar 'su_contraseña_segura ‘ a su propia contraseña.

5 Instalación de Composer

Composer es un administrador de paquetes de dependencia a nivel de aplicación para PHP que proporciona un formato estándar para administrar las dependencias del software PHP y las bibliotecas requeridas. Se requiere Composer en Laravel para administrar fácilmente el paquete y las dependencias de Laravel.

Instalemos Composer.

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

Verifique la instalación.

composer --version

Output:

Composer version 2.4.1 2022-08-20 11:44:50

6 Instalación de Laravel Framework

Antes de comenzar con la instalación, cambiemos de directorio.

cd /var/www/

Descarga la aplicación Laravel. Al momento de escribir este artículo, la última versión de Laravel es la 9, por lo que podemos descargar Laravel 9 directamente sin especificar la versión.

sudo composer create-project laravel/laravel mylara-app --prefer-dist

Salida si se instaló correctamente:


79 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
> @php artisan vendor:publish --tag=laravel-assets --ansi --force

   INFO  No publishable resources for tag [laravel-assets].

No security vulnerability advisories found
> @php artisan key:generate --ansi

   INFO  Application key set successfully.

Para comprobar la versión, vaya al directorio de Laravel:

cd mylara-app
php artisan --version

output:
Laravel Framework 9.28.0

Nota: si desea instalar una versión específica, puede ejecutar este comando (el ejemplo a continuación instalará la versión 8):

sudo composer create-project laravel/laravel lara8-app “8.*” –prefer-dist

Establezca la propiedad en www-data.

sudo chown -R www-data:www-data /var/www/mylara-app

Configure todos los directorios con el permiso 755.

sudo find /var/www/mylara-app/ -type d -exec chmod 755 {} \;

Configure todos los archivos con el permiso 644.

sudo find /var/www/mylara-app/ -type f -exec chmod 644 {} \;

Verifique la aplicación ejecutando el servidor de desarrollo.

php artisan serve --host=0.0.0.0

Output:

INFO  Server running on [http://0.0.0.0:8000].

  Press Ctrl+C to stop the server

Debería poder acceder a su servidor de desarrollo de Laravel en http://ipaddress:8000 .

7 Configuración de producción de Laravel

Servidor web Apache :

sudo apt install apache2

Habilite e inicie Apache.

systemctl enable apache2 --now

Cree un servidor virtual.

sudo nano /etc/apache2/sites-available/laravel.conf

Agrega lo siguiente:

<VirtualHost *:80>
     ServerAdmin [email protected]
     DocumentRoot /var/www/mylara-app/public
     ServerName domain.com www.domain.com


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

     <Directory /var/www/laravel/>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
     </Directory>

</VirtualHost>

Nota:No olvides cambiar el dominio  en la directiva ServerName.

Guarde el archivo y salga.

Habilite el host virtual que creamos.

sudo a2ensite laravel.conf

Habilite también Apache mod_rewrite.

sudo a2enmod rewrite

Reinicie el servidor web Apache.

sudo systemctl restart apache2

Servidor web Nginx :

Primero, instalemos Nginx.

sudo apt install nginx -y

Habilite e inicie Nginx.

sudo systemctl enable nginx --now

Crea un bloque de servidor.

sudo nano /etc/nginx/sites-available/laravel.conf

Agrega lo siguiente:

server {
        server_name domain.com www.domain.com;

    access_log   /var/log/nginx/domain.com.access.log;
    error_log    /var/log/nginx/domain.com.error.log;

        root /var/www/mylara-app/public;
        index index.php;

        location / {
                try_files $uri $uri/ /index.php?$args;
        }

        location ~ \.php$ {
      fastcgi_pass unix:/run/php/php-fpm.sock;
      include         fastcgi_params;
      fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
      fastcgi_param   SCRIPT_NAME        $fastcgi_script_name;
        }
}

Nota: No olvide cambiar el "dominio.com “.

Guarde el archivo y salga.

Habilitemos el archivo de configuración de Nginx (bloque del servidor).

sudo ln -s /etc/nginx/sites-available/laravel.conf /etc/nginx/sites-enabled/

Reinicie Nginx.

sudo systemctl restart nginx

8 Accediendo a tu aplicación Laravel

Una vez que haya configurado correctamente la producción, debería poder acceder a su aplicación Laravel con su dominio en http://domain.com .

9 Conclusión

Ha aprendido a configurar Laravel 9 en Ubuntu 22.04 con el servidor web Nginx o Apache.

Si desea instalar un certificado SSL para proteger su sitio web, puede consultar nuestro artículo sobre Let's Encrypt.


Ubuntu
  1. Cómo instalar PHP en Ubuntu 18.04

  2. Cómo instalar MariaDB en Ubuntu 18.04

  3. Cómo instalar Laravel en Ubuntu 18.04

  4. Cómo instalar PHP 8.0 en Ubuntu 20.04 / Ubuntu 18.04

  5. Cómo instalar PHP 7.2 en Ubuntu 16.04

Cómo instalar MariaDB en Ubuntu 16.04

Cómo instalar Laravel en Ubuntu 16.04

Cómo instalar PHP 8.0 en Ubuntu 20.04/18.04

Cómo instalar PHP en Ubuntu 22.04

Cómo instalar MariaDB en Ubuntu

Cómo instalar PHP en Ubuntu 22.04