samedi 2 septembre 2017

Installation de CakePHP 3

Contenu du didacticiel 


Didacticiel de la préparation
1. Vagrant et Virtual Box

2. Installer Apache

3. Installer MySQL

4. Installer PHP 7

CakePHP 3
1. Installation de CakePHP 3

2. Bake et Migrations

Installer les paquets pour PHP


D'abord, faire ce commande pour installer les paquets nécessaire (Si vous utilisez le dépôt de webtatic):
$ sudo yum -y install php71w-intl php71w-mbstring php-71w-xml
Ou:
$ sudo yum -y install php-intl php-mbstring php-xml

Et redémarrer Apache:
Pour CentOS 7:
$ sudo systemctl restart httpd.service
Pour CentOS 6:
$ sudo service httpd restart 

Et aller dans le dossier partagé:
$ cd /vagrant

Installer composer


Installer "composer":
$ curl -sS https://getcomposer.org/installer | php
$ sudo mv composer.phar /usr/local/bin/composer

Vérifier si c'est bien installé:
$ composer

Si ça s'affiche après avoir exécuté la commande "composer", c'est bien installé.

Faire ce commande:
$ composer self-update

Installer CakePHP3


Installer cakephp3 avec composer:
$ composer create-project --prefer-dist cakephp/app cake
"cake" est un nom du projet.

Si on a un problème et si on veut l'installer comme un super utilisateur:
$ su
# composer create-project --prefer-dist cakephp/app cake

Et il vous sera demander:
Created `config/app.php` file
Set Folder Permissions ? (Default to Y) [Y,n]?
C'est à propos de les permissions. Répondre "Yes" (oui).

On va démarrer le serveur intégré. Aller dans le cake dossier:
$ cd /vagrant/cake

Démarrer le serveur intégré:
$ bin/cake server -H 0.0.0.0

Et le serveur va démarrer:
Welcome to CakePHP v3.4.9 Console
---------------------------------------------------------------
App : src
Path: /vagrant/cake/src/
DocumentRoot: /vagrant/cake/webroot
---------------------------------------------------------------
built-in server is running in http://0.0.0.0:8765/
You can exit with `CTRL-C`

Si on utilise "Private network" (Réseau privé), URL est: http://192.168.33.10:8765/

Si on utilise "Public network"(Réseau public) avec le didacticiel, URL est: http://192.168.11.100:8765/
(si on utilise pas vagrant, utiliser http://localhost:8765/.)

Et on va vérifier si ça bien fonctionner:




On va changer le fichier de configuration d'Apache:
$ sudo vi /etc/httpd/conf/httpd.conf

(Appuyez sur la touche A du clavier pour accéder au mode insérer pour pouvoir éditer le fichier. Appuyez sur la touche échap pour arrêter mode insérer, après d'avoir fini, appuyez sur les touches  "Shift + g" pour aller en bas de page. "Shift + zz" pour enregistrer et fermer le fichier.  On peut au mode commande en appuyant sur ":". Pour enregistrer et quitter le mode commande, écrire ":wq" et appuyez sur entrée. Pour quitter le fichier sans sauvegarder, ":q!" et appuyez sur entrée. Pour chercher un mot, appuyez sur "?"  et écrire le mot cherché. Par exemple, si on écrit "?aaa" et que l'on appuie sur entrée, "aaa" sera recherché et surligné dans le fichier. Appuyez sur "n" pour aller au résultat suivant.)

Changer le fichier de configuration d'Apache comme ça:
<Directory "/var/www/html" />
    Options FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>


Enregistrer et fermer le fichier.

Redémarrer Apache.
Pour CentOS7:
$ sudo systemctl restart httpd.service
Pour CentOS6:
$ sudo service httpd restart

Accéder la page d'index:
Réseau privé: http://192.168.33.10/cake/
Réseau public: http://(your URL)/cake/

It works.

Si il y a beaucoup des erreurs sur la page d'index:
$ sudo chown -R apache:apache /vagrant/cake
Si il y a encore erreurs sur la page d'index, écrire comme çà dans le Vagrantfile:
config.vm.synced_folder "./", "/vagrant", owner: 'vagrant', group: 'apache', mount_options: ['dmode=777', 'fmode=777']
Et "vagrant reload".
Si il y a encore erreurs sur la page d'index, ça peut être à cause de SE linux. Arrêter SE linux:
$ sudo getenforce
Enforcing
$ sudo setenforce 0
$ sudo getenforce
Permissive
Et "vagrant reload".

Créer une base de données pour CakePHP:
$ mysql -u root -proot
mysql> CREATE DATABASE test;
mysql> exit
(Utiliser son propre mot de passe et nom d'utilisateur)

Et changer le fichier de configuration de la base de données dans CakePHP:
$ sudo vi /vagrant/cake/config/app.php

Changer le mot de passe, nom d'utilisateur et la base de données:
'Datasources' => [
    'default' => [
        'className' => 'Cake\Database\Connection',
        'driver' => 'Cake\Database\Driver\Mysql',
        'persistent' => false,
        'host' => 'localhost',
        /**
         * CakePHP will use the default DB port based on the driver selected
         * MySQL on MAMP uses port 8889, MAMP users will want to uncomment
         * the following line and set the port accordingly
         */
        //'port' => 'nonstandard_port_number',
        'username' => 'root',
        'password' => 'root',
        'database' => 'test',
        'encoding' => 'utf8',
        'timezone' => 'UTC',
        'cacheMetadata' => true,

On va vérifier si CakePHP bien fonctionner. Il y avait une erreur:

Mais maintenant, il n'y a pas l'erreur:

Et c'est fini! :)


Aucun commentaire:

Enregistrer un commentaire