planete-php.fr Articles Blogs Infos RSS Feed Atom Feed Twitter

Articles

Fedora 27: changements dans httpd et php

Remi Collet 17/11/17

La configuration du serveur HTTP Apache et de PHP a été modifiée dans Fedora 27, voici quelques explications.

1. Bascule du serveur HTTP en mode event

Depuis l'origine de la distribution, le serveur utilise le MPM prefork.

Pour des raisons évidentes de performance, il a été décidé de suivre les recommandations du projet et d'utiliser event par défaut.

Ce changement est aussi nécessaire pour bénéficier du support complet du protocole HTTP/2 via mod_http2.

2. Le problème de mod_php

Le module mod_php est uniquement supporté quand le MPM prefork est utilisé.

Dans la documentation PHP on peut lire :

Avertissement : Nous ne recommandons pas l'utilisation de PHP dans un environnement threadé MPM, avec Apache 2.

Et effectivement, quelques rapports de bugs signalent des plantages dans cette configuration.

Il n'était donc pas raisonnable de conserver mod_php par défaut.

De plus ce module a d'autres limitations ennuyeuses :

  • intégré au serveur web, il partage son espace mémoire, pouvant entrainer des problèmes de sécurité
  • une seule version peut être chargée

3. Utilisation de FastCGI

Depuis plusieurs années nous avons travaillé à rendre l'exécution de PHP aussi flexible que possible, dans différentes configurations, fonctionnant sans changement de configuration :

  • httpd + mod_php
  • httpd + php-fpm (lorsque mod_php est désactivé ou absent et que le serveur php-fpm fonctionne)
  • nginx + php-fpm

L'utilisation de FPM est devenu la configuration par défaut recommandée pour une exécution propre de PHP :

  • support de multiples serveurs web (apache httpd, nginx, lighttpd)
  • isolation du frontal pour la sécurité
  • dorsaux multiples
  • architecture micro-services
  • fonctionnement en container (docker)
  • multiples versions de PHP

4. FPM par défaut

Depuis Fedora 27, mod_php ZTS (multi-thread) est toujours fournit, mais n'est plus activé, c'est donc FastCGI qui sera utilisé par défaut.

Pour ne pas casser les configurations existantes lors de la mise à jour, ou obtenir un serveur opérationnel dès l'installation, nous avons choisi de mettre en place quelques solutions, probablement de manière temporaire

  • Le paquet php a une dépendance optionnelle sur php-fpm qui permet son installation par défaut
  • le service httpd a une dépendance sur le service php-fpm qui permet son démarrage automatique

5.

Voir la suite

[SymfonyCon] API Platform and Symfony: a Framework for API-driven Projects

Kévin Dunglas (Lapin Blanc) 17/11/17

Here are the slides of my talk during the Symfony Con Cluj. You can rate this talk on joind.in.

Install API Platform. Design the API data model as a set of tiny plain old PHP classes. Instantly get:

  • Fully featured dev environment with Symfony Flex and React containers, HTTP/2 and HTTPS support and a cache proxy
  • Pagination, data validation, access control, relation embedding, filters and error handling
  • Support for modern REST API formats: JSON-LD/Hydra, OpenAPI/Swagger, JSONAPI, HAL, JSON…
  • GraphQL support
  • An API responding in a just few milliseconds thanks to the builtin invalidation based cache mechanism
  • A dynamically created Material Design admini interface (a la Sonata / EasyAdmin – but 100% client-side) built with React.
  • Client apps skeletons: React/Redux, React Native, Vue.js, Angular…
  • Finally, deploy in 1 command on Google Container Engine or any cloud with a Kubernetes instance with the provided Helm chart.

Yes, you just need is describing a data model, just a few line of codes to get all of that!

Paquets PHP suplémentaires pour RHSCL

Remi Collet 14/11/17

Point de situation sur les dépôts officiels fournissant les Software Collections de PHP pour les utilisateurs de RHEL et de CentOS.

Depuis la publication de RHSCL 2.3, les utilisateurs de RHEL peuvent installer PHP 5.6 ou PHP 7.0 sans altérer leur système en utilisant le canal approprié.

Ces paquets sont aussi disponibles pour les utilisateurs de CentOS dans les dépôts SCL, géré par le groupe d'intérêt SCLo (SCLo SIG) :

# yum --enablerepo=extras install centos-release-scl

