Planet Fedora-Fr http://planet.fedora-fr.org Sélection de blogs autour de Fedora fr-FR Wed, 28 Sep 2016 10:01:17 GMT eZ Systems eZ Publish (leZRSS) http://planet.fedora-fr.org/var/fedora/storage/images/media/images/logos/logo-rss/18149-2-fre-FR/logo-rss_rss.png Planet Fedora-Fr http://planet.fedora-fr.org Wed, 28 Sep 2016 06:00:00 GMT Charles-Antoine Couret : Participez à la journée de test de Fedora 25 sur l'internationnalisation ! http://blog.fedora-fr.org/renault/post/Participez-%C3%A0-la-journ%C3%A9e-de-test-de-Fedora-25-sur-l-internationnalisation-%21 urn:md5:4866cbd6e68f1d8924e0bfd16eed4e1e

Aujourd'hui, ce mercredi 28 septembre, est une journée dédiée à un test précis : linternationalisation de Fedora 25. En effet, durant le cycle de développement, l'équipe d'assurance qualité dédie quelques journées autours de certains composants afin de remonter un maximum de problèmes sur le sujet.

Elle fournit en plus une liste de tests précis à effectuer. Il vous suffit de les suivre, comparer votre résultat au résultat attendu et le notifier.

Qu'est-ce que linternationalisation ?

Cela consiste à s'assurer que Fedora et ses applications fonctionnent correctement dans toutes les langues. Sont concernés la traduction, la gestion des paquets de langue mais aussi des entrées de saisies. En effet, les langues non européennes notamment bénéficient d'assistance pour écrire dans leurs langues avec un clavier disposant de peu de touches par rapport aux caractères disponibles.

Typiquement les tests du jour couvrent :

  • La compatibilité Unicode 9.0 (nouveauté de Fedora 25)
  • Les paquets de langues des applications ;
  • IBus (dont la gestion des Emoji et l'assistance simultanée multilangue ont été ajoutés dans Fedora 25) ;
  • Les applications doivent être traduites (Gnome, Libreoffice et Firefox de préférence) ;
  • Les navigateurs doivent afficher les sites web dans la langue de l'utilisateur par défaut ;
  • Quelques autres...

Comment y participer ?

Vous pouvez vous rendre sur la page des tests pour lister les tests disponibles et rapporter vos résultats. La page wiki récapitule les modalités de la journée.

En cas de bogue, il est nécessaire de le rapporter sur le BugZilla. Si vous ne savez pas faire, n'hésitez pas à consulter la documentation correspondante.

De plus, si une journée est dédiée à ces tests, il reste possible de les effectuer quelques jours plus tard sans problème ! Les résultats seront globalement d'actualité.

]]>
Fedora
Tue, 27 Sep 2016 07:30:30 GMT Thomas Bouffon : Supprimer des associations de type de fichier incorrectes dans firefox http://www.thomasbouffon.fr/fr/blog/59-supprimer-des-associations-de-type-de-fichier-incorrectes-dans-firefox http://www.thomasbouffon.fr/fr/blog/59-supprimer-des-associations-de-type-de-fichier-incorrectes-dans-firefox

J'avais le problème suivant : Quand le type mime d'un pdf en ligne était mal servi, firefox me proposait d'ouvrir le fichier avec file-roller. Idem si je le téléchargeais puis que j'essayais de l'ouvrir depuis la fenêtre de téléchargements. Aucun problème en revanche depuis Nautilus

Le problème vient en fait du fichier .local/share/applications/mimeapps.list, qui associait content-type:octet-stream à file-roller. Une fois supprimée cette ligne, même sans redémarrer Firefox, le problème est résolu

]]>
Blog
Mon, 26 Sep 2016 14:09:00 GMT Remi Collet : GLPI version 9.1 http://blog.remirepo.net/post/2016/09/26/GLPI-version-9.1 urn:md5:1906696f4d326848e0e0002d3761e517

GLPI (Gestionnaire Libre de Parc Informatique) version 9.1 est publiée. Les RPM sont disponibles dans le dépôt remi-test pour Fedora ≥ 22 et Enterprise Linux ≥ 5.

Toutes les extensions n'étant pas encore publiées en version stable, c'est donc la version 0.90 qui reste dans le dépôt remi.

Actuellement dans le dépôt :

  • glpi-0.91-1
  • glpi-data-injection-2.4.2-1

Attention Attention: l'assistant d'installation est pour des raisons de sécurité uniquement accessible depuis le serveur sur lequel GLPI est installé. Voir le fichier de configuration (/etc/httpd/conf.d/glpi.conf) pour élargir temporairement cette autorisation si besoin.

Vous êtes invités à tester ces versions sur un environnement spécifique et à remonter vos questions, commentaires ou problèmes sur

]]>
RPM
Mon, 26 Sep 2016 14:09:00 GMT Remi Collet : GLPI version 9.1 https://blog.remirepo.net/post/2016/09/26/GLPI-version-9.1 urn:md5:1906696f4d326848e0e0002d3761e517

GLPI (Gestionnaire Libre de Parc Informatique) version 9.1 est publiée. Les RPM sont disponibles dans le dépôt remi-test pour Fedora ≥ 22 et Enterprise Linux ≥ 5.

Toutes les extensions n'étant pas encore publiées en version stable, c'est donc la version 0.90 qui reste dans le dépôt remi.

Actuellement dans le dépôt :

  • glpi-0.91-1
  • glpi-data-injection-2.4.2-1

Attention Attention: l'assistant d'installation est pour des raisons de sécurité uniquement accessible depuis le serveur sur lequel GLPI est installé. Voir le fichier de configuration (/etc/httpd/conf.d/glpi.conf) pour élargir temporairement cette autorisation si besoin.

Vous êtes invités à tester ces versions sur un environnement spécifique et à remonter vos questions, commentaires ou problèmes sur

]]>
RPM
Tue, 20 Sep 2016 08:00:00 GMT Charles-Antoine Couret : Participez à la journée de test de Fedora 25 sur le créateur de média http://blog.fedora-fr.org/renault/post/Participez-%C3%A0-la-journ%C3%A9e-de-test-de-Fedora-25-sur-le-cr%C3%A9ateur-de-m%C3%A9dia urn:md5:d6db4bf5d765422953b7cafba45bed99

Aujourd'hui, ce mardi 20 septembre, est une journée dédiée à un test précis : sur la création de média installable pour Fedora. En effet, durant le cycle de développement, l'équipe d'assurance qualité dédie quelques journées autours de certains composants ou nouveautés afin de remonter un maximum de problèmes sur le sujet.

Elle fournit en plus une liste de tests précis à effectuer. Il vous suffit de les suivre, comparer votre résultat au résultat attendu et le notifier.

Capture_du_2016-04-18_23-41-52.png

Qu'est-ce que la création de média installable ?

C'est une nouveauté pour Fedora 25. Elle consiste en une réécriture de l'outil de liveusb-creator qui est non seulement disponible sur Fedora mais aussi sur Windows et Mac OS. Cet utilitaire bénéficie ainsi d'une interface plus proche des standards des applications GNOME 3 en terme d'ergonomie et devient beaucoup plus simple d'utilisation.

Son fonctionnement consiste en la sélection l'image voulue comme Workstation, spin KDE, Server ou autre, procède automatiquement au téléchargement et à l'installation sur un média amovible comme une clé USB disponible et compatible.

L'objectif étant de simplifier la procédure d'installation pour les néophytes, car beaucoup d'utilisateurs se perdent après le téléchargement du fichier ISO traditionnel pour procéder à l'installation. Là, tout sera automatisé et fonctionnel sans intervention particulière. De part cet objectif, ce sera le mode de téléchargement de l'image officielle de Fedora qui sera mis en avant à l'avenir.

