On suppose que l'on se trouve sous Ubuntu 20.04 LTS mais cela n'a pas d'influence par rapport à une autre distribution Linux de même type (Debian).
La première étape consiste à installer VirtualBox sous Ubuntu. Généralement, j'utilise synaptic pour réaliser ce genre d'action. Sinon, il faudra installer plusieurs packages grâce à la commande apt dans le terminal :
sudo apt install virtualbox virtualbox-dkms virtualbox-qt
Se rendre sur le site d'Ubuntu et télécharger la version 22.04 sous forme d'un fichier iso, par exemple :
Lancer virtualbox, puis cliquer sur Nouvelle pour créer une nouvelle machine virtuelle.
Les images sont affichées dans une taille plus petite que leur taille réelle. Vous pouvez les visualiser de manière beaucoup plus nette en faisant un clic droit, suivi de "Ouvrir l'image dans un nouvel onglet" sous Google Chrome.
La machine virtuelle sera nommée devweb_symfony :
Cliquez ensuite sur Suivant.
Continuez en choisissant la taille de mémoire allouée à la machine virtuelle, dans mon cas, j'attribue 4096 Mo, puis cliquez sur Suivant.
De retour sur la fenêtre principale, cliquer sur Configuration.
Cliquez sur l'onglet Système sur la gauche, puis sur l'onglet Processeur en haut et allouer 4 CPUs. Activez également les fonctions avancées (cases cochées).
Dans l'onglet Stockage sur la gauche, dans Contrôleur IDE, cliquez sur le petit CD avec un signe plus (celui qui se trouve à gauche), puis ajoutez une nouvelle entrée qui sera le fichier
Sélectionnez ensuite le disque en cliquant dessus, puis cliquez sur le bouton Ok en bas à droite
Cliquez ensuite sur le bouton Démarrer en ayant choisi la machine virtuelle sur la gauche.
Dans la fenêtre qui s'ouvre, choisissez le disque de démarrage qui correspond à l'ISO puis cliquez sur Démarrer :
Dans la fenêtre courante de la machine virtuelle, choisir Try or Install Ubuntu afin de commencer l'installation d'Ubuntu :
Lorsque l'installation commence, choisir le français (ou une autre langue) puis cliquez sur Installer Ubuntu
Suivre la procédure d'installation classique mais en choisissant une installation Minimale, celle ci sera un peu plus rapide.
Pour l'utilisateur choisir le nom devweb (pour Développeur Web) ainsi que pour le mot de passe.
L'installation se poursuit sans que vous ayez à intervenir mais demande pas mal de temps.
Redémarrer la machine virtuelle et se connecter en tant qu'utilisateur devweb avec le mot de passe devweb.
La première chose à faire consiste à mettre à jour Ubuntu en ouvrant un terminal grâce à la combinaison de touches Ctrl+Alt+T.
Dans le terminal saisir :
sudo apt update
Puis installer synaptic :
sudo apt install synaptic
Le gestionnaire de mises à jour va alors se déclencher et il faudra installer les mises à jour. Cela peut prendre du temps.
Lancer synaptic et installer php8.1 ainsi que php8.1-{fpm, intl, mbstring, mysql, xml, zip}.
Installez les packages Linux suivants dont nous auront besoin par la suite :
sudo apt install curl git zip unzip
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/bin/composer
Se rendre sur le site Visual Studio et télécharger le fichier qui correspond à votre système d'exploitation. En l'occurrence ici, il s'agit de Linux sous Ubuntu, donc d'un fichier d'extension
Installez ensuite le package téléchargé, par exemple :
sudo dpkg -i code_1.70.2-1660629410_amd64.deb
Afin d'améliorer l'interface, lancez VSCode (code) et ajouter les extensions suivantes :
Installer le SGBD MySQL, pour cela utiliser synaptic et installer
Il semble qu'actuellement sur une installation récente, on peut accéder à MySQL avec des privilèges administrateur, il suffit de faire :
sudo mysql -u root
Par mesure de précaution, il est préférable de modifier le mot de passe de l'administrateur. Voici comment procéder :
sudo systemctl stop mysql.service
sudo mkdir /var/run/mysqld
sudo chown mysql /var/run/mysqld
sudo mysqld_safe --skip-grant-tables&
sudo mysql -u root mysql
mysql> update mysql.user set authentication_string=null where User='root';
mysql> flush privileges;
mysql> alter user 'root'@'localhost' identified with mysql_native_password by 'rootpwd';
mysql> flush privileges;
mysql> exit;
Il faut ensuite supprimer mysql_safe et relancer mysql. On commence par recherche la première occurrence de
ps -ef | grep "mysql"
root 19613 2 .... mysql_safe....
sudo kill -9 19613
# relancer mysql
sudo systemctl start mysql.service
Se connecter finalement en tant qu'administrateur (root) avec mot de passe et :
sudo mysql -u root -p
mysql> CREATE DATABASE ccp;
mysql> CREATE USER 'ccpuser'@'localhost' IDENTIFIED BY 'ccppwd';
mysql> GRANT ALL PRIVILEGES ON ccp.* TO 'ccpuser'@'localhost';
mysql> flush privileges;
mysql> exit;
Utiliser synaptic pour installer PhpMyAdmin qui permet de gérer MySQL sous forme d'une application PHP.
Lors de l'installation, choisir le serveur apache et cliquer sur le bouton Suivant.
Saisir ensuite deux fois le mot de passe de l'administrateur MySQL, en l'occurrence nous avons choisi : rootpwd
Nous allons installer la version CLI (Command Line Interface) de Symfony qui permet d'interagir avec Symfony dans un terminal en ligne de commande.
Dans un terminal saisir les commandes suivantes :
sudo apt install apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/symfony/stable/setup.deb.sh' | sudo -E bash
sudo apt install symfony-cli
Lancez enfin la commande suivante qui devrait vous indiquer que tout est OK.
symfony check:requirements
Définir ensuite les variables globales de git dont Symfony a besoin pour créer un projet. Vous pouvez remplacer par votre propre adresse email et votre nom :
git config --global user.email "devweb@devweb.com"
git config --global user.name "devweb"
Vous pouvez alors essayer de créer un squelette de projet afin de vérifier que tout fonctionne bien :
symfony new --webapp myproject
Par défaut, Symfony utilise git et réalise un premier commit avec les fichiers initiaux. On peut le constater en tapant dans un terminal :
cd myproject
git log
Vous pouvez lancer le projet en saisissant :
symfony serve
qui crée un serveur web pour votre application sur l'URL
Si vous rechargez la page plusieurs fois, vous verrez que la couleur de fond sera modifiée.