Le project CentOS fournit donc l'infrastructure et l'hébergement de 4 dépôts:

  • centos-sclo-rh : fournissant le même contenu que RHSCL
  • centos-sclo-sclo : fournissant des collections supplémentaires maintenues par la communauté
  • centos-sclo-rh-testing : fournissant les paquets à tester (version beta de RHSCL)
  • centos-scl-sclo-testing : fournissant les paquets à tester maintenus par la communauté

Les utilisateurs de RHSCL souhaitant utiliser les paquets supplémentaires peuvent configurer le dépôt centos-sclo-sclo en utilisant le dépôt Copr centos-release-scl :

# cd /etc/yum.repos.d/
# wget https://copr.fedorainfracloud.org/coprs/rhscl/centos-release-scl/repo/epel-7/rhscl-centos-release-scl-epel-7.repo
# yum install centos-release-scl

Si vous êtes intéressés par ces paquets, je vous recommande de suivre la liste de diffusion sclorg@redhat.com ou sont discutés les éventuels problèmes et annoncées les évolutions. Merci d'utiliser cette liste pour vos retours (paquets en test) et toute autre demande. Les nouveaux contributeurs sont aussi les bienvenus.

Information et documentation sur https://www.softwarecollections.org/.

Le développement est suivi sur le git de sclorg-distgit.

Pour information, voici les paquets supplémentaires disponibles dans centos-sclo-sclo le 14 novembre 2017:

#   Paquet Version Distribution Remarques
 

Voir la suite

Récupérer le nombre de followers sur Twitter en PHP

rootslabs 13/11/17

Twitter est un réseau social de microblogage qui permet à un utilisateur d’envoyer des tweets limités à 140 caractères. Pour le projet Datatlas, j’ai eu besoin de récupérer le nombre de followers de différents utilisateurs sur ce réseau social.

Logo Twitter

Pré-requis

Comme pré-requis, on va utiliser le package TwitterOAuth.

Pour cela, on va l’installer via Composer :

$ composer require abraham/twitteroauth

Vous pouvez le retrouver sur Packagist.

Créer une application Twitter

Il faut tout d’abord créer une application sur l’accès Développeurs de Twitter.

Twitter : Créer une application

Après la création, il vous faudra aller sur la page « Keys and Access Tokens » pour récupérer quatre variables :

  • $consumerKey
    : Consumer Key (API Key)
  • $consumerSecret
    : Consumer Secret (API Secret)
  • $oauthToken
    : Access Token
  • $oauthTokenSecret
    : Access Token Secret

Récupérer le nombre de followers d’un compte Twitter

Il faut récupérer l’objet « User » du compte souhaitée.

Malheureusement, l’API Twitter ne permet pas de récupérer directement un compte souhaitée. Il faut passer par une recherche pour accéder à l’info du compte.

Pour un compte, l’identifiant correspond à la dernière partie de l’URL.
Ainsi pour le CNES, l’identifiant est

CNES
pour l’URL
https://twitter.com/CNES
.

$oAPI = new TwitterOAuth($consumerKey, $consumerSecret, $oauthToken, $oauthTokenSecret);

$users = $oAPI->get('/users/lookup', array(
  'screen_name' => $id
));
$user = reset($users);
$numFollowers = $user->followers_count;

A suivre

Ceci est une série d’articles permettant de récupérer le nombre de followers sur les différents réseaux sociaux :

Voir la suite

Soumettez un sujet, votez pour les talks du PHP Tour 2018

AFUP 13/11/17

Comme d’habitude, le PHP Tour est fait pour vous et par vous : l’appel à conférences n’attend que vos propositions. En PHP ou en Hack, avec un framework ou non, en HTTP ou HTTPS, en REST ou en GraphQL, en SQL ou en noSQL, avec du TDD ou du BDD, adepte du DDD, de CQRS ou d'Event Sourcing, avec ou sans serveurs, venez comme vous êtes ! Retours d’expérience ou réflexions académiques, vous trouverez un public ouvert et bienveillant, composé de débutant·e·s ou de profils plus expérimenté·e·s. Vous avez forcément quelque chose à leur faire partager.

Conférencier·e chevronné·e ou débutant·e, n'hésitez pas. Le PHP Tour, c’est la conférence du web, du PHP, et des technologies associées, par et pour la communauté. Que vous soyez dans une startup ou une multinationale, développeur·euse confirmé·e ou stagiaire, salarié·e ou freelance, architecte backend ou génie du frontend, votre expérience nous intéresse !

