Archives de catégorie : Developpement

Comment résoudre les problèmes de droits XAMPP avec WordP­ress sous MAC ?

Lors de l’ins­tal­la­tion de Xampp sous MAC, les para­mètres de gestion de droits sur les dossiers font que WordP­ress n’a pas accès en écri­ture sur ses réper­toires.

Vous obtien­drez donc un message d’er­reur à l’ins­tal­la­tion vous deman­dant de créer le fichier wp-config.php.

Afficher l’image source


Rendez-vous alors dans Finder et dans le réper­toire htdocs puis faites un clic droit sur le dossier de WordP­ress.

Afficher l’image source


Cliquez ensuite sur lire les infor­ma­tions.


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

Afficher l’image source


Pour la chan­ger cliquez sur le cade­nas, entrez votre mot de passe ou votre empreinte avec le touch id et chan­gez la valeur pour Lecture et écri­ture puis réac­tua­li­sez la page.

Lorsque j’ins­talle une exten­sion, WordP­ress me demande des accès ftp ?

Petite subti­lité égale­ment du compor­te­ment sous Mac, vous devez ici éditer votre fichier wp-config.php et y rajou­ter la ligne suivante:

define( ‘FS_METHOD’, ‘direct’ );

Vous êtes main­te­nant prêt pour utili­ser WordP­ress depuis votre Mac !

Atten­tion ces mani­pu­la­tions sont à faire pour un envi­ron­ne­ment de déve­lop­pe­ment.

L’ac­cès en mode lecture écri­ture pour tous est forte­ment décon­seillé sur des serveurs de produc­tion !

Comment synchro­ni­ser des réper­toires FTP avec lftp ?

Lftp est un un programme dispo­nible sous UNIX qui permet de faire des trans­ferts FTP mais égale­ment de synchro­ni­ser deux réper­toires distants.

Prenons l’exemple d’une synchro­ni­sa­tion du dossier par défaut d’Apache /var/www/html que l’on voudrait sauve­gar­der sur un serveur distant dans /var/backups/html

La première étape est de vous connec­ter à votre serveur distant

lftp
open nom_d_utilisation:mot_de_passe@ip_ou_nom_du_serveur

Si elle n’est pas instal­lée sur votre système vous pouvez l’ins­tal­ler 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éri­fier que la connexion est correcte.

Pour quit­ter lftp entrez la commande quit

Main­te­nant que nous avons vu que la connexion s’ef­fec­tue comme il faut nous allons nous inté­res­ser à la commande mirror qui va nous permettre de synchro­ni­ser deux réper­toires.

Elle s’uti­lise 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 effec­tuer des sauve­gardes mais égale­ment pour des migra­tions de serveurs plutôt que de récu­pé­rer en local pour renvoyer ensuite sur une autre serveur vous pouvez faire l’opé­ra­tion bien plus rapi­de­ment.

