Installation
===========
Prérequis
---------
Pour construire l'application il vous faudra :
* PHP version 8.1 minimum (avec ext-ctype, ext-gd, ext-iconv, ext-intl, ext-xsl) ;
* Composer (version 2 minimum) ;
* Yarn (version 1.17 minimum).
.. note::
Cela ne sera pas nécéssaire si vous utilisez Docker.
Pour utiliser l'application il vous faudra :
* PHP version 8.1 minimum (avec ext-ctype, ext-gd, ext-iconv, ext-intl, ext-xsl) ;
* Un compte Google (pour envoyer des mails) ;
* Une base de données (MySQL ou MariaDB ou PostgreSQL ou SQLite) ;
* Une clé d'API Google (voir plus dans la partie "``_") ;
* Un compte OVH avec des sms dessus et de quoi s'y connecter (voir plus dans la partie "`Compte OVH`_") ;
* Une clé d'API OpenCage (voir plus dans la partie "`API OpenCage`_").
Installation des prérequis
-------------------------
PHP
+++
Debian et dérivées
*****************
.. warning::
Les commandes ci dessous demandent un accés administrateur ou sudo.
.. code-block:: sh
sudo apt update -y
sudo apt install ca-certificates apt-transport-https software-properties-common wget curl lsb-release -y
curl -sSL https://packages.sury.org/php/README.txt | sudo bash -x
sudo apt update -y
sudo apt install php8.1 -y
sudo apt install libapache2-mod-php8.1
sudo systemctl restart apache2
sudo apt install php8.1-common php8.1-curl php8.1-bcmath php8.1-intl php8.1-mbstring php8.1-xmlrpc php8.1-mcrypt php8.1-mysql php8.1-gd php8.1-xml php8.1-cli php8.1-zip php8.1-ctype php8.1-iconv php8.1-intl php8.1-xsl -y
sudo apt install php8.1-fpm libapache2-mod-fcgid -y
sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.1-fpm
sudo systemctl restart apache2
Liens :
* `it-connect.fr `_
* `Computing for Geeks `_
RHEL et dérivées
***************
.. warning::
Les commandes ci dessous demandent un accés administrateur ou sudo.
.. code-block:: sh
sudo yum update -y
sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm -y
sudo dnf install dnf-utils https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
sudo dnf module reset php -y
sudo dnf module enable php:remi-8.1 -y
sudo dnf install php
sudo dnf install php-{cli,fpm,mysqlnd,zip,devel,gd,mbstring,curl,xml,pear,bcmath,json,opcache,redis,memcache,xsl,iconv,intl,ctype}
sudo yum update -y
Liens :
* `Remi's RPM repository - Blog `_
* `Computing for Geeks `_
Windows et MacOs
****************
Je vous recomande l'outil `XAMPP `_
Composer
++++++++
Veuillez suivre les consignes d'installation de `Composer `_
Yarn
++++
Il faut tout d'abord installer node js et npm pour cela allez sur le site de `node js `_.
Ensuite installez yarn via npm :
.. code-block:: sh
npm install --global yarn
Base de données
+++++++++++++++
Install MariaDB
***************
Debian et dérivées :
.. warning::
Les commandes ci dessous demandent un accés administrateur ou sudo.
.. code-block:: sh
sudo apt update -y
sudo apt install mariadb-server -y
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
sudo mysql_secure_installation
RHEL et dérivées :
.. warning::
Les commandes ci dessous demandent un accés administrateur ou sudo.
.. code-block:: sh
sudo yum update -y
sudo yum install mariadb-server -y
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
sudo mysql_secure_installation
Windows et MacOs :
Je vous recomande l'outil `XAMPP `_
Install PostgreSQL
******************
Debian et dérivées :
.. warning::
Les commandes ci dessous demandent un accés administrateur ou sudo.
.. code-block:: sh
sudo apt update -y
sudo apt install postgresql postgresql-client -y
sudo systemctl enable --now postgresql
sudo systemctl start postgresql
sudo mysql_secure_installation
RHEL et dérivées :
.. warning::
Les commandes ci dessous demandent un accés administrateur ou sudo.
.. code-block:: sh
sudo yum update -y
sudo yum install @postgresql -y
sudo postgresql-setup --initdb
sudo systemctl enable --now postgresql
sudo systemctl start postgresql
Windows :
`Liens `_
Compte OVH
++++++++++
Pour avoir un compte OVH il faut acheter des SMS chez ce dernier `OVH `_.
.. note::
Attention cela peut mettre du temps car une vérification humaine peut être réalisée.
API OpenCage
++++++++++++
Afin de l'obtenir il faut se créer un compte sur `OpenCage `_ puis récupérer le tocken dans l'onglet Gcoding API.
Construire l'application
------------------------
Il faut d'abord utiliser Composer en utilisant la commande :
.. code-block:: sh
composer install
Ensuite il faut charger les assets avec les commandes :
.. code-block:: sh
yarn run build
php bin/console assets:install
Configurer l'application
------------------------
.. note::
Cela ne sera pas nécéssaire si vous utilisez Docker.
Il faut créer un fichier à la racine du projet qui se nomme .env.local avec dedans les informations suivantes :
.. code-block:: ini
MAILER_DSN=gmail+smtp://{{user}}@gmail.com:{{pass}}@default
# Si la BDD est MySQL ou MariaDB
DATABASE_URL="mysql://{{user}}:{{pass}}@{{IP ou DNS}}:3306/{{DB_NAME}}?charset=utf8mb4"
# Si la BDD est PostgreSQL
DATABASE_URL="postgresql://{{user}}:{{pass}}@{{IP ou DNS}}:5432/{{DB_NAME}}?serverVersion=14&charset=utf8"
# Si la BDD est SQLite
DATABASE_URL="sqlite:///%kernel.project_dir%/var/data.db"
DEFAULT_LOCALE=fr
APP_ENV=prod
API_KEY_GOOGLE={{tocken}}
OVHCLOUD_DSN=ovhcloud://{{user}}:{{pass}}@default?consumer_key={{consumer_key}}&service_name={{service_name}}
KEY_OPEN_CAGE_DATA={{TOCKEN}}
Création et initialisation de la bdd
------------------------------------
Veuillez executer les commandes suivantes :
.. code-block:: sh
php bin/console doctrine:database:create --if-not-exists
php bin/console doctrine:migrations:migrate --no-interaction
Mise en place de l'application
-------------------------------
Docker
++++++
Si vous utilisez Docker vous pouvez utiliser le docker-compose.yml qui se trouve dans le dossier docker.
Installation classique
+++++++++++++++++++++
Il n'y a pas de configuration particulière à faire sur le serveur web (pas plus que pour un site web avec php).
Cette configuration étant classique et propre à chaque serveur web cela sort du cardre de l'outil.
Cependant je vous conseille les liens ci dessous :
Symfony DOCS :
* `Apache `_
* `nginx `_
Mozilla :
* `Apache `_
* `nginx `_
* `Caddy `_
* `HAProxy `_
* `Traefik `_