Nous proposons également un programme de mentoring grâce auquel vous pouvez bénéficier de l’aide d’un(e) orateur ou oratrice confirmé·e, qui peut vous accompagner tout au long de votre démarche, de la soumission du sujet jusqu'à votre talk. Avec des formats pour tous les goûts : 40 ou 20 minutes, plus d’excuse pour ne pas proposer. Vous avez jusqu’au 10 décembre pour soumettre vos sujets, alors au boulot !

Enfin, n'oubliez pas de votez pour les sujets que vous aimeriez voir :vos votes aiguillent nos choix et précisent vos attentes. Il vous suffit de vous connecter à votre compte Github pour pouvoir voter. 

Partage de connexion Internet en Wifi : problème « pas d’Internet » – Configuration APN

Nicolas Hachet 10/11/17

Lors du partage d’une connexion Internet via son téléphone portable, il est possible de rencontrer une erreur indiquant « Pas d’Internet » dans la barre de notifications Windows alors que la connexion Wifi a bien été effectuée. Je suis récemment tombé sur ce problème, voici donc la solution pour récupérer Internet via son smartphone. Étapes pour résoudre Continue Reading

Cet article Partage de connexion Internet en Wifi : problème « pas d’Internet » – Configuration APN est apparu en premier sur Blog PHP de Nicolas Hachet.

L'AFUP partenaire de Drupagora Lyon !

AFUP 10/11/17

Premier événement francophone sur Drupal dédié aux chefs de projets et DSI, Drupagora est le rendez-vous incontournable de tout l’écosystème Drupal et attire chaque année à Paris, et ce depuis 8 ans, plus de 350 professionnels, venus d’Ile de France et de Province.

Face à ce succès, les organisateurs ont décidé cette année de proposer une première édition à Lyon, ville reconnue pour son dynamisme dans le secteur numérique. Celle-ci aura lieu le mardi 28 novembre prochain à l'Espace Tête d'Or, de 9h à 18h. Pour Cyril PIERRE DE GEYER, professeur affilié à HEC et co-organisateur de Drupagora, « la technologie Drupal est extraordinaire, elle permet de mettre en place des logiciels de dernière génération. Lyon rivalise avec Paris dans le numérique avec un écosystème dynamique et c'était une évidence d'y organiser Drupagora cette année. »

La journée sera organisée autour de conférences et retours d’expériences, dédiés à la technologie Drupal. Les visiteurs pourront alors découvrir ce CMS et mieux comprendre comment il est désormais devenu incontournable dans nombreux projets de transformation digitale.

Tarif / Inscriptions : 60 euros jusqu'au 14/11/2017, puis 90 euros en tarif normal Ce tarif comprend l'accès aux conférences et à l'espace exposants, ainsi que les pauses, le déjeuner et le cocktail de clôture.

Pour vous inscrire : http://lyon.drupagora.com

API Platform Admin 0.2: an admin in 1 minute for your API (React Progressive Web App)

Kévin Dunglas (Lapin Blanc) 03/11/17

The version 0.2 of the API Platform‘s admin component has just been released!

This nice tool allows to automatically and dynamically build a fully featured administration interface (CRUD, pagination, relations…) for any API supporting the Hydra hypermedia vocabulary (more formats supported soon, see at the end of this article). 0 line of code required!

API Platform Admin is built with React on top of the famous Admin On Rest library as a Progressive Web App.

Let’s discover the bunch of new features that this version brings.

Getting Started

Assuming that you have an API exposing a Hydra documentation, you just have to initialize the following React component to get your admin:

import React from 'react';
import { HydraAdmin } from '@api-platform/admin';

export default () => <HydraAdmin entrypoint="https://api.example.com"/>;

For instance, create a new app with Facebook’s create-react-app, replace the content of src/App.js with the previous snippet and run yarn add @api-platform/admin. You’re done!

If you get an error related to multiple versions of React being loaded, just remove the react and react-dom packages from your project’s package.json and run yarn install again.

If you don’t have a JSON-LD / Hydra API yet, here is the code of the one I’ll use in the following examples. This API has been created using the API Platform’s distribution:

<?php

namespace App\Entity;

