Bien que soit disant simple, l’installation et la compréhension des fichiers nécessaires à l’utilisation de Laraval peuvent poser parfois quelques problèmes. Je mets donc ici la marche à suivre que j’utilise pour mettre en place un nouveau site sur un serveur Ubuntu 16 avec PHP7 afin qu’elle puisse être utile à d’autres.
Pour installer avec composer j’ai besoin de curl et composer. Je les installe de la façon suivante:
sudo apt-get install php-curl
sudo apt-get install curl
sudo apt-get install php7.0-zip
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer.phar
alias composer='/usr/local/bin/composer.phar'
Connecter vous en ssh et aller dans votre dossier public. Dans mon cas: home/web-presence/public_html:
composer global require "laravel/installer"
composer create-project --prefer-dist laravel/laravel webp
Je déplace ensuite le contenu de mon dossier webp dans son dossier parent puis le contenu du dossier public dans mon dossier public_html. Mon dossier public (public_html) ressemble maintenant à cela:
Dans mon cas, je mets ensuite le user et group correspondant à mon virtual server:
chown -R www-data:www-data *
Pour ne pas avoir une page blanche sur la page d’accueil du site Laravel et dans mes log(var\log\vistualmin\xxx.log) d’erreurs le message suivant:
[autoindex:error] [pid 21829] AH01276: Cannot serve directory /home/xxxxxxx.com/public_html/: No matching DirectoryIndex (index.html,index.htm,index.php,index.php4,index.php5) found, and server-generated directory index forbidden by Options directive
Je signale à Laravel que je n’utilise pas un dossier public mais public_html en modifiant le fichier index.php de la sorte.
$app = require_once __DIR__.'/../bootstrap/app.php';
echo __DIR__;
// set the public path to this directory
$app->bind('path.public', function() {
return __DIR__;
});
Si j’essaie d’afficher la page, j’ai à nouveau une page blanche et dans mes log(var\log\vistualmin\xxx.log) d’erreurs le message suivant:
[:error] [pid 24658] PHP Fatal error: Uncaught UnexpectedValueException: The stream or file « /home/xxxxxxx.com/storage/logs/laravel.log » could not be opened: failed to open stream: Permission denied in /home/xxxxxxx.com/vendor/monolog/monolog/src/Monolog/Handler/StreamHandler.php:107\nStack trace:\n#0 /home/xxxxxxx.com/vendor/monolog/monolog/src/Monolog/Handler/AbstractProcessingHandler.php(37):
Il faut donc que je modifie certains droits d’accès à mes fichiers. J’exécute donc les commandes suivantes pour changer les droits d’écriture et lecture::
sudo chmod -R 777 storage
sudo chmod -R 777 bootstrap/cache
Vous devriez maintenant avoir la page suivante visible:
Pour installer et lier la base de données, modifiez le fichier .env (qui est parfois un fichier caché) et entrez les informations de connexion:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=********
DB_USERNAME=********
DB_PASSWORD=*********
Si le fichier .env n’est pas modifié, vous risquez d’avoir l’erreur suivante:
[Illuminate\Database\QueryException] SQLSTATE[HY000] [1045] Access denied for user ‘homestead’@’localhost’ (using password: YES) (SQL: select * from information_schema.tables where table_schema = homestead and table_name = migrations)
Pour créer les tables de la base de données, il suffit maintenant d'effectuer la commande:
php artisan migrate
Elle va créer les tables migrations, password_resets, users
#Comme j'utilise laravelcollective/html je l'installe aussi (optionnel)
composer require laravelcollective/html
php artisan cache:clear
Nous pouvons maintenant passer au chapitre suivant qui va vous apprendre à les bases des vues et contrôleurs laravel.