Les tests du jour couvrent :

  • Le téléchargement de l'image souhaité ;
  • L'installation sur la clé USB ;
  • La conformité de l'image d'installation (c'est-à-dire fonctionnelle) ;
  • Compatible UEFI et BIOS ;
  • Fonctionnel sous Fedora, Windows et Mac OS.

Le test est un peu inhabituel car il porte sur le fonctionnement de l'application sur d'autres systèmes que Fedora que sont Windows et Mac OS. SI vous avez de tels systèmes disponibles, ne pas hésiter à remonter les soucis rencontrés avec eux. Car ce seront évidemment les systèmes préférentiels pour un tel outil.

Comment y participer ?

Vous pouvez vous rendre sur la page des tests pour lister les tests disponibles et rapporter vos résultats. La page wiki récapitule les modalités de la journée.

En cas de bogue, il est nécessaire de le rapporter sur le BugZilla. Si vous ne savez pas faire, n'hésitez pas à consulter la documentation correspondante.

De plus, si une journée est dédiée à ces tests, il reste possible de les effectuer quelques jours plus tard sans problème ! Les résultats seront globalement d'actualité.

]]>
Fedora
Tue, 20 Sep 2016 06:10:00 GMT Remi Collet : Microsoft SQL Server depuis PHP http://blog.remirepo.net/post/2016/09/20/Microsoft-SQL-Server-depuis-PHP urn:md5:76252eb60312fce36e6aec46f90aab80

Voici un petit récapitulatif des différents moyens d'utiliser une base de données Microsoft SQL Server depuis PHP, sous Linux.

L'ensemble des tests ont été réalisés sous Fedora 23 mais devrait fonctionner avec RHEL ou CentOS version 7.

1. Utilisation de PDO, ODBC et FreeTDS

Composants nécessaires:

  • Bibliothèque freetds et extension pdo_odbc
  • PHP version 5 ou 7
  • Paquets RPM: freetds (EPEL), unixODBC, php-pdo, php-odbc

Configuration du pilote ODBC

Le fichier /etc/odbcinst.ini doit contenir la déclaration du pilote:

[FreeTDS]
Description=FreeTDS version 0.95
Driver=/usr/lib64/libtdsodbc.so.0.0.0

Configuration de la source de données

Le fichier /etc/odbc.ini (système) ou le fichier ~/.odbc.ini (utilisateur) doit contenir la déclaration du serveur utilisé

[sqlsrv_freetds]
Driver=FreeTDS
Description=SQL via FreeTds
Server=sqlserver.domain.tld
Port=1433

Vérification de la connexion en ligne de commande

$ isql sqlsrv_freetds user secret
SQL> SELECT @@version
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
SQLRowCount returns 1
1 rows fetched
SQL> quit

Connexion depuis PHP

$ php -r '
echo "+ Connection\n";
$pdo = new PDO("odbc:sqlsrv_freetds", "user", "secret");
echo "+ Query\n";
$query = $pdo->query("SELECT @@version");
if ($query) {
    echo "+ Result\n";
    $row = $query->fetch(PDO::FETCH_NUM);
    if ($row) {
        print_r($row);
    }
}
'
+ Connection
+ Query
+ Result
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution est souvent la plus simple car tous les paquets nécessaires sont libres et présents dans les distributions Linux.

2. Utilisation de PDO, mssql et FreeTDS

Composants nécessaires:

  • Bibliothèque freetds et extension mssql
  • PHP version 5 (extension dépréciée et supprimée de PHP 7)
  • Paquets RPM: freetds (EPEL), php-mssql

Connexion depuis PHP

$ php -r '
echo"+ Connection:\n";
$conn = mssql_connect("sqlserver.domain.tld", "user", "secret");
if ($conn) {
    echo"+ Query:\n";
    $query = mssql_query("SELECT @@version", $conn);
    if ($query) {
        echo"+ Result:\n";
        print_r($row = mssql_fetch_array($query, MSSQL_NUM));
    }
}
'
+ Connection
+ Query
+ Result
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution reste simple car tous les paquets nécessaires sont également libres et présents dans les distributions Linux. Cependant elle utilise une extension dépréciée, et sans utiliser la couche d'abstraction PDO.

3. Utilisation de PDO, ODBC et des pilotes ODBC Microsoft®

Composants nécessaires:

Configuration du pilote ODBC

Le fichier /etc/odbcinst.ini doit contenir la déclaration du pilote (ajouté automatiquement lors de l'installation) :

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
Threading=1

Configuration de la source de données

Le fichier /etc/odbc.ini (système) ou le fichier ~/.odbc.ini (utilisateur) doit contenir la déclaration du serveur utilisé

[sqlsrv_msodbc]
Driver=ODBC Driver 13 for SQL Server
Description=SQL via Microsoft Drivers
Server=sqlserver.domain.tld

Vérification de la connexion en ligne de commande

$ isql sqlsrv_msodbc user secret
SQL> SELECT @@version
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
SQLRowCount returns 1
1 rows fetched
SQL> quit

Connexion depuis PHP

$ php -r '
echo "+ Connection\n";
$pdo = new PDO("odbc:sqlsrv_msodbc", "user", "secret");
echo "+ Query\n";
$query = $pdo->query("SELECT @@version");
if ($query) {
    echo "+ Result\n";
    $row = $query->fetch(PDO::FETCH_NUM);
    if ($row) {
        print_r($row);
    }
}
'
+ Connection
+ Query
+ Result
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution très proche de la 1 nécessite l'installation des pilotes propriétaires.

4. Utilisation des pilotes Microsoft®

Composants nécessaires :

Vérification de la connexion en ligne de commande

$ sqlcmd -S sqlserver.domain.tld -U user -P secret -Q "SELECT @@version"
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
(1 rows affected)

Connexion depuis PHP

$ php -r '
echo"+ Connection:\n";
$conn = sqlsrv_connect("sqlserver.domain.tld", array("UID" => "user", "PWD" => "secret"));
if ($conn) {
    echo"+ Query: \n";
    $query = sqlsrv_query($conn, "SELECT @@version");
    if ($query) {
        echo"+ Result:\n";
        print_r($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_NUMERIC));
    }
}
'
+ Connection:
+ Query:
+ Result:
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution très proche de la 2  nécessite l'installation des pilotes propriétaires et n'utilise pas la couche d'abstraction PDO.

5. Utilisation de PDO et des pilotes Microsoft®

Composants nécessaires :

Connexion depuis PHP

$ php -r '
echo "+ Connection\n";
$pdo = new PDO("sqlsrv:Server=sqlserver.domain.tld", "user", "secret");
echo "+ Query\n";
$query = $pdo->query("SELECT @@version");
if ($query) {
    echo "+ Result\n";
    $row = $query->fetch(PDO::FETCH_NUM);
    if ($row) {
        print_r($row);
    }
}
'

+ Connection
+ Query
+ Result
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution très proche des 1 et 3 et nécessite aussi l'installation des pilotes propriétaires.

6. Conclusion

Il me semble qu'utiliser PDO reste préférable afin d'éviter l'adhérence à un serveur de base de données particulier.

L'utilisation de FreeTDS a rendu de nombreux services, et était la seule disponible avec PHP 5. L'utilisation des extensions sqlsrv ou pdo_sqlsrv me semble donc plus pertinente avec PHP 7, mais nécessite malheureusement l'utilisation des pilotes propriétaires (mais bon, si vous utilisez Microsoft SQL server, vous avez déjà quitté le monde du libre).

A vous de vous faire votre idée.

]]>
Fiches explicatives
Tue, 20 Sep 2016 06:10:00 GMT Remi Collet : Microsoft SQL Server depuis PHP https://blog.remirepo.net/post/2016/09/20/Microsoft-SQL-Server-depuis-PHP urn:md5:76252eb60312fce36e6aec46f90aab80

Voici un petit récapitulatif des différents moyens d'utiliser une base de données Microsoft SQL Server depuis PHP, sous Linux.

L'ensemble des tests ont été réalisés sous Fedora 23 mais devrait fonctionner avec RHEL ou CentOS version 7.

Extensions testées:

 

1. Utilisation de PDO, ODBC et FreeTDS

Composants nécessaires:

  • Bibliothèque freetds et extension pdo_odbc
  • PHP version 5 ou 7
  • Paquets RPM: freetds (EPEL), unixODBC, php-pdo, php-odbc

Configuration du pilote ODBC