use ApiPlatform\Core\Annotation\ApiProperty;
use ApiPlatform\Core\Annotation\ApiResource;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ApiResource
 */
class Person
{
    /**
     * @ORM\Id
     * @ORM\GeneratedValue
     * @ORM\Column(type="integer")
     */
    private $id;

    /**
     * @ORM\Column
     * @ApiProperty(iri="http://schema.

Voir la suite

Récupérer le nombre de followers sur Pinterest en PHP

rootslabs 30/10/17

Pinterest est un site web mélangeant les concepts de réseautage social et de partage de photographies. Pour le projet Datatlas, j’ai eu besoin de récupérer le nombre de followers de différents utilisateurs sur ce réseau social.

Logo Pinterest

Pré-requis

Comme pré-requis, on va utiliser le DomCrawler de Symfony.

Pour cela, on va l’installer via Composer :

$ composer require symfony/dom-crawler

Vous pouvez le retrouver sur Packagist.

Récupérer le nombre de followers d’un compte Pinterest

Pour cela, il a fallu trouver l’astuce : le code HTML d’un profil Pinterest contient une balise meta définissant le nombre de followers (

<meta property="pinterestapp:followers">
).

Avec un peu de PHP, cela va faciliter les choses :

use Symfony\Component\DomCrawler\Crawler;

$oCrawler = new Crawler();

$contents = file_get_contents($url);
$oCrawler->clear();
$oCrawler->addHtmlContent($contents, 'UTF-8');
$data = $oCrawler->filterXPath('//meta[@property="pinterestapp:followers"]')->extract(array('content'));
$data = reset($data);
$numFollowers = (int)$data;

A suivre

Ceci est une série d’articles permettant de récupérer le nombre de followers sur les différents réseaux sociaux :

Cet article Récupérer le nombre de followers sur Pinterest en PHP est apparu en premier sur RootsLabs.

Astuces de configuration de PHP

Remi Collet 28/10/17

Traduction de l'article PHP Configuration Tips.

Cet article regroupe les informations actualisées qui ont été publiées ici au cours des dernières années.

RHEL 7 fournit le serveur HTTP Apache  version 2.4 et PHP version 5.4.

Le configuration la plus commune pour Apache et PHP utilise mod_php, mais présente quelques limites et inconvénients :

  • une seule version de mod_php peut être utilisée
  • mod_php tourne dans le processus httpd, sans isolation
  • mod_php n'est supporté que pour le MPM prefork

Cet article explique comment déléguer l'exécution des scripts PHP à un service d'arrière plan utilisant le protocole  FastCGI, comment utiliser une version récente de PHP, comment utiliser plusieurs versions de PHP, et comment améliorer les performances d'Apache..

Le paquet du serveur HTTP d'apache disponible dans RHEL fournit l'ensemble des fonctionnalités nécessaires pour une telle configuration.

1. Basculer vers php-fpm

1.1. Supprimer mod_php

Il est conseillé de supprimer ou de désactiver mod_php afin de réduire la consommation mémoire de chaque processus httpd.

Vous pouvez soit désinstaller le paquet php, qui ne contient que ce module

yum remove php

ou simplement le désactiver en commentant la directive LoadModule directive dans le fichier /etc/httpd/conf.modules.d/10-php.conf.

# disabled # LoadModule php5_module modules/libphp5.so

1.2. Installer php-fpm

Vous pouvez maintenant installer php-fpm et activer son service

yum install php-fpm
systemctl start php-fpm
systemctl enable php-fpm

Remarque: le paquet php-fpm est disponible dans le canal optional, qui doit donc être activé.

Pour configurer l'exécution des scripts PHP, modifiez ou créez le fichier de configuration /etc/httpd/conf.d/php.conf :

Les lignes suivantes interdise l'accès aux fichiers .user.ini depuis les clients Web!

  <Files ".user.ini">
    Require all denied
  </Files>

Activation de la gestion du Multiviews par php:

  AddType text/html .php

Ajouter index.php à la liste des fichiers utilisés pour fournir le contenu d'un dossier :

  DirectoryIndex index.php

La ligne suivante active les entêtes d'autorisation :

  SetEnvIfNoCase ^Authorization$ "(.

Voir la suite

Blogs

Infos

Ajouter une source ?

Envoyez un email avec l'URL du site et du flux à planetephpfr AT afup POINT org

Gestion

AFUP