Sélectionner une page

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
Aperçu de la console lors de l’installation de Laravel

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:
Page d’accueil standard Laravel

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.