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 `_