Afin de pouvoir exécuter l'application sur votre poste, vous devez d'aborder installer les dépendances suivantes :
- php7.3 (min)
- Mysql
- NodeJS
- git
- sudo apt install php php-cli
- récupérer le lien de téléchargement sur : https://dev.mysql.com/downloads/repo/apt/
- sudo wget lienDeTelechargement
- sudo dpkg -i fichierReçu
- choisir les valeurs par défault (recommandé)
- sudo apt update
- sudo apt install mysql-server
- vérifier l'installation : sudo systemctl status mysql
- sudo apt install nodejs
- sudo apt install git-all
- En vous connectant à votre serveur en ssh (dossier /var/www) * git clone [email protected]:guillaume60240/ECF-mediatheque.git nomDuDossier
- Vous rendre dans le dossier ainsi créé
- composer install jquery
- composer install @poppersjs/core
- composer install
- composer update (pour que tout soit à jour)
- npm run build (pour créer le fichier style et js)
- créer un fichier .env.local pour y renseigner * l'utilisateur * le mot de passe * l'url * nom de la base de données DATABASE_URL="mysql://user:mdp@url/dbname?serverVersion=5.7"
- php bin/console doctrine:database:create (crée la base de donées)
- Vérification sql * show databases;
- Créer les tables
- php bin/console doctrine:migrations:migrate (à partir du dossier du projet)
- table book :
CREATE TABLEbook
(
id
int(11) NOT NULL,
category_id
int(11) NOT NULL,
title
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
picture
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
parution
int(11) NOT NULL,
author
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
available
tinyint(1) NOT NULL,
description
longtext COLLATE utf8mb4_unicode_ci NOT NULL,
title_slug
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
author_slug
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - table category :
CREATE TABLEcategory
(
id
int(11) NOT NULL,
name
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
sub_category
varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL,
name_crud
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
sub_category_crud
varchar(255) COLLATE utf8mb4_unicode_ci DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - table reservation
CREATE TABLEreservation
(
id
int(11) NOT NULL,
user_id
int(11) NOT NULL,
book_id
int(11) NOT NULL,
created_at
datetime NOT NULL COMMENT '(DC2Type:datetime_immutable)',
validate
tinyint(1) NOT NULL,
validate_at
datetime DEFAULT NULL COMMENT '(DC2Type:datetime_immutable)',
restitution
tinyint(1) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - table user
CREATE TABLEuser
(
id
int(11) NOT NULL,
email
varchar(180) COLLATE utf8mb4_unicode_ci NOT NULL,
roles
json NOT NULL,
password
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
firstname
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
name
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL,
birthday
date NOT NULL,
address
longtext COLLATE utf8mb4_unicode_ci NOT NULL,
created_at
datetime NOT NULL COMMENT '(DC2Type:datetime_immutable)',
mail_validate
tinyint(1) NOT NULL,
account_validate
tinyint(1) NOT NULL,
location
int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - table validation
CREATE TABLEvalidation
(
id
int(11) NOT NULL,
user_id
int(11) NOT NULL,
code
varchar(255) COLLATE utf8mb4_unicode_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci; - Ajout des clés primaires
ALTER TABLEbook
ADD PRIMARY KEY (id
),
ADD KEYIDX_CBE5A33112469DE2
(category_id
);
ALTER TABLEbook
MODIFYid
int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=10;
ALTER TABLEcategory
ADD PRIMARY KEY (id
);
ALTER TABLEcategory
MODIFYid
int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2;
ALTER TABLEreservation
ADD PRIMARY KEY (id
),
ADD KEYIDX_42C84955A76ED395
(user_id
),
ADD KEYIDX_42C8495516A2B381
(book_id
);
ALTER TABLEreservation
MODIFYid
int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;
ALTER TABLEuser
ADD PRIMARY KEY (id
),
ADD UNIQUE KEYUNIQ_8D93D649E7927C74
(email
);
ALTER TABLEuser
MODIFYid
int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;
ALTER TABLEvalidation
ADD PRIMARY KEY (id
),
ADD KEYIDX_16AC5B6EA76ED395
(user_id
);
ALTER TABLEvalidation
MODIFYid
int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=9; - Ajout des contraintes
ALTER TABLEreservation
ADD CONSTRAINTFK_42C8495516A2B381
FOREIGN KEY (book_id
) REFERENCESbook
(id
),
ADD CONSTRAINTFK_42C84955A76ED395
FOREIGN KEY (user_id
) REFERENCESuser
(id
);
ALTER TABLEvalidation
ADD CONSTRAINTFK_16AC5B6EA76ED395
FOREIGN KEY (user_id
) REFERENCESuser
(id
);
Permet d'allouer des droits d'écriture à symfony dans le dossier var (doc symfony)
- HTTPDUSER=$(ps axo user,comm | grep -E '[a]pache|[h]ttpd|[_]www|[w]ww-data|[n]ginx' | grep -v root | head -1 | cut -d\ -f1)
- sudo setfacl -dR -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var
- sudo setfacl -R -m u:"$HTTPDUSER":rwX -m u:$(whoami):rwX var
- Si problèmes de droits => chmod 777 public/uploads/books
- Commande symfony
php bin/console app:user:superadmin ‘adresseMailUtilisateur’ - Commande sql (si besoin)
UPDATEuser
SETroles
= '["ROLE_ADMIN", "ROLE_SUPER_ADMIN", "ROLE_MEMBER" ]' WHEREuser
.email
= "mailUtilisateur"; UPDATEuser
SETaccount_validate
= '1' WHEREuser
.email
= "mailUtilisateur";
- Suppressions automatiques des réservations arrivées à échéances (3jours)
app:reservations:cleanup - Suppressions des inscrits non validés (après 15 jours)
app:users:cleanup