© 2015-2024 mister3D.fr - Signaler un bug - Mentions légales - Contact

Articles - Dev en 2023 - Laravel et VueJS sous Debian 11 et Apache2

L'objectif de ce pas à pas est d'expliquer comment installer Laravel et VueJS dans leurs dernière version sur un unique serveur Apache.

Votre développement Laravel pourra être fait en directe, pour Vue il faudra passer par "npm run dev" mais une fois terminé avec une commande le contenue serra transpile et fonctionnera par le biais d'Apache.

Je n'aborde pas ici les notions de sécurité si vous passer cette configuration en production.


Si vous n'avez pas accès au compte root, utiliser sudo pour procédé à l'installation es logicielle ci dessous.

Si vous venez d'installer fraichement votre Linux commencer par le classique

apt update
apt dist-upgrade


A ce jour (mars 2023) Debian ne propose toujours pas PHP 8.1, pour le faire à la "main".
Installer les dépendance :

apt-get install ca-certificates apt-transport-https software-properties-common wget curl lsb-release


Installer automatiquement le dépot packages.sury.org qui continet PHP 8.1

curl -sSL https://packages.sury.org/php/README.txt | bash -x


Rafraichir vos dépot :

apt-get update


Installer Apache2, PHP et MariaDB (MySQL) et cURL:

apt install apache2 mariadb-server
apt install php8.1 libapache2-mod-php8.1 php8.1-mbstring php8.1-xmlrpc php8.1-soap php8.1-gd php8.1-xml php8.1-cli php8.1-zip php8.1-bcmath php8.1-tokenizer php8.1-mysql php8.1-curl zip unzip


Sécuriser votre instalation de MariaDB :

mysql_secure_installation
> Enter current password for root (enter for none): Tapez Enter
> Switch to unix_socket authentication : n
> Change the root password? : Y
> New password: Mot de passe à noter pour la suite
> Re-enter new password: ...
> Remove anonymous users? Y
> Disallow root login remotely? n
> Remove test database and access to it? Y
> Reload privilege tables now? Y

Notez bien votre mot de passe root !

Installer Composer :

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


Installer NodeJS en version 16 (Minimum requis pour Laravel 10) :

curl -sL https://deb.nodesource.com/setup_16.x | bash -
apt update
apt install nodejs
apt upgrade
npm install -g npm@latest


Installer Laravel, généré une clé et fixer les permissions :
(Attention la premier commande vide votre /var/www)

rm -rf /var/www/*
composer create-project --prefer-dist laravel/laravel /var/www/back/

cd /var/www/back/
php artisan key:generate --ansi


Installer Vue

cd /var/www/
mkdir front
cd front
npm create vue@latest .
npm install

npm run dev

npm run build

Cette dernière commande crée un répertoire dist et transpile le projet dedans, il faudra exécuter cette commande a chaque fois que vous update la version public.

Pour développer, la commande npm run dev vue en formation est à remplacer par npm run serve (en étant dans le repertoire /var/www/public)

Installer phpMyAdmin :

mkdir /var/www/mysql/
cd /var/www/
wget https://www.phpmyadmin.net/downloads/phpMyAdmin-latest-all-languages.tar.gz
tar -zxvf phpMyAdmin-latest-all-languages.tar.gz
rm phpMyAdmin-latest-all-languages.zip
mv phpMyAdmin-5.2.1-all-languages/ ./mysql/


Modifier apache :

nano /etc/apache2/sites-available/000-default.conf


Et remplacer tout le contenue par :

<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/front/dist
<Directory /var/www/front/dist>
AllowOverride All
</Directory>

Alias /mysql "/var/www/mysql"
<Directory /var/www/mysql>
AllowOverride All
</Directory>

Alias /api "/var/www/back/public"
<Directory /var/www/back/public>
AllowOverride All
</Directory>

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


Activer l'URL Rewriting, fixer les permissions et relance apache2 :

a2enmod rewrite

chgrp -R www-data /var/www/
chmod -R 775 /var/www/

systemctl restart apache2



Il faut bien comprendre cette configuration de Apache.
Les Alias permet de modifier les URL, /api pointera vers Laravel, /mysql vers phpMyAdmin/
N'utiliser pas ces URL dans votre routeur.
Si vous souhaitez utiliser uniquement Laravel en API vous allez devoir avoir ces URL : http://192.168.0.2/api/api/, pour y remedier :

nano /var/www/back/app/Providers/RouteServiceProvider.php


Remplacer :
            Route::middleware('api')
->prefix('api')
->group(base_path('routes/api.php'));

par :
            Route::middleware('api')
->group(base_path('routes/api.php'));


Configurer la connexion de Laravel à la base de donnés :
Commencer par crée une base de donnès "laravel" avec votre phpMyAdmin http://192.168.0.2/mysql/

nano /var/www/back/.env

Et modifier les lignes DB_.

Pour rapelle :
Crée un model, son controlleur et sa migration :
php artisan make:model NomModele -mc

Ne pas oublié la majuscule au début du nom du modele et de l'écrire au singulier.

Modifier la migration :
/var/www/back/database/migrations/2023_08_31_200004_create_todos_table.php

public function up(): void
{
Schema::create('todos', function (Blueprint $table) {
$table->id();

$table->string('name');
$table->date('deadline');
$table->integer('order');
$table->unsignedBigInteger('user_id');

$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

$table->timestamps();
});
}



Déclencher les migrations :
php artisan migrate



Permetre les requettes CORS : https://dev.to/keikesu0122/a-simple-way-to-enable-cors-on-laravel-55i



Par Mister3D le 09/03/2023, vu 276 fois
Aucun commentaire
Vous devez vous connecter pour poster un commentaire.