Le fichier /etc/odbcinst.ini doit contenir la déclaration du pilote:

[FreeTDS]
Description=FreeTDS version 0.95
Driver=/usr/lib64/libtdsodbc.so.0.0.0

Configuration de la source de données

Le fichier /etc/odbc.ini (système) ou le fichier ~/.odbc.ini (utilisateur) doit contenir la déclaration du serveur utilisé

[sqlsrv_freetds]
Driver=FreeTDS
Description=SQL via FreeTds
Server=sqlserver.domain.tld
Port=1433

Vérification de la connexion en ligne de commande

$ isql sqlsrv_freetds user secret
SQL> SELECT @@version
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
SQLRowCount returns 1
1 rows fetched
SQL> quit

Connexion depuis PHP

$ php -r '
echo "+ Connection\n";
$pdo = new PDO("odbc:sqlsrv_freetds", "user", "secret");
echo "+ Query\n";
$query = $pdo->query("SELECT @@version");
if ($query) {
    echo "+ Result\n";
    $row = $query->fetch(PDO::FETCH_NUM);
    if ($row) {
        print_r($row);
    }
}
'
+ Connection
+ Query
+ Result
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution est souvent la plus simple car tous les paquets nécessaires sont libres et présents dans les distributions Linux.

2. Utilisation de PDO, mssql et FreeTDS

Composants nécessaires:

  • Bibliothèque freetds et extension mssql
  • PHP version 5 (extension dépréciée et supprimée de PHP 7)
  • Paquets RPM: freetds (EPEL), php-mssql

Connexion depuis PHP

$ php -r '
echo"+ Connection:\n";
$conn = mssql_connect("sqlserver.domain.tld", "user", "secret");
if ($conn) {
    echo"+ Query:\n";
    $query = mssql_query("SELECT @@version", $conn);
    if ($query) {
        echo"+ Result:\n";
        print_r($row = mssql_fetch_array($query, MSSQL_NUM));
    }
}
'
+ Connection
+ Query
+ Result
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution reste simple car tous les paquets nécessaires sont également libres et présents dans les distributions Linux. Cependant elle utilise une extension dépréciée, et sans utiliser la couche d'abstraction PDO.

3. Utilisation de PDO, ODBC et des pilotes ODBC Microsoft®

Composants nécessaires:

Configuration du pilote ODBC

Le fichier /etc/odbcinst.ini doit contenir la déclaration du pilote (ajouté automatiquement lors de l'installation) :

[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver for SQL Server
Driver=/opt/microsoft/msodbcsql/lib64/libmsodbcsql-13.0.so.0.0
Threading=1

Configuration de la source de données

Le fichier /etc/odbc.ini (système) ou le fichier ~/.odbc.ini (utilisateur) doit contenir la déclaration du serveur utilisé

[sqlsrv_msodbc]
Driver=ODBC Driver 13 for SQL Server
Description=SQL via Microsoft Drivers
Server=sqlserver.domain.tld

Vérification de la connexion en ligne de commande

$ isql sqlsrv_msodbc user secret
SQL> SELECT @@version
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
SQLRowCount returns 1
1 rows fetched
SQL> quit

Connexion depuis PHP

$ php -r '
echo "+ Connection\n";
$pdo = new PDO("odbc:sqlsrv_msodbc", "user", "secret");
echo "+ Query\n";
$query = $pdo->query("SELECT @@version");
if ($query) {
    echo "+ Result\n";
    $row = $query->fetch(PDO::FETCH_NUM);
    if ($row) {
        print_r($row);
    }
}
'
+ Connection
+ Query
+ Result
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution très proche de la 1 nécessite l'installation des pilotes propriétaires.

4. Utilisation des pilotes Microsoft®

Composants nécessaires :

Vérification de la connexion en ligne de commande

$ sqlcmd -S sqlserver.domain.tld -U user -P secret -Q "SELECT @@version"
Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
(1 rows affected)

Connexion depuis PHP

$ php -r '
echo"+ Connection:\n";
$conn = sqlsrv_connect("sqlserver.domain.tld", array("UID" => "user", "PWD" => "secret"));
if ($conn) {
    echo"+ Query: \n";
    $query = sqlsrv_query($conn, "SELECT @@version");
    if ($query) {
        echo"+ Result:\n";
        print_r($row = sqlsrv_fetch_array($query, SQLSRV_FETCH_NUMERIC));
    }
}
'
+ Connection:
+ Query:
+ Result:
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution très proche de la 2  nécessite l'installation des pilotes propriétaires et n'utilise pas la couche d'abstraction PDO.

5. Utilisation de PDO et des pilotes Microsoft®

Composants nécessaires :

Connexion depuis PHP

$ php -r '
echo "+ Connection\n";
$pdo = new PDO("sqlsrv:Server=sqlserver.domain.tld", "user", "secret");
echo "+ Query\n";
$query = $pdo->query("SELECT @@version");
if ($query) {
    echo "+ Result\n";
    $row = $query->fetch(PDO::FETCH_NUM);
    if ($row) {
        print_r($row);
    }
}
'

+ Connection
+ Query
+ Result
Array
(
    [0] => Microsoft SQL Server 2008 R2 (SP2) - 10.50.4000.0 (X64)
    Jun 28 2012 08:36:30
    Copyright (c) Microsoft Corporation
    Express Edition with Advanced Services (64-bit) on Windows NT 6.1 <X64> (Build 7600: ) (Hypervisor)
)

Cette solution très proche des 1 et 3 et nécessite aussi l'installation des pilotes propriétaires.

6. Conclusion

Il me semble qu'utiliser PDO reste préférable afin d'éviter l'adhérence à un serveur de base de données particulier.

L'utilisation de FreeTDS a rendu de nombreux services, et était la seule disponible avec PHP 5. L'utilisation des extensions sqlsrv ou pdo_sqlsrv me semble donc plus pertinente avec PHP 7, mais nécessite malheureusement l'utilisation des pilotes propriétaires (mais bon, si vous utilisez Microsoft SQL server, vous avez déjà quitté le monde du libre).

A vous de vous faire votre idée.

]]>
Fiches explicatives
Sun, 18 Sep 2016 12:33:00 GMT Guillaume Kulakowski : Dell XPS (2015), carte Intel i915 et kernel >= 4.6 http://feedproxy.google.com/~r/blog-guillaume-kulakowski/~3/g3X06SIDgIQ/dell-xps-2015-carte-intel-i915-et-kernel-46 urn:md5:62d286c5636a12d92fdd6c124a43a7a7

Depuis le passage de Fedora au kernel 4.6, mon portable (Dell XPS 13 édition 2015) freeze au lancement de Gnome... Je n'avais pas pris le temps de corriger ça et je me disais que le 4.7 le corrigerait bien... Malheureusement ce ne fût pas le cas à là sortie du kernel 4.7. En faisant un peu de recherche il semblerait que les drivers i915 soient daubés depuis la 4.6 et ceci entraine toutes sortes de bugs divers. Du coup je me suis lancé dans la recherche de paramètres à passer au kernel pour arriver enfin à faire tourner mon XPS avec un kernel 4.7. Et les bons paramètres semblent être les suivants :
 

 

i915.enable_execlists=0 idle.max_cstate=1 i915.semaphores=1 i915.enable_psr=0

Pour les déployer, rien de plus simple, on édite /etc/default/grub, on rajoute le paramètres dans GRUB_CMDLINE_LINUX, on reconstruit grub, dans mon cas, en boot EFI, ça donne :

LANG=C grub2-mkconfig -o /boot/efi/EFI/fedora/grub.cfg

Ensuite on croise les doigts et on reboot ;-)" class="smiley

]]>
Fedora
Sat, 17 Sep 2016 21:38:00 GMT Guillaume Kulakowski : Certificat Let's Encrypt configuré au top http://feedproxy.google.com/~r/blog-guillaume-kulakowski/~3/tJpB5vH1cJs/certificat-let-s-encrypt-configure-au-top urn:md5:1cfdfd21fa797ce32166d9b5805cf15f

Dernièrement j'ai dû, pour le compte d'un client, faire une étude pour rendre un site compatible ATS au niveau de la sécurité. Il en est ressorti plusieurs problèmes :

  • La CVE-2016-2107 pour cause de lib-openssl pas à jour.
  • Des Ciphers et des protocoles pas top...
  • Pas de  PFS.

Le bilan : une note de "F".

Du coup, j'ai regardé un de mes domaines SSL et je me suis rendu compte que moi aussi je n'étais pas au top... Du coup une petite correction s'imposée.

Première étape : mettre à jour le container apache pour avoir les dernières versions de lib-openssl et d'apache.

Pour ça, rien de plus simple :

docker-compose build llaumgui_httpd24 ; docker-compose stop llaumgui_httpd24 ; docker-compose rm llaumgui_httpd24 ; docker-compose up -d llaumgui_httpd24

Seconde étapes : aller sur Mozilla SSL Configuration Generator pour trouver la configuration qui vous va bien. Pour moi je suis parti là dessus.

Troisième étape : faire le ménage dans la configuration de base de RHEL7.

Quatrième étape : aller sur Let'sEncrypt pour avoir un certificats SSL gratuit ! Alors là, faites gaffe, il existe plein de truc plus ou moins lourd pour générer des certificats SSL chez Let's Encrypt. Perso j'ai retenu acme-tiny car je n'ai rien trouvé de plus petit !

Il faut juste ouvrir votre port 80 et tout rediriger sur le 443 sauf bien sûr le chalenge Let's Encrypt :

<virtualhost>
    ServerName sub.domain.ltd
    ServerAdmin me@domain.ltd

    ### Let's encrypt
    Alias /.well-known/acme-challenge/ /var/www/challenges/
    <directory>
        # Allow open access:
        Require all granted
    </directory>

    ### Redirect to HTTPs
    RewriteEngine on
    RewriteCond %{REQUEST_URI} !^/.well-known/acme-challenge/
    RewriteRule (.*) https://sub.domain.ltd$1 [R=301,L]
</virtualhost>

Et c'est tout ! Plus qu'à controller avec Qualys SSL Labs.

qualys_ssl_labs.jpg]]>
Sysadmin
Fri, 16 Sep 2016 09:43:00 GMT Remi Collet : PHP version 5.6.26 et 7.0.11 http://blog.remirepo.net/post/2016/09/16/PHP-version-5.6.26-et-7.0.11 urn:md5:20820d3c80b28c5932ca23bf09d64931

Les RPM de PHP version 7.0.11 sont disponibles dans le dépôt remi-php70 pour Fedora et Enterprise Linux (RHEL, CentOS).

Les RPM de PHP version 5.6.26 sont disponibles dans le dépôt remi pour Fedora ≥ 21 et remi-php56 pour Enterprise Linux.

emblem-important-2-24.pngPHP version 5.5 a atteint sa fin de vie et n'est plus maintenu par le projet.

Ces versions sont aussi disponibles en Software Collections.

security-medium-2-24.pngCes versions corrigent quelques failles de sécurité, la mise à jour est donc vivement recommandée.

Annonces des versions :

emblem-notice-24.pngInstallation : voir l'assistant de configuration et choisir la version et le mode d'installation.

Remplacement du PHP par défaut du système par la version 7.0 (le plus simple) :

yum-config-manager --enable remi-php70
yum update

Installation en parallèle, en Software Collections de PHP 7.0 (x86_64 uniquement) :

yum install php70

Remplacement du PHP par défaut du système par la version 5.6 (le plus simple) :

yum-config-manager --enable remi-php56
yum update

Installation en parallèle, en Software Collections de PHP 5.6 (x86_64 uniquement) :

yum install php56

Et bientôt dans les mises à jour officielles:

emblem-important-2-24.pngÀ noter :

  • la version EL7 est construite avec RHEL-7.2
  • la version EL6 est construite avec RHEL-6.8
  • beaucoup de nouvelles extensions sont aussi disponible, voir PECL extension RPM status page

emblem-notice-24.pngInformations, lire :

Paquets de base (php)

Software Collections (php56 / php70)

]]>
RPM
Fri, 16 Sep 2016 09:43:00 GMT Remi Collet : PHP version 5.6.26 et 7.0.11 https://blog.remirepo.net/post/2016/09/16/PHP-version-5.6.26-et-7.0.11 urn:md5:20820d3c80b28c5932ca23bf09d64931

Les RPM de PHP version 7.0.11 sont disponibles dans le dépôt remi-php70 pour Fedora et Enterprise Linux (RHEL, CentOS).

Les RPM de PHP version 5.6.26 sont disponibles dans le dépôt remi pour Fedora ≥ 21 et remi-php56 pour Enterprise Linux.

emblem-important-2-24.pngPHP version 5.5 a atteint sa fin de vie et n'est plus maintenu par le projet.

Ces versions sont aussi disponibles en Software Collections.

security-medium-2-24.pngCes versions corrigent quelques failles de sécurité, la mise à jour est donc vivement recommandée.

Annonces des versions :

emblem-notice-24.pngInstallation : voir l'assistant de configuration et choisir la version et le mode d'installation.

Remplacement du PHP par défaut du système par la version 7.0 (le plus simple) :

yum-config-manager --enable remi-php70
yum update

Installation en parallèle, en Software Collections de PHP 7.0 (x86_64 uniquement) :

yum install php70

Remplacement du PHP par défaut du système par la version 5.6 (le plus simple) :

yum-config-manager --enable remi-php56
yum update

Installation en parallèle, en Software Collections de PHP 5.6 (x86_64 uniquement) :

yum install php56

Et bientôt dans les mises à jour officielles:

emblem-important-2-24.pngÀ noter :

  • la version EL7 est construite avec RHEL-7.2
  • la version EL6 est construite avec RHEL-6.8
  • beaucoup de nouvelles extensions sont aussi disponible, voir PECL extension RPM status page

emblem-notice-24.pngInformations, lire :

Paquets de base (php)

Software Collections (php56 / php70)

]]>
RPM
Sat, 10 Sep 2016 08:17:00 GMT Remi Collet : PHP 5.5 est mort http://blog.remirepo.net/post/2016/09/10/PHP-5.5-est-mort urn:md5:9f23497fbcf9a8a42ff5897c6bdfa321

Après PHP 5.4, et comme annoncé, PHP version 5.5.38 était la dernière version officielle de PHP 5.5

Ce qui signifie que depuis la publication des versions 5.6.25 et 7.0.10, quelques failles de sécurité publiques ne sont pas, et ne seront pas corrigées par le projet PHP.

Pour maintenir une installation sécurisée, la mise à jour vers une version maintenue est fortement conseillée :

  • PHP 5.6 est en mode maintenance active, et sera maitenu jusqu'en décembre 2018.
  • PHP 7.0 est en mode maintenance active, et sera maitenu jusqu'en décembre 2018.
  • PHP 7.1 est en phase de stabilisation (Release Candidate) et devrait être bientôt publiée en version stable.

Voir :

Cependant, compte tenu du nombre important de téléchargements par les utilisateurs de mon dépôt (~20%)  la version présente dans le dépôt remi pour Enterprise Linux (RHEL, CentOS...) et Fedora (Software Collections) a été conservée et intègre les derniers correctifs de sécurité.

Attention : il s'agit d'un action réalisée avec la meilleure volonté, en fonction de mon temps disponible, sans aucune garantie, afin de donner plus de temps aux utilisateurs pour migrer. Cela ne peut être que temporaire et la migration doit rester la priorité.

La version 5.5.38-2 intègre les correctifs pour les bugs rétro-portés depuis 5.6.25.

Paquets de base (php)

Software Collections (php55)

]]>
Fiches explicatives
Sat, 10 Sep 2016 08:17:00 GMT Remi Collet : PHP 5.5 est mort https://blog.remirepo.net/post/2016/09/10/PHP-5.5-est-mort urn:md5:9f23497fbcf9a8a42ff5897c6bdfa321

Après PHP 5.4, et comme annoncé, PHP version 5.5.38 était la dernière version officielle de PHP 5.5

Ce qui signifie que depuis la publication des versions 5.6.25 et 7.0.10, quelques failles de sécurité publiques ne sont pas, et ne seront pas corrigées par le projet PHP.

Pour maintenir une installation sécurisée, la mise à jour vers une version maintenue est fortement conseillée :

  • PHP 5.6 est en mode maintenance active, et sera maitenu jusqu'en décembre 2018.
  • PHP 7.0 est en mode maintenance active, et sera maitenu jusqu'en décembre 2018.
  • PHP 7.1 est en phase de stabilisation (Release Candidate) et devrait être bientôt publiée en version stable.

Voir :

Cependant, compte tenu du nombre important de téléchargements par les utilisateurs de mon dépôt (~20%)  la version présente dans le dépôt remi pour Enterprise Linux (RHEL, CentOS...) et Fedora (Software Collections) a été conservée et intègre les derniers correctifs de sécurité.

Attention : il s'agit d'un action réalisée avec la meilleure volonté, en fonction de mon temps disponible, sans aucune garantie, afin de donner plus de temps aux utilisateurs pour migrer. Cela ne peut être que temporaire et la migration doit rester la priorité.

La version 5.5.38-2 intègre les correctifs pour les bugs rétro-portés depuis 5.6.25.

Paquets de base (php)

Software Collections (php55)

]]>
Fiches explicatives
Fri, 02 Sep 2016 12:46:00 GMT Remi Collet : PHP version 5.6.26RC1 et 7.0.11RC1 http://blog.remirepo.net/post/2016/09/02/PHP-version-5.6.26RC1-et-7.0.11RC1 urn:md5:b2df759d58189d7251bc22351bfd6666

Les versions Release Candidate sont disponibles dans le dépôt remi-test pour Fedora et Enterprise Linux (RHEL / CentOS) afin de permettre au plus grand nombre de les tester. Elles sont  fournit en Software Collections, pour une installation en parallèle, solution idéale pour ce type de tests. Uniquement pour x86_64.

Les RPM de PHP version 5.6.26RC1 sont disponibles en SCL et en paquets de base dans le dépôt remi-test pour Fedora21 et Enterprise Linux6.

Les RPM de PHP version 7.0.11C1 sont disponibles en SCL dans le dépôt remi-test et les paquets de base dans le dépôt remi-php70-test pour Fedora 21 et Enterprise Linux6.

emblem-notice-24.pngInstallation : voir la Configuration du dépôt et choisir la version.

Installation en parallèle, en Software Collections de PHP 5.6 :

yum --enablerepo=remi-test install php56

Installation en parallèle, en Software Collections de PHP 7.0 :

yum --enablerepo=remi-test install php70

Mise à jour, de PHP 5.6 :

yum --enablerepo=remi-php56,remi-test update php\*

Mise à jour, de PHP 7.0 :

yum --enablerepo=remi-php70,remi-php70-test update php\*

A noter : la version 7.0.11RC1 est aussi disponible dans Fedora rawhide.

emblem-notice-24.pngLa version RC est généralement identique à la version finale (aucun changement accepté, à l'exception de correctifs de sécurité).

Software Collections (php56, php70)

Paquets standards (php)

]]>
RPM
Fri, 02 Sep 2016 12:46:00 GMT Remi Collet : PHP version 5.6.26RC1 et 7.0.11RC1 https://blog.remirepo.net/post/2016/09/02/PHP-version-5.6.26RC1-et-7.0.11RC1 urn:md5:b2df759d58189d7251bc22351bfd6666

Les versions Release Candidate sont disponibles dans le dépôt remi-test pour Fedora et Enterprise Linux (RHEL / CentOS) afin de permettre au plus grand nombre de les tester. Elles sont  fournit en Software Collections, pour une installation en parallèle, solution idéale pour ce type de tests. Uniquement pour x86_64.

Les RPM de PHP version 5.6.26RC1 sont disponibles en SCL et en paquets de base dans le dépôt remi-test pour Fedora21 et Enterprise Linux6.

Les RPM de PHP version 7.0.11C1 sont disponibles en SCL dans le dépôt remi-test et les paquets de base dans le dépôt remi-php70-test pour Fedora 21 et Enterprise Linux6.

emblem-notice-24.pngInstallation : voir la Configuration du dépôt et choisir la version.

Installation en parallèle, en Software Collections de PHP 5.6 :

yum --enablerepo=remi-test install php56

Installation en parallèle, en Software Collections de PHP 7.0 :

yum --enablerepo=remi-test install php70

Mise à jour, de PHP 5.6 :

yum --enablerepo=remi-php56,remi-test update php\*

Mise à jour, de PHP 7.0 :

yum --enablerepo=remi-php70,remi-php70-test update php\*

A noter : la version 7.0.11RC1 est aussi disponible dans Fedora rawhide.

emblem-notice-24.pngLa version RC est généralement identique à la version finale (aucun changement accepté, à l'exception de correctifs de sécurité).

Software Collections (php56, php70)

Paquets standards (php)

]]>
Archives
Thu, 01 Sep 2016 11:45:00 GMT Remi Collet : PHP version 5.6.25 et 7.0.10 http://blog.remirepo.net/post/2016/09/01/PHP-version-5.6.25-et-7.0.10 urn:md5:fd0aab0ad916484c020dd86f1dd330df

Avec un peu de retard en raison de mes vacances.

Les RPM de PHP version 7.0.10 sont disponibles dans le dépôt remi-php70 pour Fedora et Enterprise Linux (RHEL, CentOS).

Les RPM de PHP version 5.6.25 sont disponibles dans le dépôt remi pour Fedora ≥ 21 et remi-php56 pour Enterprise Linux.

emblem-important-2-24.pngPHP version 5.5 a atteint sa fin de vie et n'est plus maintenu par le projet.

emblem-important-2-24.pngPHP version 5.4 a atteint sa fin de vie et n'est plus maintenu par le projet.

Ces versions sont aussi disponibles en Software Collections.

security-medium-2-24.pngCes versions corrigent quelques failles de sécurité, la mise à jour est donc vivement recommandée.

Annonces des versions :

emblem-important-2-24.png La version 5.5.27 était la dernière mise à jour corrigeant des bugs. La branche 5.5 est donc en maintenance de sécurité uniquement (jusqu'en Juillet 2016).

emblem-notice-24.pngInstallation : voir l'assistant de configuration et choisir la version et le mode d'installation.

Remplacement du PHP par défaut du système par la version 7.0 (le plus simple) :

yum-config-manager --enable remi-php70
yum update

Installation en parallèle, en Software Collections de PHP 7.0 (x86_64 uniquement) :

yum install php70

Remplacement du PHP par défaut du système par la version 5.6 (le plus simple) :

yum-config-manager --enable remi-php56
yum update

Installation en parallèle, en Software Collections de PHP 5.6 (x86_64 uniquement) :

yum install php56

Et bientôt dans les mises à jour officielles:

emblem-important-2-24.pngÀ noter :

  • la version EL7 est construite avec RHEL-7.2
  • la version EL6 est construite avec RHEL-6.8
  • beaucoup de nouvelles extensions sont aussi disponible, voir PECL extension RPM status page

emblem-notice-24.pngInformations, lire :

Paquets de base (php)

Software Collections (php56 / php70)

]]>
RPM
Thu, 01 Sep 2016 11:45:00 GMT Remi Collet : PHP version 5.6.25 et 7.0.10 https://blog.remirepo.net/post/2016/09/01/PHP-version-5.6.25-et-7.0.10 urn:md5:fd0aab0ad916484c020dd86f1dd330df

Avec un peu de retard en raison de mes vacances.

Les RPM de PHP version 7.0.10 sont disponibles dans le dépôt remi-php70 pour Fedora et Enterprise Linux (RHEL, CentOS).

Les RPM de PHP version 5.6.25 sont disponibles dans le dépôt remi pour Fedora ≥ 21 et remi-php56 pour Enterprise Linux.

emblem-important-2-24.pngPHP version 5.5 a atteint sa fin de vie et n'est plus maintenu par le projet.

emblem-important-2-24.pngPHP version 5.4 a atteint sa fin de vie et n'est plus maintenu par le projet.

Ces versions sont aussi disponibles en Software Collections.

security-medium-2-24.pngCes versions corrigent quelques failles de sécurité, la mise à jour est donc vivement recommandée.

Annonces des versions :

emblem-notice-24.pngInstallation : voir l'assistant de configuration et choisir la version et le mode d'installation.

Remplacement du PHP par défaut du système par la version 7.0 (le plus simple) :

yum-config-manager --enable remi-php70
yum update

Installation en parallèle, en Software Collections de PHP 7.0 (x86_64 uniquement) :

yum install php70

Remplacement du PHP par défaut du système par la version 5.6 (le plus simple) :

yum-config-manager --enable remi-php56
yum update

Installation en parallèle, en Software Collections de PHP 5.6 (x86_64 uniquement) :

yum install php56

Et bientôt dans les mises à jour officielles:

emblem-important-2-24.pngÀ noter :

  • la version EL7 est construite avec RHEL-7.2
  • la version EL6 est construite avec RHEL-6.8
  • beaucoup de nouvelles extensions sont aussi disponible, voir PECL extension RPM status page

emblem-notice-24.pngInformations, lire :

Paquets de base (php)

Software Collections (php56 / php70)

]]>
Archives
Tue, 30 Aug 2016 22:54:00 GMT Charles-Antoine Couret : Fedora 25 alpha peut être testée http://blog.fedora-fr.org/renault/post/Fedora-25-alpha-peut-%C3%AAtre-test%C3%A9e urn:md5:d9f63665849d21ce43798933ea5678c5

C'est ce mardi 30 août que les utilisateurs du Projet Fedora seront ravis d'apprendre la disponibilité de l'Alpha de la future Fedora 25.

Malgré les risques concernant la stabilité dune version Alpha, il est important de la tester ! En rapportant les bogues maintenant, vous découvrirez les nouveautés avant tout le monde, tout en améliorant la qualité de Fedora 25 et réduisez du même coup le risque de retard. Les versions en développements manquent de testeurs et de retours pour mener à bien leurs buts.

Notons que Wayland est cette fois activée par défaut (pour la version Workstation et lenvironnement GNOME). Ce changement majeur devrait être préservé. Un effort immense a été fait pour gommer les différences fonctionnelles avec la session X.org. Cependant l'expérience utilisateur n'a jamais été aussi respectée qu'avec ces améliorations. En cas de problèmes ou d'un manque important, n'hésitez pas à lancer GNOME avec X.org ce qui est proposé en option dans votre gestionnaire de session (GDM pour Fedora Workstation).

Voici les nouveautés annoncées pour cette version :

Bureautique

  • Cela a déjà été mentionné avec le passage de Wayland par défaut pour la session de GNOME ;
  • Mise en avant de LiveUSBTools pour créer les images installables par clés USB de Fedora sur Windows, Linux et Mac OS X afin de simplifier l'installation de Fedora en utilisant un médium plus populaire que le CD ;
  • Les machines avec deux cartes graphiques (une intégrée et une autre plus puissante, comme sur les portables) seront mieux gérées avec possibilité de mettre la acrte intégrée par défaut, n'activer la carte externe qu'en acs de besoin ou sur demande pour un programme précis ;

Internationalisation

  • L'UNICODE 9.0 fait son entrée ;
  • IBus propose de simplifier la saisie des caractères Emoji ;
  • IBus permet de changer de langue de saisie automatiquement en se basant sur la saisie utilisateur ;

Administration système

  • L'option de systemd KillUserProcesses est activée par défaut ce qui permet de tuer tous les processus de la session d'un utilisateur lorsqu'il se déconnecte ce qui peut avoir des effets de bords avec des connections distants et multiplexeur de terminaux ;
  • La bibliothèque NSS rejoint les politiques de sécurité de GnuTLS et OpenSSL en supprimant les normes SSL 3.0 et RC4 notamment qui sont obsolètes ;
  • Le lien symbolique slogin vers ssh a été supprimé pendant que le script sshd-keygen est supprimé en faveur du service systemd associé ;
  • La bibliothèque Storage remplace UDisk 2 qu'il avait forké par le passé tout en partageant la même API ;

Développement

  • La bibliothèque standard Glibc progresse à la version 2.24 ;
  • Le compilateur d'Haskell passe à la version 7.10 ;
  • Le reluisant langage Perl évolue à la version 5.24 ;
  • Pour les amateurs de JavaScript, c'est Node.js qui utilise la branche 6.x ;
  • Le compilateur pour le langage Rust est enfin disponible ;
  • Le langage Go fonce à la version 1.7 ;
  • Le langage fonctionnel Erlang 19 est à l'honneur ;
  • Le framework Ruby On Rails est sur les rails vers la version 5.0 ;
  • Le langage PHP s'impose avec la version 7.0 ;

Autour de Fedora

  • L'image minimale de base de Fedora ne dispose plus des paquets Perl pour l'alléger et simplifier sa maintenance ;
  • Koji génère maintenant les images installables de la distribution comme les fichiers ISO ;
  • Un nouveau jeu d'utilitaires basés sur Ansible ont été mis en place pour centraliser et simplifier la gestion des tests automatiques qui s'articulaient avant avec des scripts disparates et moins puissants ;
  • L'empaquetage de programmes Python va devenir plus simple en utilisant automatiquement le tag virtuel Provides avec le nom canonique du programme en question ;

Si l'aventure vous intéresse, les images sont disponibles par Torrent. En cas de bogue, n'oubliez pas de relire la documentation pour signaler les anomalies sur le BugZilla ou de contribuer à la traduction sur Zanata.

Bons tests à tous !

]]>
Fedora
Tue, 30 Aug 2016 21:17:00 GMT Guillaume Kulakowski : Nouveau serveur et stack LAMP propulsée par Docker ! http://feedproxy.google.com/~r/blog-guillaume-kulakowski/~3/oDtvcGjaFJM/nouveau-serveur-et-stack-lamp-propulsee-par-docker urn:md5:845150a7c5fba43415187cbc752525df

Afin de réduire les coûts d'hébergement de Scenario-PaintBall, site/forums qui partagent le même serveur que ce blog, nous avons étudié le remplacement de notre vieux Kimsufi 16G à 49€ TTC / mois. En effet, changer de serveur permet (presque) toujours d'avoir un serveur plus récent mais surtout tout aussi voir plus puissant que l'ancien et le tout pour moins cher. Après une rapide étude des solutions du marché, nous avons retenu une Dedibox XC 2016 à 19€20 TTC / mois.

Pour l'occasion j'en ai profité pour refondre complètement l'architecture d'hébergement :

  • Utilisation de CentOS 7 à la place de RHEL 6. Pourquoi passer de Red Hat vers CentOS ? Car, bien qu'en tant que contributeur, j'ai toujours des licences gratuites, je dois les faire renouveler tous les ans et ça me prend du temps et de l'énergie... et je suis fainéant.
  • Activation de SELinux ! Si j'ai déjà sauté le pas sur mes postes de travail (Fedora) depuis bien longtemps, l'ancien serveur était encore en mode désactivé ! Du coup je pourrais arborer fièrement le T-Shirt "setenforce 1" et ainsi faire plaisir à Dan.
  • Utilisation d'un cache HTTP : Varnish.
  • Mise en place d'une stack LAMP full Docker !

Et c'est ce dernier point dont je vais discuter.

docker.png  

Description de la stack LAMP dockérisée

Choix du moteur de stockage

Concernant le choix du moteur de stockage, je ne suis pas parti sur le natif CentOS, à savoir Device Mapper, mais j'ai retenu OverlayFS. J'ai fais ce choix sur les conseils de ce tutoriel et aussi de cette page de la documentation de Docker mais surtout à la lecture de cette phrase :

Many people consider OverlayFS as the future of the Docker storage drive

Gestion de l'envoi des mails et impact sur le réseau

Premier choix qui peut être discuté, j'ai fait le choix de ne pas mettre de container pour envoyer les mails mais d'envoyer les mails directement depuis l'host. En effet, j'ai pour habitude de considérer qu'un serveur doit posséder un MTA, c'est dailleurs une recommandation du Red Hat LSB.

Ceci implique donc que j'ai une communication des containers vers l'host. Comme j'ai un firewall (FirewallD) et que je veux sécuriser les choses au maximum, ceci implique une interface de communication avec un nom fixe. C'est à dire que j'exploite l'interface docker0 et non une interface créée par Compose qui serait créé avec un nom imprédictible (brd-hashquelconque). Du coup pour ouvrir les ports :

# On associe l'interface docker0 à une zone de confiance :
firewall-cmd --permanent --zone=trusted --change-interface=docker0

# On ouvre le service pour cette zone
firewall-cmd --permanent --zone=trusted --add-service=smtp

# On recharge :
firewall-cmd --reload

Pour que Compose utilise le réseau par défaut de docker, appelée "bridge" et utilisant l'interface docker0, il suffit de rajouter la ligne suivante dans Compose :

network_mode: "bridge"

Architecture et typologie de containers

Pour le moment Scénario PaintBall et ce blog partagent les mêmes versions de PHP (5.6) et Apache (2.4). J'utilise donc les mêmes images mais chaque infrastructure possède son propre container apache ainsi que son propre container PHP(-FPM). Bien entendu, un container Varnish mutualisé est présent en amont afin de dispatcher les requêtes sur la bonnes stack mais également pour assurer un rôle de cache HTTP. Concernant la base de données, j'ai fait le choix (discutable là encore) d'utiliser le même container pour les 2 stacks, c'est quand même plus simple à administrer, optimiser, backuper, etc....

De plus, j'ai également fait le choix de ne pas porter les applications Web (IPB, Dotrclear, WordPress) au sein des containers mais au sein de volumes. Ceci me permet de pouvoir mettre à jour les applications directement depuis l'host. Ceci me permet également de faire la migration de serveur plus rapidement.

Schéma d'architecture

Dans un mode 100% Dockerisé, j'aurais 1 groupe de container (Apache, PHP, Memcached, MariaDB, etc...) par application. Dans ce même mode, Dotclear (pour prendre cet exemple), serait présent directement dans les containers PHP et Apache et seul le répertoire public serait un volume partagé. Mais ça me prendrait carrément plus de temps (recréation des containers à chaque mise à jour de Dotclear ou d'un plugin) et le ROI serait négatif car je n'ai pas plusieurs environnements (prod, préprod, etc...), on parle ici d'applications personnelles. Bref, voici à quoi ça ressemble :

Architecture Docker Architecture Docker

Pour ce qui est des containers, j'ai fait un mix entre les containers officiels (MariaDB, Memcached) et des containers personnels (Apache 2.4, PHP 5.6).

Mon docker-compose.yml

Pour lancer mes containers, je suis fainéant, je passe par Compose. J'ai récupéré ma config perso, que j'ai un peu retravaillée :

version: '2'
services:

  ##################################################### Mutualized architecture
  famas_varnish:
    container_name: famas_varnish
    image: million12/varnish
    restart: always
    mem_limit: 1g
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/famas/varnish/conf/default.vcl:/etc/varnish/default.vcl:ro
    network_mode: "bridge"
    ports:
     - 80:80
    links:
     - llaumgui_httpd24:llaumgui
     - radinus_httpd24:radinus

  famas_mariadb10:
    container_name: famas_mariadb10
    image: mariadb:10
    restart: always
    mem_limit: 4g
    env_file:
     - .env
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/famas/mysql:/var/lib/mysql
    network_mode: "bridge"
    expose:
     - 3306

  ######################################################### spb's architecture
  spb_httpd24:
    container_name: spb_httpd24
    image: llaumgui/centos7-scl-httpd24
    build: 
      context: build/httpd/2.4/
    restart: always
    mem_limit: 512m
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/www/spb:/var/www/spb
     #- /docker/volumes/www/.htpasswd:/var/www/.htpasswd
     #- /docker/volumes/www/challenges:/var/www/challenges
     - /docker/volumes/spb/httpd24/conf/vhost.d:/etc/httpd/vhost.d:ro
     - /docker/volumes/spb/httpd24/conf/ssl:/etc/httpd/ssl/:ro
     - /docker/volumes/spb/httpd24/log/:/var/log/httpd24
    network_mode: "bridge"
    expose:
     - 80
    links:
     - spb_php56:php

  spb_php56:
    container_name: spb_php56
    image: llaumgui/centos7-scl-php56
    build:
      context: build/php-fpm/5.6/
    restart: always
    mem_limit: 2g
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/www/spb:/var/www/spb
     - /docker/volumes/spb/php56/log:/var/log/php-fpm
    network_mode: "bridge"
    expose:
     - 9000
    links:
     - famas_mariadb10:database
     - spb_memcached:memcached
    extra_hosts:
     - "mail:172.17.0.1"

  spb_memcached:
    container_name: spb_memcached
    image: memcached
    mem_limit: 512m
    volumes:
     - /etc/localtime:/etc/localtime:ro
    network_mode: "bridge"
    expose:
     - 1121

  ##################################################### llaumgui's architecture
  llaumgui_httpd24:
    container_name: llaumgui_httpd24
    image: llaumgui/centos7-scl-httpd24
    build: 
      context: build/httpd/2.4/
    restart: always
    mem_limit: 512m
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/www/llaumgui:/var/www/llaumgui
     - /docker/volumes/www/.htpasswd:/var/www/.htpasswd
     - /docker/volumes/www/challenges:/var/www/challenges
     - /docker/volumes/llaumgui/httpd24/conf/vhost.d:/etc/httpd/vhost.d:ro
     - /docker/volumes/llaumgui/httpd24/conf/ssl:/etc/httpd/ssl/:ro
     - /docker/volumes/llaumgui/httpd24/log/:/var/log/httpd24
    network_mode: "bridge"
    ports:
     #- 80:80
     - 443:443
    expose:
     - 80
    links:
     - llaumgui_php56:php
     - llaumgui_gitlab:gitlab

  llaumgui_php56:
    container_name: llaumgui_php56
    image: llaumgui/centos7-scl-php56
    build:
      context: build/php-fpm/5.6/
    restart: always
    mem_limit: 512m
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/www/llaumgui:/var/www/llaumgui
     - /docker/volumes/llaumgui/php56/log/:/var/log/php-fpm
    network_mode: "bridge"
    expose:
     - 9000
    links:
     - famas_mariadb10:database
    extra_hosts:
     - "mail:172.17.0.1"

Conclusion

La nouvelle architecture est en cours de test sur le blog et si c'est positif SPB devrait bientôt nous rejoindre. J'ai également quelques pistes pour améliorer les performances :

  • Réfléchir à l'utilisation d'1 container Postfix.
  • Migrer le blog en PHP 7.
]]>
Sysadmin
Tue, 30 Aug 2016 21:17:00 GMT Guillaume Kulakowski : Nouveau serveur et stack LAMP propulsée par Docker ! http://feedproxy.google.com/~r/blog-guillaume-kulakowski/~3/0k0hSl2d0eQ/nouveau-serveur-et-stack-lamp-propulsee-par-docker urn:md5:845150a7c5fba43415187cbc752525df

Afin de réduire les coûts d'hébergement de Scenario-PaintBall, site/forums qui partagent le même serveur que ce blog, nous avons étudié le remplacement de notre vieux Kimsufi 16G à 49€ TTC / mois. En effet, changer de serveur permet (presque) toujours d'avoir un serveur plus récent mais surtout tout aussi voir plus puissant que l'ancien et le tout pour moins cher. Après une rapide étude des solutions du marché, nous avons retenu une Dedibox XC 2016 à 19€20 TTC / mois.

Pour l'occasion j'en ai profité pour refondre complètement l'architecture d'hébergement :

  • Utilisation de CentOS 7 à la place de RHEL 6. Pourquoi passer de Red Hat vers CentOS ? Car, bien qu'en tant que contributeur, j'ai toujours des licences gratuites, je dois les faire renouveler tous les ans et ça me prend du temps et de l'énergie... et je suis fainéant.
  • Activation de SELinux ! Si j'ai déjà sauté le pas sur mes postes de travail (Fedora) depuis bien longtemps, l'ancien serveur était encore en mode désactivé ! Du coup je pourrais arborer fièrement le T-Shirt "setenforce 1" et ainsi faire plaisir à Dan.
  • Utilisation d'un cache HTTP : Varnish.
  • Mise en place d'une stack LAMP full Docker !

Et c'est ce dernier point dont je vais discuter.

docker.png  

Description de la stack LAMP dockérisée

Choix du moteur de stockage

Concernant le choix du moteur de stockage, je ne suis pas parti sur le natif CentOS, à savoir Device Mapper, mais j'ai retenu OverlayFS. J'ai fais ce choix sur les conseils de ce tutoriel et aussi de cette page de la documentation de Docker mais surtout à la lecture de cette phrase :

Many people consider OverlayFS as the future of the Docker storage drive

Gestion de l'envoi des mails et impact sur le réseau

Premier choix qui peut être discuté, j'ai fait le choix de ne pas mettre de container pour envoyer les mails mais d'envoyer les mails directement depuis l'host. En effet, j'ai pour habitude de considérer qu'un serveur doit posséder un MTA, c'est dailleurs une recommandation du Red Hat LSB.

Ceci implique donc que j'ai une communication des containers vers l'host. Comme j'ai un firewall (FirewallD) et que je veux sécuriser les choses au maximum, ceci implique une interface de communication avec un nom fixe. C'est à dire que j'exploite l'interface docker0 et non une interface créée par Compose qui serait créé avec un nom imprédictible (brd-hashquelconque). Du coup pour ouvrir les ports :

# On associe l'interface docker0 à une zone de confiance :
firewall-cmd --permanent --zone=trusted --change-interface=docker0

# On ouvre le service pour cette zone
firewall-cmd --permanent --zone=trusted --add-service=smtp

# On recharge :
firewall-cmd --reload

Pour que Compose utilise le réseau par défaut de docker, appelée "bridge" et utilisant l'interface docker0, il suffit de rajouter la ligne suivante dans Compose :

network_mode: "bridge"

Architecture et typologie de containers

Pour le moment Scénario PaintBall et ce blog partagent les mêmes versions de PHP (5.6) et Apache (2.4). J'utilise donc les mêmes images mais chaque infrastructure possède son propre container apache ainsi que son propre container PHP(-FPM). Bien entendu, un container Varnish mutualisé est présent en amont afin de dispatcher les requêtes sur la bonnes stack mais également pour assurer un rôle de cache HTTP. Concernant la base de données, j'ai fait le choix (discutable là encore) d'utiliser le même container pour les 2 stacks, c'est quand même plus simple à administrer, optimiser, backuper, etc....

De plus, j'ai également fait le choix de ne pas porter les applications Web (IPB, Dotrclear, WordPress) au sein des containers mais au sein de volumes. Ceci me permet de pouvoir mettre à jour les applications directement depuis l'host. Ceci me permet également de faire la migration de serveur plus rapidement.

Schéma d'architecture

Dans un mode 100% Dockerisé, j'aurais 1 groupe de container (Apache, PHP, Memcached, MariaDB, etc...) par application. Dans ce même mode, Dotclear (pour prendre cet exemple), serait présent directement dans les containers PHP et Apache et seul le répertoire public serait un volume partagé. Mais ça me prendrait carrément plus de temps (recréation des containers à chaque mise à jour de Dotclear ou d'un plugin) et le ROI serait négatif car je n'ai pas plusieurs environnements (prod, préprod, etc...), on parle ici d'applications personnelles. Bref, voici à quoi ça ressemble :

Architecture Docker Architecture Docker

Pour ce qui est des containers, j'ai fait un mix entre les containers officiels (MariaDB, Memcached) et des containers personnels (Apache 2.4, PHP 5.6).

Mon docker-compose.yml

Pour lancer mes containers, je suis fainéant, je passe par Compose. J'ai récupéré ma config perso, que j'ai un peu retravaillée :

version: '2'
services:

  ##################################################### Mutualized architecture
  famas_varnish:
    container_name: famas_varnish
    image: million12/varnish
    restart: always
    mem_limit: 1g
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/famas/varnish/conf/default.vcl:/etc/varnish/default.vcl:ro
    network_mode: "bridge"
    ports:
     - 80:80
    links:
     - llaumgui_httpd24:llaumgui
     - spb_httpd24:spb

  famas_mariadb10:
    container_name: famas_mariadb10
    image: mariadb:10
    restart: always
    mem_limit: 4g
    env_file:
     - .env
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/famas/mysql:/var/lib/mysql
    network_mode: "bridge"
    expose:
     - 3306

  ######################################################### spb's architecture
  spb_httpd24:
    container_name: spb_httpd24
    image: llaumgui/centos7-scl-httpd24
    build: 
      context: build/httpd/2.4/
    restart: always
    mem_limit: 512m
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/www/spb:/var/www/spb
     #- /docker/volumes/www/.htpasswd:/var/www/.htpasswd
     #- /docker/volumes/www/challenges:/var/www/challenges
     - /docker/volumes/spb/httpd24/conf/vhost.d:/etc/httpd/vhost.d:ro
     - /docker/volumes/spb/httpd24/conf/ssl:/etc/httpd/ssl/:ro
     - /docker/volumes/spb/httpd24/log/:/var/log/httpd24
    network_mode: "bridge"
    expose:
     - 80
    links:
     - spb_php56:php

  spb_php56:
    container_name: spb_php56
    image: llaumgui/centos7-scl-php56
    build:
      context: build/php-fpm/5.6/
    restart: always
    mem_limit: 2g
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/www/spb:/var/www/spb
     - /docker/volumes/spb/php56/log:/var/log/php-fpm
    network_mode: "bridge"
    expose:
     - 9000
    links:
     - famas_mariadb10:database
     - spb_memcached:memcached
    extra_hosts:
     - "mail:172.17.0.1"

  spb_memcached:
    container_name: spb_memcached
    image: memcached
    mem_limit: 512m
    volumes:
     - /etc/localtime:/etc/localtime:ro
    network_mode: "bridge"
    expose:
     - 1121

  ##################################################### llaumgui's architecture
  llaumgui_httpd24:
    container_name: llaumgui_httpd24
    image: llaumgui/centos7-scl-httpd24
    build: 
      context: build/httpd/2.4/
    restart: always
    mem_limit: 512m
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/www/llaumgui:/var/www/llaumgui
     - /docker/volumes/www/.htpasswd:/var/www/.htpasswd
     - /docker/volumes/www/challenges:/var/www/challenges
     - /docker/volumes/llaumgui/httpd24/conf/vhost.d:/etc/httpd/vhost.d:ro
     - /docker/volumes/llaumgui/httpd24/conf/ssl:/etc/httpd/ssl/:ro
     - /docker/volumes/llaumgui/httpd24/log/:/var/log/httpd24
    network_mode: "bridge"
    ports:
     #- 80:80
     - 443:443
    expose:
     - 80
    links:
     - llaumgui_php56:php
     - llaumgui_gitlab:gitlab

  llaumgui_php56:
    container_name: llaumgui_php56
    image: llaumgui/centos7-scl-php56
    build:
      context: build/php-fpm/5.6/
    restart: always
    mem_limit: 512m
    volumes:
     - /etc/localtime:/etc/localtime:ro
     - /docker/volumes/www/llaumgui:/var/www/llaumgui
     - /docker/volumes/llaumgui/php56/log/:/var/log/php-fpm
    network_mode: "bridge"
    expose:
     - 9000
    links:
     - famas_mariadb10:database
    extra_hosts:
     - "mail:172.17.0.1"

Conclusion

La nouvelle architecture est en cours de test sur le blog et si c'est positif SPB devrait bientôt nous rejoindre. J'ai également quelques pistes pour améliorer les performances :

  • Réfléchir à l'utilisation d'1 container Postfix.
  • Migrer le blog en PHP 7.
]]>
Sysadmin