Archives de catégorie : Developpement

Comment résoudre les problèmes de droits XAMPP avec WordPress sous MAC ?

Lors de l’installation de Xampp sous MAC, les paramètres de gestion de droits sur les dossiers font que WordPress n’a pas accès en écriture sur ses répertoires.

Vous obtiendrez donc un message d’erreur à l’installation vous demandant de créer le fichier wp-config.php.

Afficher l’image source


Rendez-vous alors dans Finder et dans le répertoire htdocs puis faites un clic droit sur le dossier de WordPress.

Afficher l’image source


Cliquez ensuite sur lire les informations.


Dans la fenêtre qui s’ouvre vous pouvez voir en bas la section Partages et permissions qui liste les droits selon les profils. La ligne everyone est en lecture seule.

Afficher l’image source


Pour la changer cliquez sur le cadenas, entrez votre mot de passe ou votre empreinte avec le touch id et changez la valeur pour Lecture et écriture puis réactualisez la page.

Lorsque j’installe une extension, WordPress me demande des accès ftp ?

Petite subtilité également du comportement sous Mac, vous devez ici éditer votre fichier wp-config.php et y rajouter la ligne suivante:

define( ‘FS_METHOD’, ‘direct’ );

Vous êtes maintenant prêt pour utiliser WordPress depuis votre Mac !

Attention ces manipulations sont à faire pour un environnement de développement.

L’accès en mode lecture écriture pour tous est fortement déconseillé sur des serveurs de production !

Comment synchroniser des répertoires FTP avec lftp ?

Lftp est un un programme disponible sous UNIX qui permet de faire des transferts FTP mais également de synchroniser deux répertoires distants.

Prenons l’exemple d’une synchronisation du dossier par défaut d’Apache /var/www/html que l’on voudrait sauvegarder sur un serveur distant dans /var/backups/html

La première étape est de vous connecter à votre serveur distant

lftp
open nom_d_utilisation:mot_de_passe@ip_ou_nom_du_serveur

Si elle n’est pas installée sur votre système vous pouvez l’installer avec yum ou apt par exemple sous Debian:

apt-get update
apt-get install lftp

Une fois connecté vous pouvez lister les fichiers et dossiers présents avec ls pour vérifier que la connexion est correcte.

Pour quitter lftp entrez la commande quit

Maintenant que nous avons vu que la connexion s’effectue comme il faut nous allons nous intéresser à la commande mirror qui va nous permettre de synchroniser deux répertoires.

Elle s’utilise de la façon suivante:

lftp nomdutilisateur:motdepasse@ip -e "mirror  /var/www/html /var/backups/html;quit"

Cette commande s’avère très pratique pour effectuer des sauvegardes mais également pour des migrations de serveurs plutôt que de récupérer en local pour renvoyer ensuite sur une autre serveur vous pouvez faire l’opération bien plus rapidement.

La commande mirror propose une multitude de paramètres comme -e pour supprimer les fichiers qui auraient été supprimés de l’hôte distant, -R pour non pas télécharger des fichiers d’un serveur distant mais la de les envoyer vers un autre FTP on inverse alors la commande.