La commande mirror propose une multi­tude de para­mètres comme -e pour suppri­mer les fichiers qui auraient été suppri­més de l’hôte distant, -R pour non pas télé­char­ger 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 para­mètres issue du site offi­ciel (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 appli­ca­tion React avec NPM Serve?

Bien que la plupart des usages de React soient desti­nés à Inter­net il arrive que l’on ne puisse pas avoir d’ac­cès exté­rieur dans le cadre du déploie­ment d’une appli­ca­tion sur des machines auto­nomes décon­nec­tées d’In­ter­net.

Tout fonc­tion­nait parfai­te­ment pour moi jusqu’au moment du déploie­ment sur l’or­di­na­teur cible, je voulais garder les url telles qu’elles étaient afin de ne pas avoir à réadap­ter l’ap­pli­ca­tion si elle venait à être publiée sur le web et la docu­men­ta­tion 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 appli­ca­tion React, si vous n’en avez pas vous pouvez récu­pé­rer un star­ter kit ici https://create-react-app.dev/docs/getting-star­ted .

Vous pouvez tester l’exé­cu­tion de l’ap­pli­ca­tion en faisant un npm start en ouvrant ensuite votre navi­ga­teur à l’adresse http://local­host:3000

Je suppose ici que vous avez déjà un envi­ron­ne­ment de déve­lop­pe­ment React d’ins­tallé.

Une fois prêt nous allons récu­pé­rer une version portable de Nodejs (https://nodejs.org/en/down­load/) en zip. à l’heure de l’écri­ture de cet article la plus récente étant 10.16.3 en LTS. Pour l’ar­chi­tec­ture je vous laisse le choix selon vos besoins.

Dé zippez l’ar­chive et ouvrez une invite de commande dans ce dossier. (vous pouvez direc­te­ment taper cmd dans la barre d’adresse de l’ex­plo­ra­teur de fichier)

Si vous exécu­tez sur votre ordi­na­teur npx serve, npm ira direc­te­ment cher­cher dans votre envi­ron­ne­ment de déve­lop­pe­ment les modules liés à serve et par l’oc­ca­sion ne télé­char­gera pas en local dans le dossier ou alors il ira télé­char­ger les modules mais les placera dans %appdata%/Roaming/npm-cache ce qui fait qu’en déployant le dossier zip seul vous obtien­drez le message suivant:

npx serve
npm ERR! code ENOTFOUND
npm ERR! errno ENOTFOUND
npm ERR! network request to https://regis­try.npmjs.org/serve failed, reason: getad­drinfo ENOTFOUND regis­try.npmjs.org regis­try.npmjs.org:443
npm ERR! network This is a problem rela­ted to network connec­ti­vity.
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@­la­test failed with code 1

Pour éviter ce problème il faut au préa­lable instal­ler de manière locale avec l’op­tion –save de npm le serveur serve.

npm install serve –save

Atten­tion il est impor­tant que vous soyez dans le dossier ou se trouvent npm et npx avant de lancer cette commande.

Une fois cette étape effec­tuée, vous aurez les fichiers serve et serve.cmd au même niveau que npm et npx et dans le dossier node_modules, l’en­semble des dépen­dances seront présentes. L’ins­tal­la­tion est main­te­nant réel­le­ment portable.

Vous pouvez aller plus loin en ajou­tant un navi­ga­teur embarqué comme Elec­tron par exemple et propo­ser un package encore plus complet.

Team Foun­da­tion Service gratuit en ligne pour les équipes de moins de 5 personnes

2012-11-13_0100

Team Foun­da­tion Server dispose main­te­nant d’une version héber­gée en ligne sur Azure nommée Team Foun­da­tion Service, pour le moment la plate­forme est entiè­re­ment gratuite et seul un plan tari­faire à été dévoilé, une offre gratuite pour les petites équipes avec un maxi­mum de cinq utili­sa­teurs et un nombre illi­mité de projets.

Si vous ne connais­sez pas Team Foun­da­tion Server, il s’agit d’un outil pour les déve­lop­peurs et chefs de projets qui permet d’uti­li­ser diverses méthodes de gestion de projet comme les méthodes agiles avec Micro­soft Visual Studio Scrum 2.1, MSF for Agile Soft­ware Deve­lop­ment 6.1 ou MSF for CMMI Process Impro­ve­ment 6.1. Micro­soft a égale­ment publié plusieurs livres blanc portant sur le gain de produc­tion en utili­sant les méthodes de déve­lop­pe­ment agiles.

Autre fonc­tion inté­gré à Team Foun­da­tion Service, une gestion des codes sources, le système supporte tous les langages de program­ma­tion et dispose de plugins pour Visual Studio bien évidem­ment mais aussi pour Eclipse et les logi­ciels basés dessus via Team Explo­rer Everyw­here.

Les tarifs défi­ni­tifs seront connus courant 2013 pour le moment, certains services restent en preview notam­ment celui de Build.

Accé­der à Team Foun­da­tion Service

Déve­lop­peurs, décou­vrez l’ac­cé­lé­ra­teur Windows 8

La sortie de Windows 8 approche à grand pas et si vous êtes déve­lop­peur il s’agit d’un nouveau marché (à conqué­rir) pour vos appli­ca­tions exis­tantes ou futures. Windows 8 apporte son lot de nouveauté dont un Store ou encore une nouvelle inter­face , Metro …

L'Accélérateur Windows 8 !

Micro­soft propose actuel­le­ment un programme nommé “L’ac­cé­lé­ra­teur WIndows 8”, le concept est le suivant: Vous propo­sez une appli­ca­tion (un nom,une descrip­tion, une tech­no­lo­gie ainsi que les échéances). Par la suite vous serez contac­tés par Micro­soft pour être coaché et guidé dans la réali­sa­tion de l’ap­pli­ca­tion autant au niveau du déve­lop­pe­ment que du design.  Sont par exemple mis à dispo­si­tion des déve­lop­peurs, des liens vers les blogs des équipes Micro­soft en charge de Windows 8, des ressources pour les desi­gner, des forums et même des exemples d’ap­pli­ca­tion à télé­char­ger.

Pour finir si votre appli­ca­tion est rete­nue, elle sera alors mise en avant par Micro­soft lors de la sortie de Windows 8 !

Pour parti­ci­per à ce programme il vous suffit de remplir le formu­laire présent sur la page de l’ac­cé­lé­ra­teur Windows 8

Quelques blogs et articles pouvant vous aider dans la réali­sa­tion de votre première appli­ca­tion Windows 8: