Installer Communecter Ubuntu 16.04 Prérequis Pour utiliser Communecter vous devez avoir Apache 2 & PHP 5.6 (Attention, ne fonctionne pas sur PHP 7) sudo apt-get install apache2 php5.6 Pour passer de la version 7 à 5.6 vous pouvez suivre la solution suivante : https://askubuntu.com/questions/761713/how-can-i-downgrade-from-php-7-to-php-5-6-on-ubuntu-16-04 Certains modules doivent être installé rewrite sudo a2enmod rewrite curl sudo apt-get install php5.6-curl mcrypt sudo apt-get install php5.6-mcrypt gd sudo apt-get install php5.6-gd mongo sudo apt-get install php5.6-mongo dom sudo apt-get install php5.6-dom Pour vérifier votre version de PHP php -v MongoDB 3.4 (Ne fonctionne pas avec la 3.6) : sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6 echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list sudo apt-get update sudo apt-get install -y mongodb-org Install Clone from GitHub : mkdir ~/dev && mkdir ~/dev/communecter mkdir ~/dev/communecter/modules cd /var/www/html/ sudo ln -s ~/communecter communecter cd ~/dev/communecter git clone https://github.com/pixelhumain/pixelhumain.git cd modules/ git clone https://github.com/pixelhumain/citizenToolKit.git git clone https://github.com/pixelhumain/co2.git ln -s co2 network git clone https://github.com/pixelhumain/api git clone https://github.com/pixelhumain/graph.git git clone https://github.com/pixelhumain/classifieds.git git clone https://github.com/pixelhumain/ressources.git git clone https://github.com/pixelhumain/places.git git clone https://github.com/pixelhumain/chat.git git clone https://github.com/pixelhumain/learn.git git clone https://github.com/pixelhumain/survey.git git clone https://github.com/pixelhumain/interop.git git clone https://github.com/pixelhumain/cotools.git git clone https://github.com/pixelhumain/eco.git cd ../ Installer les dépendances avec Composer : sudo apt install composer cd pixelhumain/ph/ composer update composer install Rename the dbconfig file : cd protected/ cp config/dbconfig.exemple.php config/dbconfig.php Si le fichier dbconfig.php n'existe pas, créer le : nano config/dbconfig.php 'mongoYii.EMongoClient', 'server' => 'mongodb://127.0.0.1:27017/', 'db' => 'pixelhumain', ); ?> Création du dossier runtime et assets mkdir runtime sudo chmod -R 775 runtime/ cd ../ mkdir assets sudo chmod -R 775 assets/ cd ../../ sudo chown -R [votreUser]:www-data pixelhumain sudo chown -R [votreUser]:www-data modules Configuration And configure Apache vhost : edit /etc/apache2/sites-available/communecter.conf : # The ServerName directive sets the request scheme, hostname and port that # the server uses to identify itself. This is used when creating # redirection URLs. In the context of virtual hosts, the ServerName # specifies what hostname must appear in the request's Host: header to # match this virtual host. For the default virtual host (this file) this # value is not decisive as it is used as a last resort host regardless. # However, you must set it for any further virtual host explicitly. #ServerName www.example.com Activate the new vhost : sudo a2ensite communecter sudo a2enmod rewrite sudo service apache2 reload Configurer MongoDB #Making the Data folder for MongoDB mkdir data/ mkdir data/db Import les données : cd modules/co2/data unzip cities.json.zip mongoimport --db pixelhumain --collection cities --file cities.json Ajouter MongoDB au démarrage et faire le script d’utilisation : sudo nano /etc/init.d/communecterdb Ajouter ceci : #!/bin/sh # ### BEGIN INIT INFO # Required-Start: $local_fs $remote_fs # Required-Stop: $local_fs $remote_fs # Provides: unattended-upgrade-shutdown-check # Default-Start: 2 3 4 5 # Default-Stop: 0 6 # Short-Description: Check if unattended upgrades are being applied # Description: Check if unattended upgrades are being applied # and wait for them to finish ### END INIT INFO Sauvegardez : sudo chmod +x /etc/init.d/communecterdb update-rc.d communecterdb defaults update-rc.d communecterdb enable Alternative : créer le script communecterdb.sh, le rendre exécutable et l’ajouter dans /etc/rc.local Vérifier que tous les composants sont installés Accéder a l’url suivant : http://127.0.0.1/ph/test Et réglez tout les points rouges. C’est bon vous pouvez utiliser COMMUNECTER Accédez à cette adresse : http://127.0.0.1/ph/ Optionnel Interface Mongo Si vous souhaitez avoir une interface pour géré MongoDB vous pouvez télécharger Robo3T : https://robomongo.org/download Email service to cron Add crontab -e : */2 * * * * curl https://127.0.0.1/ph/co2/test/docron Use Communecter is now available : http://127.0.0.1/ph/ To try the email service, go to http://127.0.0.1/ph/co2/test/docron To use in production mode, edit index.php Update Create /var/www/html/communecter/update.sh containing : red=`tput setaf 1` green=`tput setaf 2` blue=`tput setaf 0` bgWhite=`tput setab 7` reset=`tput sgr0` Make it executable and launch it.Docker Retour au TODO de Fluidlog Proposition de Marc_Toulouse sur le chat :https://chat.lescommuns.org/channel/co_dev_open L’idée en effet est de regrouper les différents façons d’installer Communecter ici : https://wiki.communecter.org/en/installing-communect.html (c’est un clone du wiki de Github) Voir plus précisément : https://wiki.communecter.org/en/installing-communect-with-docker.html (et pas https://wiki.communecter.org/en/installing-communect-on-ubuntu-16.04.html à priori car ça ne concerne pas docker) Tibor me parle aussi du nouveau PAD : http://pad.co.tools (sur CryptoPad) : ça c’est pour faire la doc. C’est vraiment ici qu’elle doit être faite : https://wiki.communecter.org/en/installing-communect-with-docker.html : en cliquant sur le crayon, on accès au wiki de Github en mode édition (faut avoir un compte github) Installation de Communecter via docker choose community edition CE https://docs.docker.com/engine/installation example install docker ubuntu https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu Erreur avec AptGet… OK docker-ce n’était pas dispo de base, il a fallu ajouter des serveurs En fait, j’ai du suivre le post:https://gist.github.com/Stoakes/a5adb36e9211964dbf00b47d36edd181 Post-installation steps for Linux https://docs.docker.com/engine/installation/linux/linux-postinstall Installer docker-compose https://docs.docker.com/compose/install Installer Communecter git clone https://gitlab.adullact.net/pixelhumain/docker ~/pixelhumain-docker cd ~/pixelhumain-docker #pour linux docker-compose -f docker-compose.yml -f docker-compose.install.yml run ph cotools --install #ou pour windows/mac utiliser docker-compose -f docker-compose-no-build.yml -f docker-compose.install-no-build.yml run ph cotools --install Mise à jour des droits Modifier les droits pour pouvoir modifier les fichiers : Pour taper ces commandes, se mettre dans le rep :cd ~/pixelhumain-docker #modifier le group/user pour pouvoir ouvrir/modifier les fichiers sudo chown -R ${USER:=$(/usr/bin/id -run)}:$USER code/ sudo chown -R ${USER:=$(/usr/bin/id -run)}:$USER code/pixelhumain/ sudo chown -R ${USER:=$(/usr/bin/id -run)}:$USER code/modules/ sudo chown -R ${USER:=$(/usr/bin/id -run)}:$USER code/log/ Voir aussi “Getting start” : https://docs.docker.com/compose/gettingstarted/#step-3-define-services-in-a-compose-file Problème d’accès Suite à cela, je n’avais pas accès à CO. Nous avons vérifié si un container tournait (voir paragraphe plus bas) -> non Nous avons supprimé le répertoire code pour tout recommencer. docker-compose -f docker-compose.yml -f docker-compose.install.yml run ph install Explication : la il va rebuilder le container front et utiliser le container install pour faire l’install sur le front c’est pour ça que l’on a 2 fichier : docker-compose.yml docker-compose.install.yml docker-compose.install.yml ne sert que pour l’install et certaine commande Suite à ces commandes, il clone tout ce qu’il faut en local, ça prend un certain temps en fonction de votre réseau… Aller sur http://localhost:5080 La première fois, j’ai eu des messages d’erreur d’accès… Thomas m’a demandé si j’avais le répertoire :/pixelhumain-docker/code/pixelhumain/ph/vendor/ mais je ne l’avais pas… Nous avons de nouveau supprimé le répertoire code, et modifié le script /pixelhumain-docker/docker-install/Dockerfile pour y ajouter curl et php Voir la présence et lancer un container Pour savoir si docker tourne, faire "docker ps" S’il n’y a rien (à part le titre des colonnes du tableau), c’est signe qu’aucun container ne tourne. Exemple : ici, il n’y a pas de container qui tourne : CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES Là, il y en a : CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 92ed85af6a28 pixelhumaindocker_front "/usr/bin/supervisord" 4 weeks ago Up About a minute 9000/tcp, 0.0.0.0:5080->80/tcp, 0.0.0.0:5443->443/tcp, 0.0.0.0:5901->9001/tcp pixelhumaindocker_front_1 8f16ade3a72b mongo "docker-entrypoint..." 4 weeks ago Up About a minute 27017/tcp pixelhumaindocker_mongo_1 Et pour lancer un container : docker-compose -f docker-compose.yml up Inscription en local Une fois sur l’interface d’accueil de CO, il faut remplir le formulaire d’inscription, sauf que le mail d’activation n’est pas envoyé. Pour passer cette étape, on “triche” avec la commande : docker-compose -f docker-compose.yml -f docker-compose.install.yml run ph cotools --emailvalid=email@example.com (en modifiant bien sur : email@example.com par l’email qui a servi à l’inscription) On rafraîchit la page, on se loge, et ça fonctionne, on arrive dans CO ! Gérer le démarrage auto https://docs.docker.com/engine/installation/linux/linux-postinstall/#configure-docker-to-start-on-boot sudo systemctl enable docker Synchronizing state of docker.service with SysV init with /lib/systemd/systemd-sysv-install... Executing /lib/systemd/systemd-sysv-install enable docker Malgré cela, CO ne démarre pas au lancement de ma machine. Accès à Communecter Je n’ai pas encore réussi (pas essayé non plus…) à le lancer au démarrage, donc à chaque fois que je souhaite lancer CO : Je vais dans mon répertoire ~/projets/pixelhumain-docker/ Je lance docker-compose -f docker-compose.yml up Je vais sur http://localhost:5080, et ça tourne ! Tout est noté à la fin du script ci-dessus… (je dis ça, car j’ai cherché un peu car je n’avais pas lu…) Ajout de Fluidgraph dans CO Ajout de Fluidgraph dans CO2 Administration de la base NoSQL (mongoDB) Pour avoir accès à mongo en dehors du container il faut ouvrir le port Voir fichier :https://github.com/pixelhumain/docker/blob/master/docker-compose.yml J’ai du ajouter la ligne concernant l’ouverture de port comme l’exemple qui suit : services: mongo: image: mongo volumes: - ./code/data/db:/data/db ports: - "5017:27017" Cela m’a permis, via l’outil Robomongo d’ajouter une collection : { "_id" : ObjectId("59f1920bc30f30536124355d"), "name" : "DEV Config", "key" : "devParams", "mangoPay" : { "ClientId" : "communecter", "ClientPassword" : "XXXXXXXXXXX", "TemporaryFolder" : "../../tmp" } } Je ne sais pas encore à quoi ça correspond, mais on m’a dit de le faire, sinon, j’avais l’erreur : ERREUR 403 Missing Configs db.applications.key == prodParamsexists Ce qui m’a permis de faire fonctionner mon instance locale.