Voici ci-dessous la liste des paramètres issue du site officiel (http://lftp.yar.ru/lftp-man.html )

              -c,      --continue                 continue a mirror job if possible
              -e,      --delete                   delete files not present at the source
                       --delete-excluded          delete files excluded at the target
                       --delete-first             delete old files before transferring new ones
                       --depth-first              descend into  subdirectories  before  transferring
                                                  files
                       --scan-all-first           scan  all directories recursively before transfer‐
                                                  ring files
              -s,      --allow-suid               set suid/sgid bits according to the source
                       --allow-chown              try to set owner and group on files
                       --ascii                    use ascii mode transfers (implies --ignore-size)
                       --ignore-time              ignore time when deciding whether to download
                       --ignore-size              ignore size when deciding whether to download
                       --only-missing             download only missing files
                       --only-existing            download only files already existing at target
              -n,      --only-newer               download only newer files (-c won't work)
                       --upload-older             upload even files older than the target ones
                       --transfer-all             transfer all files, even seemingly the same at the
                                                  target site
                       --no-empty-dirs            don't    create    empty    directories   (implies
                                                  --depth-first)
              -r,      --no-recursion             don't go to subdirectories
                       --recursion=MODE           go to subdirectories on a condition
                       --no-symlinks              don't create symbolic links
              -p,      --no-perms                 don't set file permissions
                       --no-umask                 don't apply umask to file modes
              -R,      --reverse                  reverse mirror (put files)
              -L,      --dereference              download symbolic links as files
                       --overwrite                overwrite plain files without removing them first
                       --no-overwrite             remove and re-create plain files instead of  over‐
                                                  writing
              -N,      --newer-than=SPEC          download only files newer than specified time
                       --older-than=SPEC          download only files older than specified time
                       --size-range=RANGE         download only files with size in specified range
              -P,      --parallel[=N]             download N files in parallel
                       --use-pget[-n=N]           use pget to transfer every single file
                       --on-change=CMD            execute the command if anything has been changed
                       --loop                     repeat mirror until no changes found
              -i RX,   --include=RX               include matching files
              -x RX,   --exclude=RX               exclude matching files
              -I GP,   --include-glob=GP          include matching files
              -X GP,   --exclude-glob=GP          exclude matching files
                       --include-rx-from=FILE
                       --exclude-rx-from=FILE
                       --include-glob-from=FILE
                       --exclude-glob-from=FILE   load  include/exclude  patterns from the file, one
                                                  per line
              -f FILE, --file=FILE                mirror  a  single  file  or  globbed  group  (e.g.
                                                  /path/to/*.txt)
              -F DIR,  --directory=DIR            mirror  a  single directory or globbed group (e.g.
                                                  /path/to/dir*)
              -O DIR,  --target-directory=DIR     target base path or URL
              -v,      --verbose[=level]          verbose operation
                       --log=FILE                 write lftp commands being executed to FILE
                       --script=FILE              write lftp commands to  FILE,  but  don't  execute
                                                  them
                       --just-print, --dry-run    same as --script=-
                       --max-errors=N             stop after this number of errors
                       --skip-noaccess            don't try to transfer files with no read access.
                       --use-cache                use cached directory listings
                       --Remove-source-files      remove  source files after transfer (use with cau‐
                                                  tion)
                       --Remove-source-dirs       remove source files and directories after transfer
                                                  (use  with  caution).   Top level directory is not
                                                  removed if it's name ends with a slash.
                       --Move                     same as --Remove-source-dirs
              -a                                  same as --allow-chown --allow-suid --no-umask

Comment faire un package hors ligne pour une application React avec NPM Serve?

Bien que la plupart des usages de React soient destinés à Internet il arrive que l’on ne puisse pas avoir d’accès extérieur dans le cadre du déploiement d’une application sur des machines autonomes déconnectées d’Internet.

Tout fonctionnait parfaitement pour moi jusqu’au moment du déploiement sur l’ordinateur cible, je voulais garder les url telles qu’elles étaient afin de ne pas avoir à réadapter l’application si elle venait à être publiée sur le web et la documentation React conseille plusieurs serveurs web, Serve, Apache, Express, etc.

Dans cet article je vais vous montrer comment procéder avec npm et serve.

Tout d’abord il vous faut une application React, si vous n’en avez pas vous pouvez récupérer un starter kit ici https://create-react-app.dev/docs/getting-started .

Vous pouvez tester l’exécution de l’application en faisant un npm start en ouvrant ensuite votre navigateur à l’adresse http://localhost:3000

Je suppose ici que vous avez déjà un environnement de développement React d’installé.

Une fois prêt nous allons récupérer une version portable de Nodejs (https://nodejs.org/en/download/) en zip. à l’heure de l’écriture de cet article la plus récente étant 10.16.3 en LTS. Pour l’architecture je vous laisse le choix selon vos besoins.

Dé zippez l’archive et ouvrez une invite de commande dans ce dossier. (vous pouvez directement taper cmd dans la barre d’adresse de l’explorateur de fichier)

Si vous exécutez sur votre ordinateur npx serve, npm ira directement chercher dans votre environnement de développement les modules liés à serve et par l’occasion ne téléchargera pas en local dans le dossier ou alors il ira télécharger les modules mais les placera dans %appdata%/Roaming/npm-cache ce qui fait qu’en déployant le dossier zip seul vous obtiendrez le message suivant:

npx serve
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://registry.npmjs.org/serve failed, reason: getaddrinfo ENOTFOUND registry.npmjs.org registry.npmjs.org:443
npm ERR! network This is a problem related to network connectivity.
npm ERR! network In most cases you are behind a proxy or have bad network settings.
npm ERR! network
npm ERR! network If you are behind a proxy, please make sure that the
npm ERR! network ‘proxy’ config is set properly. See: ‘npm help config’

npm ERR! A complete log of this run can be found in:
npm ERR! C:\Users\micka\AppData\Roaming\npm-cache\_logs\2019-09-26T22_03_50_668Z-debug.log
Install for serve@latest failed with code 1

Pour éviter ce problème il faut au préalable installer de manière locale avec l’option –save de npm le serveur serve.

npm install serve –save

Attention il est important que vous soyez dans le dossier ou se trouvent npm et npx avant de lancer cette commande.

Une fois cette étape effectuée, vous aurez les fichiers serve et serve.cmd au même niveau que npm et npx et dans le dossier node_modules, l’ensemble des dépendances seront présentes. L’installation est maintenant réellement portable.

Vous pouvez aller plus loin en ajoutant un navigateur embarqué comme Electron par exemple et proposer un package encore plus complet.

Team Foundation Service gratuit en ligne pour les équipes de moins de 5 personnes

2012-11-13_0100

Team Foundation Server dispose maintenant d’une version hébergée en ligne sur Azure nommée Team Foundation Service, pour le moment la plateforme est entièrement gratuite et seul un plan tarifaire à été dévoilé, une offre gratuite pour les petites équipes avec un maximum de cinq utilisateurs et un nombre illimité de projets.

Si vous ne connaissez pas Team Foundation Server, il s’agit d’un outil pour les développeurs et chefs de projets qui permet d’utiliser diverses méthodes de gestion de projet comme les méthodes agiles avec Microsoft Visual Studio Scrum 2.1, MSF for Agile Software Development 6.1 ou MSF for CMMI Process Improvement 6.1. Microsoft a également publié plusieurs livres blanc portant sur le gain de production en utilisant les méthodes de développement agiles.

Autre fonction intégré à Team Foundation Service, une gestion des codes sources, le système supporte tous les langages de programmation et dispose de plugins pour Visual Studio bien évidemment mais aussi pour Eclipse et les logiciels basés dessus via Team Explorer Everywhere.

Les tarifs définitifs seront connus courant 2013 pour le moment, certains services restent en preview notamment celui de Build.

Accéder à Team Foundation Service

Développeurs, découvrez l’accélérateur Windows 8

La sortie de Windows 8 approche à grand pas et si vous êtes développeur il s’agit d’un nouveau marché (à conquérir) pour vos applications existantes ou futures. Windows 8 apporte son lot de nouveauté dont un Store ou encore une nouvelle interface , Metro …

L'Accélérateur Windows 8 !

Microsoft propose actuellement un programme nommé “L’accélérateur WIndows 8”, le concept est le suivant: Vous proposez une application (un nom,une description, une technologie ainsi que les échéances). Par la suite vous serez contactés par Microsoft pour être coaché et guidé dans la réalisation de l’application autant au niveau du développement que du design.  Sont par exemple mis à disposition des développeurs, des liens vers les blogs des équipes Microsoft en charge de Windows 8, des ressources pour les designer, des forums et même des exemples d’application à télécharger.

Pour finir si votre application est retenue, elle sera alors mise en avant par Microsoft lors de la sortie de Windows 8 !

Pour participer à ce programme il vous suffit de remplir le formulaire présent sur la page de l’accélérateur Windows 8

Quelques blogs et articles pouvant vous aider dans la réalisation de votre première application Windows 8: