Zend Server est un serveur d'application PHP de pointe qui comprend des runtimes PHP sécurisés et supportés ainsi que les outils éprouvés dont vous avez besoin pour automatiser et accélérer les déploiements, la surveillance et le débogage afin de vous permettre de vous améliorer.
Supported PHP Versions PHP 7.1
Supported Operating Systems Linux x86-64
Note:
Important:
Supported Web Servers
On télécharge la version de Zend Server que nous souhaitons installer.
Dans notre cas la version 9.1. Une fois l'archive sur le server, on la décompresse.
[root@zend tmp]# tar xvzf ZendServer-9.1.10-RepositoryInstaller-linux.tar.gz ZendServer-RepositoryInstaller-linux/ ZendServer-RepositoryInstaller-linux/install_zs.sh ZendServer-RepositoryInstaller-linux/zend.rpm_apache2.4.repo ZendServer-RepositoryInstaller-linux/zend.deb_power8.repo ZendServer-RepositoryInstaller-linux/zend.deb_apache2.4.repo ZendServer-RepositoryInstaller-linux/zend.deb_ssl1.1.repo ZendServer-RepositoryInstaller-linux/zend.deb_debian9.repo ZendServer-RepositoryInstaller-linux/nginx/ ZendServer-RepositoryInstaller-linux/nginx/nginx.repo ZendServer-RepositoryInstaller-linux/nginx/nginx.list ZendServer-RepositoryInstaller-linux/nginx/install_nginx.sh ZendServer-RepositoryInstaller-linux/README
On rentre dans le dossier et on lance l'installation avec le script 'install.sh'
[root@zend tmp]# cd ZendServer-RepositoryInstaller-linux/ [root@zend ZendServer-RepositoryInstaller-linux]# ./install_zs.sh 7.1 --automatic Running this script will perform the following: * Configure your package manager to use Zend Server repository * Install Zend Server (PHP 7.1) on your system using your package manager Tool for checking existing installation: rpm est /usr/bin/rpm rpm est /usr/bin/rpm Doing repository configuration for: yum est /usr/bin/yum Package manager for installation: yum est /usr/bin/yum Modules complémentaires chargés : fastestmirror Loading mirror speeds from cached hostfile * base: centos.mirror.ate.info * extras: centos.mirror.ate.info * updates: centos.mirror.fr.planethoster.net ... ... 11/76 Installation : php-7.1-pdo-mysql-zend-server-7.1.33-33.x86_64 12/76 Installation : php-7.1-odbc-zend-server-7.1.33-33.x86_64 13/76 Installation : php-7.1-sysvmsg-zend-server-7.1.33-33.x86_64 ... ... Stopping Zend Server 9.1.10 .. zsd is not running jqd is not running zdd is not running scd is not running lighttpd is not running monitor is not running Zend Server stopped. Creating/Upgrading Zend databases. This may take several minutes... X-Powered-By: PHP/7.1.33 ZendServer/9.1.10 Content-type: text/html; charset=UTF-8 Zend Server Daemon: service is starting (as application) ... Checking firewall status: running Configuring firewall exceptions for ZendServer success ... ... *********************************************************** * Zend Server was successfully installed. * * * * To access the Zend Server UI open your browser at: * * https://<hostname>:10082/ZendServer (secure) * * or * * http://<hostname>:10081/ZendServer * *********************************************************** Log file is kept at /tmp/install_zs.log.14243
On accepte les conditions d'utilisations.
On sélectionne le mode “production”.
On définie un mot de passe pour l'utilisateur “admin” ainsi que pour l'utilisateur “developer”.
L'installation est terminée.
Une fois connecté, on a accès au panel de Zend Server.
Important:
Section à valider sous Linux
Les serveurs Apache Zend Server traitent les requêtes avec un wrapper FastCGI appelé Zend Enabler. Cette rubrique explique comment régler le pool de processus PHP sous l'enveloppe FastCGI pour qu'il corresponde à l'activité normale du serveur et tolère des charges plus élevées.
Par défaut, le serveur Zend fonctionne avec un maximum de dix instances PHP simultanées. Pour les serveurs Web à forte charge, il est recommandé d'augmenter cette valeur, en fonction de vos exigences de performance et d'autres limitations matérielles/logicielles (telles que la mémoire, le processeur, etc.).
Note:
Ces paramètres par défaut sont définis lorsque vous installez Zend Server.
Pour contrôler le nombre maximum d'instances PHP simultanées
Localisez le fichier “ZendEnablerConf.xml”. Dans ce même fichier, localisez le texte suivant :
<ProcessCount start="2" extra="8"/>
Cela permettra à Zend Server d'exécuter jusqu'à 10 instances PHP. Pour des charges plus importantes, augmentez cette valeur.
Contrôler la quantité de demandes traitées par une seule instance de PHP avant le recyclage
Localisez le fichier “ZendEnablerConf.xml”. Dans ce même fichier, localisez le texte suivant :
<Variable name="PHP_FCGI_MAX_REQUESTS" value="10000" />
Cela permettra à une seule instance PHP de traiter 10000 requêtes avant d'être recyclée par le Zend Enabler.
Lors de l'installation de la plateforme de Zend Server, nous disposerons de 30 jours d'essaie.
Pour activer la licence, il faudra se rendre dans la partie : Administration > License > Update License
Comme tout autre produit, Zend Server possède un système de sauvegarde et de restauration des configurations.
Cette option vous permet d'exporter un fichier .zip contenant vos configurations PHP et système actuelles pour une utilisation future. En outre, le fichier .zip exporté contient également vos règles de surveillance et de mise en cache personnalisées.
Pour exporter des configurations :
Vos configurations sont exportées et enregistrées dans un fichier .zip à l'emplacement sélectionné.
Les composants du Zend Server sont conçus pour répondre à plusieurs exigences différentes. Cependant, il est inutile d'ajouter ou d'utiliser certains composants lorsqu'ils ne sont pas nécessaires. Cela se produit principalement lorsque vous installez un composant que vous n'utilisez pas. Par exemple, si vous n'avez pas besoin d'appeler des objets Java à partir de votre code PHP, il n'est pas nécessaire de faire fonctionner le module Zend Java Bridge.
En outre, il serait préférable de ne pas installer du tout ce composant optionnel, d'autant plus que vous serez invité à installer un environnement d'exécution Java qui n'est pas nécessaire si vous n'exécutez que PHP.
Dans cette section, nous décrivons chaque composant de performance, y compris quand vous devez installer le composant, quand le désactiver et, le cas échéant, quand le supprimer.
Désactiver les modules non utilisés.
Administration > Components
L'une des bonnes pratiques dans sur les systèmes d'exploitations ou dans les extension de langage telle que PHP et qu'il faille minimiser les processus qui tourne. En claire, si on n'utilise pas, on désactive.
Voici un exemple avec les extension PHP :
Nous interdisons l'accès de la Web UI de Zend Server depuis internet.
Dans Administration > Settings et activer l'option “Block internet access of Zend Server”
Par défaut, l'accès à l'interface utilisateur est protégé par un mot de passe. Si vous souhaitez sécuriser l'accès à l'interface utilisateur, vous pouvez le faire en définissant une liste de contrôle d'accès basée sur les adresses IP sur le serveur Web qui exécute l'interface utilisateur.
Après avoir suivi cette procédure, les utilisateurs qui tentent d'accéder à l'interface utilisateur à partir d'adresses IP non autorisées (non habilitées) ne peuvent pas accéder à l'interface utilisateur.
L'interface d'administration fonctionne sur un serveur Web lighttpd dédié.
Pour sécuriser l'accès à l'interface utilisateur, modifiez votre fichier de configuration “lighttpd” de la manière suivante :
Note:
Path : /usr/local/zend/gui/lighttpd/etc/lighttpd.conf
Remplacer :
#$HTTP["remoteip"] !~ "@@ALLOWED_IPS@@" { # $HTTP["url"] =~ "^/ZendServer/" { # url.access-deny = ( "" ) # } #}
par
$HTTP["remoteip"] !~ "10.1.2.163|10.1.6.46|127.0.0.1" { $HTTP["url"] =~ "^/ZendServer/" { url.access-deny = ( "" ) } }
Cet exemple montre comment autoriser l'accès à partir des adresses 10.1.2.163, 10.1.6.46 et localhost et refuser le reste.
Après avoir appliqué les changements à vos configurations, redémarrez le serveur lighttpd avec la commande
# <install_path>/bin/lighttpd.sh restart
ou
# <install_path>/bin/zendctl.sh restart-lighttpd
Toutes les configurations de PHP devrons êtres réalisées depuis la Web UI de Zend Server.
Dans l'exemple suivant, nous allons désactiver certaines fonctions dans PHP pour des raisons de sécurité. En temps normal, ces modifications sont réalisées en bas niveau en modifiant le fichier “php.ini”.
Chercher “Safe Mode” et dans “disable_functions” ajouter les fonctions suivantes : exec,passthru,shell_exec,system,proc_open,popen,curl_exec,curl_multi_exec,parse_ini_file,show_source
Désactiver la fonction “expose_php”, cette option se trouve dans la section “Language Options”
Désactiver les fonctions “allow_url_fopen” et “allow_url_include”, ces options se trouve dans la section “Filesystem and Streams”
La configuration d'un cluster détermine le comportement de tous les serveurs qui ont été ajoutés à celui-ci. Lorsque vous modifiez un paramètre dans un cluster, comme la valeur d'une directive ou le chargement d'une extension, tous les serveurs du cluster seront modifiés en conséquence une fois que le service sera redémarré.
Pour basculer en mode cluster, il nous faudra un server de base de donnée. Celui-ci contiendra la configuration pour maintenir la cohérence entre tous les nœuds.
Attention:
La création d'un cluster, réinitialise toutes les configurations existantes.
Nous allons utiliser l'architecture suivante :
Sur le serveur de base de données 'mariadb.oowy.lan', connectez-vous à MySQL en tant que root et créez la base de données :
# mysql -u root -p mysql> CREATE DATABASE ZendServerCluster CHARACTER SET utf8 COLLATE utf8_bin; Query OK, 1 row affected (0.00 sec) mysql> GRANT ALL PRIVILEGES ON ZendServerCluster.* TO 'ZendServerUser'@'%' IDENTIFIED BY 'your_password'; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> exit
Sur le serveur zend01.oowy.lan, connectez-vous sur la Web UI de Zend Server.
Dans Servers > Manage Servers > Join Cluster
Renseigner les informations de connexion à la base de données.
Une fois cette action réalisée, notre premier serveur fait office de premier membre du cluster.
Sur le serveur zend02.oowy.lan, connectez-vous sur la Web UI de Zend Server.
Dans Servers > Manage Servers > Join Cluster
Renseigner les informations de connexion à la base de données.
Une fois cette action réalisée, notre second serveur devient membre du cluster.
Dans Servers > Manage Servers > Session Clustering, cliquer sur “Clic here”
Valider la la popup qui s'affiche
Un message nous confirme que l'action est validée
Si l'on retourne dans Servers > Manage Servers, on se rend compte que nous devons redémarrer les Zend Server
On clique sur la flèche prêt de l’icône de profile. Une popup s'ouvre pour nous demander confirmation sur l'action. On valide.
Le cluster est opérationnel.
On télécharge la version de Zend Server vers laquelle nous souhaitons passer. Dans notre cas la version 2019.0.3
[root@zend tmp]# tar xvzf ZendServer-2019.0.3-RepositoryInstaller-linux.tar.gz ZendServer-RepositoryInstaller-linux/ ZendServer-RepositoryInstaller-linux/install_zs.sh ZendServer-RepositoryInstaller-linux/zend.rpm_apache2.4.repo ZendServer-RepositoryInstaller-linux/zend.deb_power8.repo ZendServer-RepositoryInstaller-linux/zend.deb_apache2.4.repo ZendServer-RepositoryInstaller-linux/zend.deb_ssl1.1.repo ZendServer-RepositoryInstaller-linux/zend.deb_debian9.repo ZendServer-RepositoryInstaller-linux/nginx/ ZendServer-RepositoryInstaller-linux/nginx/nginx.repo ZendServer-RepositoryInstaller-linux/nginx/nginx.list ZendServer-RepositoryInstaller-linux/nginx/install_nginx.sh ZendServer-RepositoryInstaller-linux/README [root@zend tmp]# cd ZendServer-RepositoryInstaller-linux/ [root@zend ZendServer-RepositoryInstaller-linux]# ./install_zs.sh