Dans cet article particulier, nous ferons la démonstration d'une solution pour installer plusieurs versions de PhalCon et PHP et les exécuterons sur un seul serveur Web. PHP 5.5.x et 5.6.x seront utilisés ici, mais vous pouvez les remplacer par d'autres versions. Tous les serveurs qui prennent en charge PHP-FPM devraient être suffisants, mais nous vous recommandons d'utiliser Nginx. L'environnement utilisé dans ce tutoriel est Fedora OS - un système Linux, mais les instructions sont presque identiques pour tout autre * Nix OS.
Les plats clés
- Utilisez Nginx et PHP-FPM pour exécuter plusieurs versions de PHP sur un seul serveur, comme démontré avec PHP 5.5.x et 5.6.x sur Fedora OS.
- Assurez-vous que tous les outils de développement et les bibliothèques nécessaires sont installés, tels que GCC, MADE et LiBtool, pour construire avec succès PHP à partir de Source.
- Clone the PHP source code from GitHub to access multiple PHP versions and configure them using the `./configure` script with specific options like `–enable-fpm` for PHP-FPM support.
- Installez et configurez différentes versions PHP dans des répertoires distincts (`/ opt / php-5.5`,` / opt / php-5.6`) pour les isoler et éviter les conflits.
- Modifiez la configuration NGINX pour diriger le trafic vers différentes versions PHP en fonction des noms de serveurs, permettant un hébergement simultané de plusieurs applications nécessitant différents environnements PHP.
Note préliminaire
Ce tutoriel couvrira l'installation de PHP 5.5.x avec Phalcon 1.3.x et PHP 5.6.x avec Phalcon 2.0.0. Nous allons également créer des extensions de PHP supplémentaires telles que APC, Memcache, Memcached et Ioncube.
Installation de nginx
nginx est un package disponible dans Fedora OS que nous pouvons installer comme suit:
sudo yum install nginx
Ensuite, nous créons les liens de démarrage système pour nginx et le commençons
sudo chkconfig nginx on sudo service nginx start
Construire PHP
Avant de commencer par PHP, nous devons installer les conditions préalables à la construction de PHP5:
- gcc ou autre suite de compilateur.
- LIBC-DEV, fournit la bibliothèque standard C, y compris les en-têtes.
- faire, qui est l'outil de gestion de build-management que Php utilise.
- AutoConf (2,59 ou plus) pour générer le script de configuration.
- Automake (1,4 ou plus), génère des fichiers makefile.in.
- libtool, nous aide à gérer les bibliothèques partagées.
- bison (2,4 ou plus), pour générer l'analyseur PHP.
- (facultatif) RE2C, qui est utilisé pour générer le lexer PHP. Comme le référentiel GIT contient déjà un lexer généré, vous n'aurez besoin que si vous souhaitez apporter des modifications à lui.
Sur CentOS / Fedora, vous pouvez installer tous ces éléments avec la commande suivante:
sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
Ensuite, nous devons obtenir son code source. Il existe deux façons de le faire: vous pouvez soit télécharger une archive à partir de la page de téléchargement de PHP, soit cloner le référentiel Git de GitHub.
Nous vous recommandons de consulter le code source de GIT, car il vous fournit un moyen facile de garder votre installation à jour et d'essayer votre code avec différentes versions. Un paiement GIT est également requis si vous souhaitez soumettre des correctifs ou des demandes de tir pour PHP.
Pour cloner le référentiel, exécutez les commandes suivantes dans votre terminal:
sudo yum install nginx
Par défaut, vous serez sur la branche maître, donc si vous souhaitez passer à une version de développement, vous devez consulter la branche stable. Par exemple.
sudo chkconfig nginx on sudo service nginx start
Avant d'aller aux étapes de construction individuelles, nous devons exécuter certaines commandes pour une version PHP «par défaut». Ceci n'est nécessaire que pour les constructions à partir de git.
sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
./ buildConf génère le script de configuration. Cela peut prendre plusieurs minutes.
À mon avis, le stockage de l'ensemble du serveur Web dans un seul répertoire est le meilleur, donc j'utilise / opt ici. Ouvrez le terminal et tapez la commande suivante.
sudo mkdir /opt/source && cd /opt/source git clone git@github.com:php/php-src.git && cd php-src
Une fois le script ./configure généré via l'étape ci-dessus, vous pouvez l'utiliser pour personnaliser votre version PHP. Vous pouvez répertorier toutes les options prises en charge en utilisant –Help:
<span> PHP 5.3: git checkout PHP-5.3 </span><span> PHP 5.4: git checkout PHP-5.4 </span><span> PHP 5.6: git checkout PHP-5.6 </span><span> PHP HEAD: git checkout master </span>
La commande ci-dessus répertorie diverses options génériques, qui sont prises en charge par tous les scripts de configuration basés sur AutoCONF. L'un d'eux est déjà mentionné –prefix = dir, qui modifie le répertoire d'installation utilisé par Make Installer. Une autre option utile est -C, qui mettra en cache le résultat de divers tests dans le fichier config.cache et accélérera les appels ./configure. L'utilisation de cette option n'a de sens qu'une fois que vous avez déjà une version de travail et que vous souhaitez changer rapidement entre différentes configurations.
Voici quelques paramètres utiles:
sudo ./buildconf
Après avoir terminé la préparation, nous installons la version PHP 5.6. Exécutez ce qui suit:
sudo mkdir -p /opt/php-5.6 sudo mkdir -p /opt/php-5.5
Le dernier commutateur (–Enable-FPM) fait fonctionner cette version PHP avec PHP-FPM. Si vous souhaitez utiliser cette version PHP-FPM avec Apache, veuillez utiliser --with-fpm-user = apache et --with-fpm-group = apache. D'un autre côté, si vous souhaitez utiliser cette version php-fpm avec nginx, veuillez utiliser --with-fpm-user = nginx et --with-fpm-group = nginx.
Un message réussi doit être imprimé dans le terminal comme SO:
./configure --help
Maintenant, vous pouvez utiliser Make pour effectuer la compilation réelle:
[...] Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print `checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for `--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or `..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] [...]
Le résultat principal de cette opération sera les binaires PHP pour les SAPIS activés (par défaut SAPI / CLI / PHP et SAPI / CGI / PHP-CGI), ainsi que des extensions partagées dans les modules / répertoire.
Maintenant, vous pouvez exécuter «Faire installer» pour installer PHP dans / usr / local (par défaut) ou d'autres répertoires en utilisant la configuration - préfixe. Dans ce cas, c'est /opt/php-5.6
./configure \ --prefix=/opt/php-5.6 \ --with-pdo-pgsql \ --with-zlib-dir \ --with-freetype-dir \ --enable-mbstring \ --with-libxml-dir=/usr \ --enable-soap \ --enable-calendar \ --with-curl \ --with-mcrypt \ --with-zlib \ --with-gd \ --with-pgsql \ --disable-rpath \ --enable-inline-optimization \ --with-bz2 \ --with-zlib \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --with-mhash \ --enable-zip \ --with-pcre-regex \ --with-mysql \ --with-pdo-mysql \ --with-mysqli \ --with-png-dir=/usr \ --enable-gd-native-ttf \ --with-openssl \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --with-libdir=lib64 \ --enable-ftp \ --with-imap \ --with-imap-ssl \ --with-kerberos \ --with-gettext \ --with-gd \ --with-jpeg-dir=/usr/lib/ --enable-fpm
Veuillez noter que la création de l'installation ne créera pas de fichier INI.
[...] creating libtool appending configuration tag "CXX" to libtool Generating files configure: creating ./config.status creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP. config.status: creating php5.spec config.status: creating main/build-defs.h config.status: creating scripts/phpize config.status: creating scripts/man1/phpize.1 config.status: creating scripts/php-config config.status: creating scripts/man1/php-config.1 config.status: creating sapi/cli/php.1 config.status: creating sapi/fpm/php-fpm.conf config.status: creating sapi/fpm/init.d.php-fpm config.status: creating sapi/fpm/php-fpm.service config.status: creating sapi/fpm/php-fpm.8 config.status: creating sapi/fpm/status.html config.status: creating sapi/cgi/php-cgi.1 config.status: creating ext/phar/phar.1 config.status: creating ext/phar/phar.phar.1 config.status: creating main/php_config.h config.status: executing default commands
Copier Php.ini et PHP-FPM.Conf dans le répertoire correct:
make
nous vérifions et vérifions la version PHP une fois de plus.
sudo yum install nginx
ouvrir /opt/php-5.6/etc/php-fpm.conf et ajuster les paramètres dans la ligne d'écoute. Vous devez passer à un port inutilisé (par exemple 9001; le port 9000 peut être utilisé par Fedora)
sudo chkconfig nginx on sudo service nginx start
sudo yum install gcc libxml2-devel libXpm-devel gmp-devel libicu-devel t1lib-devel aspell-devel openssl-devel bzip2-devel libcurl-devel libjpeg-devel libvpx-devel libpng-devel freetype-devel readline-devel libtidy-devel libxslt-devel libmcrypt-devel pcre-devel curl-devel mysql-devel ncurses-devel gettext-devel net-snmp-devel libevent-devel libtool-ltdl-devel libc-client-devel postgresql-devel bison gcc make
Configuration du script init
Vous voudrez probablement créer un script init pour votre nouveau PHP-FPM. Heureusement, PHP 5.3 le fournit déjà pour vous, copiez simplement le script init dans votre répertoire et modifiez les autorisations:
sudo mkdir /opt/source && cd /opt/source git clone git@github.com:php/php-src.git && cd php-src
Votre script init est prêt. Maintenant, vous pouvez démarrer, arrêter et recharger PHP-FPM:
<span> PHP 5.3: git checkout PHP-5.3 </span><span> PHP 5.4: git checkout PHP-5.4 </span><span> PHP 5.6: git checkout PHP-5.6 </span><span> PHP HEAD: git checkout master </span>
Construire le deuxième php (5.5.x)
Nous ouvrons le terminal et tapons la commande suivante.
sudo ./buildconf
Construire des extensions Php Phalcon
Pour installer plusieurs versions de PhalCon, y compris Phalcon 2.0, nous devons installer Zephir
sudo mkdir -p /opt/php-5.6 sudo mkdir -p /opt/php-5.5
Il existe de nombreuses façons d'installer des extensions de PHP. Nous utiliserons Phpize Build It.
phpize joue un rôle similaire à celle du script ./BuildConf utilisé pour les builds PHP: d'abord, il importera le système de build PHP dans votre extension en copiant des fichiers à partir de $ prefix / lib / php / build. Parmi ces fichiers figurent Acinclude.M4 (PHP M4 Macros), phpize.m4 (qui sera renommé configurer.in dans votre extension et contient les instructions de construction principales) et les tests de runs.php.
Ensuite, Phpize invoquera AutoConf pour générer un fichier ./configure, qui peut être utilisé pour personnaliser la construction d'extension. Comme l'installation memcached, vous devez ajouter --enable-memcache.
Rappelez-vous! Vous devez spécifier l'option --with-php-config lors de la création des extensions (sauf si vous n'avez qu'une seule installation globale de PHP). Sinon ./configure ne pourra pas déterminer correctement la version PHP et les indicateurs. De plus, le script PHP-Config garantit également que la commande «Making Installer» déplacera le fichier * .so généré vers le répertoire d'extension de droite.
Construire le premier php phalcon (2.0)
./configure --help
Veuillez vérifier s'il réussit ou non
[...] Usage: ./configure [OPTION]... [VAR=VALUE]... To assign environment variables (e.g., CC, CFLAGS...), specify them as VAR=VALUE. See below for descriptions of some of the useful variables. Defaults for the options are specified in brackets. Configuration: -h, --help display this help and exit --help=short display options specific to this package --help=recursive display the short help of all the included packages -V, --version display version information and exit -q, --quiet, --silent do not print `checking ...' messages --cache-file=FILE cache test results in FILE [disabled] -C, --config-cache alias for `--cache-file=config.cache' -n, --no-create do not create output files --srcdir=DIR find the sources in DIR [configure dir or `..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX [/usr/local] --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX [PREFIX] By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'. For better control, use the options below. Fine tuning of the installation directories: --bindir=DIR user executables [EPREFIX/bin] --sbindir=DIR system admin executables [EPREFIX/sbin] --libexecdir=DIR program executables [EPREFIX/libexec] --sysconfdir=DIR read-only single-machine data [PREFIX/etc] --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] --localstatedir=DIR modifiable single-machine data [PREFIX/var] --libdir=DIR object code libraries [EPREFIX/lib] --includedir=DIR C header files [PREFIX/include] --oldincludedir=DIR C header files for non-gcc [/usr/include] --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] --datadir=DIR read-only architecture-independent data [DATAROOTDIR] --infodir=DIR info documentation [DATAROOTDIR/info] --localedir=DIR locale-dependent data [DATAROOTDIR/locale] --mandir=DIR man documentation [DATAROOTDIR/man] --docdir=DIR documentation root [DATAROOTDIR/doc/PACKAGE] --htmldir=DIR html documentation [DOCDIR] --dvidir=DIR dvi documentation [DOCDIR] --pdfdir=DIR pdf documentation [DOCDIR] --psdir=DIR ps documentation [DOCDIR] [...]
Une fois l'extension installée. Vous devez toujours l'activer en l'incluant dans le fichier php.ini.
./configure \ --prefix=/opt/php-5.6 \ --with-pdo-pgsql \ --with-zlib-dir \ --with-freetype-dir \ --enable-mbstring \ --with-libxml-dir=/usr \ --enable-soap \ --enable-calendar \ --with-curl \ --with-mcrypt \ --with-zlib \ --with-gd \ --with-pgsql \ --disable-rpath \ --enable-inline-optimization \ --with-bz2 \ --with-zlib \ --enable-sockets \ --enable-sysvsem \ --enable-sysvshm \ --enable-pcntl \ --enable-mbregex \ --with-mhash \ --enable-zip \ --with-pcre-regex \ --with-mysql \ --with-pdo-mysql \ --with-mysqli \ --with-png-dir=/usr \ --enable-gd-native-ttf \ --with-openssl \ --with-fpm-user=nginx \ --with-fpm-group=nginx \ --with-libdir=lib64 \ --enable-ftp \ --with-imap \ --with-imap-ssl \ --with-kerberos \ --with-gettext \ --with-gd \ --with-jpeg-dir=/usr/lib/ --enable-fpm
Construire le deuxième php phalcon (1.3.x)
[...] creating libtool appending configuration tag "CXX" to libtool Generating files configure: creating ./config.status creating main/internal_functions.c creating main/internal_functions_cli.c +--------------------------------------------------------------------+ | License: | | This software is subject to the PHP License, available in this | | distribution in the file LICENSE. By continuing this installation | | process, you are bound by the terms of this license agreement. | | If you do not agree with the terms of this license, you must abort | | the installation process at this point. | +--------------------------------------------------------------------+ Thank you for using PHP. config.status: creating php5.spec config.status: creating main/build-defs.h config.status: creating scripts/phpize config.status: creating scripts/man1/phpize.1 config.status: creating scripts/php-config config.status: creating scripts/man1/php-config.1 config.status: creating sapi/cli/php.1 config.status: creating sapi/fpm/php-fpm.conf config.status: creating sapi/fpm/init.d.php-fpm config.status: creating sapi/fpm/php-fpm.service config.status: creating sapi/fpm/php-fpm.8 config.status: creating sapi/fpm/status.html config.status: creating sapi/cgi/php-cgi.1 config.status: creating ext/phar/phar.1 config.status: creating ext/phar/phar.phar.1 config.status: creating main/php_config.h config.status: executing default commands
Nous vérifions à nouveau pour nous assurer que l'installation est réussie
make
Configuration de Nginx
sudo make install
La configuration suivante créera deux serveurs: le phalcon-prd.localhost s'exécute sur PHP 5.5.x et Phalcon-Dev.LocalHost fonctionne avec PHP 5.6.x. Ceci est un exemple, vous pouvez le personnaliser à tout ce que vous voulez, voir la documentation Nginx
/opt/php-5.6/bin/php --ini Configuration File (php.ini) Path: /opt/php-5.6/lib Loaded Configuration File: (none) Scan for additional .ini files in: (none) Additional .ini files parsed: (none)
Configurer le fichier des hôtes locaux
Si vous utilisez un système Linux, vous pouvez modifier le fichier hôte:
sudo cp <span>/opt/source/php-src/php-fpm.conf.default /opt/php-5.6/etc/php-fpm.conf </span>sudo cp <span>/opt/source/php-src/php.ini-production /opt/php-5.6/lib/php.ini</span>
Le nouveau fichier hôte ressemblera.
/opt/php-5.6/bin/php --ini Configuration File (php.ini) Path: /opt/php-5.6/lib Loaded Configuration File: /opt/php-5.6/lib/php.ini Scan for additional .ini files in: (none) Additional .ini files parsed: (none) ### Checking php /opt/php-5.6/bin/php --version PHP 5.6.2-dev (cli) (built: Oct 2 2014 17:20:23) Copyright (c) 1997-2014 The PHP Group Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies
Celui-ci intercepte toutes les demandes de phalcon-dev.localhost et phalcon-pd.localhost les envoie ensuite à votre serveur.
le tester
Pour les tests, nous créons un nouveau fichier appelé test.php et le mettons dans le dossier correspondant à la configuration ci-dessus de Nginx. Dans chaque fichier, nous ajoutons la commande suivante.
sudo yum install nginx
Maintenant, exécutant le fichier test.php dans chaque serveur, nous voyons un phalcon 1.3.x phpinfo () sur http: //phancon-pd.localhost/test.php pendant http: //phancon-dev.localhost /test.php Il devrait y avoir phpinfo () de phalcon 2.0.x.
en conclusion
Dans ce tutoriel, nous avons appris comment nous pouvons facilement avoir plusieurs versions exécutées activement de PHP sur notre serveur, chacune avec son propre ensemble d'extensions différentes si nécessaire. Cela peut être utile si vous effectuez un hébergement partagé, ou si vous devez prendre en charge les applications héritées anciennes tout en étant en mesure de développer et de se déployer sur des versions de pointe, par exemple.
Laissez vos commentaires dans les commentaires ci-dessous et, comme toujours, partagez cet article si vous l'avez aimé!
Des questions fréquemment posées sur l'exécution de plusieurs versions PHP sur un serveur
Comment puis-je exécuter plusieurs versions PHP sur un serveur en utilisant Apache et Php-FPM sur Ubuntu 18.04?
Pour exécuter plusieurs versions PHP sur un serveur en utilisant Apache et PHP-FPM sur Ubuntu 18.04, vous devez Installez les versions PHP requises et Apache. Ensuite, vous devez configurer Apache pour utiliser la version PHP-FPM pour chaque site. Vous pouvez le faire en modifiant le fichier de configuration Apache pour chaque site et en définissant la directive ProxyPassMatch pour utiliser le pool PHP-FPM correct. Après cela, vous devez créer un pool PHP-FPM pour chaque version PHP. Enfin, redémarrez Apache et PHP-FPM pour appliquer les modifications.
Comment puis-je basculer entre différentes versions PHP sur mon serveur?
Vous pouvez basculer entre différentes versions PHP sur votre serveur à l'aide du A2ENMOD et les commandes A2Dismod. La commande A2ENMOD permet un module et la commande A2Dismod désactive un module. Pour passer à une version PHP différente, vous devez désactiver la version PHP actuelle et activer la version PHP souhaitée. Après cela, vous devez redémarrer Apache pour appliquer les modifications.
Comment puis-je exécuter différents sites Web avec différentes versions de PHP?
Pour exécuter différents sites Web avec différentes versions de PHP, vous devez Configurez chaque site Web pour utiliser une version PHP différente. Vous pouvez le faire en modifiant le fichier de configuration Apache pour chaque site Web et en définissant la directive ProxyPassMatch pour utiliser le pool PHP-FPM correct. Après cela, vous devez créer un pool PHP-FPM pour chaque version PHP. Enfin, redémarrez Apache et PHP-FPM pour appliquer les modifications.
Comment puis-je installer plusieurs versions PHP sur Fedora 35 en utilisant Apache et PHP-FPM?
Pour installer plusieurs versions PHP sur Fedora 35 en utilisant Apache et PHP-FPM, vous devez installer les versions PHP requises et Apache. Ensuite, vous devez configurer Apache pour utiliser la version PHP-FPM pour chaque site. Vous pouvez le faire en modifiant le fichier de configuration Apache pour chaque site et en définissant la directive ProxyPassMatch pour utiliser le pool PHP-FPM correct. Après cela, vous devez créer un pool PHP-FPM pour chaque version PHP. Enfin, redémarrez Apache et PHP-FPM pour appliquer les modifications.
Comment puis-je utiliser PHPENV pour gérer plusieurs versions PHP?
Vous pouvez utiliser PHPENV pour gérer plusieurs versions PHP en installant PHPENV et le Versions PHP requises. Ensuite, vous pouvez utiliser la commande phPENV pour basculer entre différentes versions PHP. Vous pouvez également utiliser la commande PHPENV Global pour définir la version globale PHP, et la commande locale PHPENV pour définir la version PHP locale pour un répertoire spécifique.
Comment puis-je vérifier la version PHP actuelle sur mon serveur?
Vous pouvez vérifier la version PHP actuelle sur votre serveur en exécutant la commande php -v dans le terminal. Cette commande affichera la version PHP actuelle et d'autres informations sur l'installation PHP.
Comment puis-je installer une version PHP spécifique sur mon serveur?
Vous pouvez installer une version PHP spécifique sur votre serveur En utilisant la commande APT-Get Installer suivie du nom du package pour la version PHP souhaitée. Par exemple, pour installer PHP 7.2, vous exécuteriez la commande apt-get installer php7.2.
Comment puis-je configurer Apache pour utiliser une version PHP spécifique?
Vous pouvez configurer Apache pour Utilisez une version PHP spécifique en modifiant le fichier de configuration Apache et en définissant la directive ProxyPassMatch pour utiliser le pool PHP-FPM correct. Après cela, vous devez redémarrer Apache pour appliquer les modifications.
Comment puis-je créer un pool PHP-FPM pour une version PHP spécifique?
Vous pouvez créer un pool PHP-FPM pour un Version PHP spécifique en créant un nouveau fichier de configuration de pool dans le répertoire /etc/php/7.2/fpm/pool.d/. Le fichier de configuration doit contenir les paramètres du pool PHP-FPM, tels que l'adresse d'écoute et le port, l'utilisateur et le groupe, ainsi un serveur?
Vous pouvez résoudre les problèmes avec l'exécution de plusieurs versions PHP sur un seul serveur en vérifiant les journaux d'erreur Apache et PHP-FPM. Les journaux d'erreur peuvent fournir des informations sur tous les problèmes avec la configuration Apache ou les pools PHP-FPM. Vous pouvez également utiliser la commande php -v pour vérifier la version PHP actuelle et la commande A2ENMOD pour vérifier les modules PHP activés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

PHP reste un outil puissant et largement utilisé dans la programmation moderne, en particulier dans le domaine du développement Web. 1) PHP est facile à utiliser et intégré de manière transparente aux bases de données, et est le premier choix pour de nombreux développeurs. 2) Il prend en charge la génération de contenu dynamique et la programmation orientée objet, adaptée à la création et à la maintenance des sites Web rapidement. 3) Les performances de PHP peuvent être améliorées en mettant en cache et en optimisant les requêtes de base de données, et sa vaste communauté et son écosystème riche le rendent toujours important dans la pile technologique d'aujourd'hui.

En PHP, les références faibles sont mises en œuvre via la classe FaibleRreference et n'empêcheront pas le collecteur des ordures de récupérer des objets. Les références faibles conviennent aux scénarios tels que les systèmes de mise en cache et les auditeurs d'événements. Il convient de noter qu'il ne peut garantir la survie des objets et que la collecte des ordures peut être retardée.

La méthode \ _ \ _ Invoke permet aux objets d'être appelés comme des fonctions. 1. Définissez la méthode \ _ \ _ Invoquer afin que l'objet puisse être appelé. 2. Lorsque vous utilisez la syntaxe $ obj (...), PHP exécutera la méthode \ _ \ _ Invoke. 3. Convient pour des scénarios tels que la journalisation et la calculatrice, l'amélioration de la flexibilité et de la lisibilité du code.

Les fibres ont été introduites dans PHP8.1, améliorant les capacités de traitement simultanées. 1) Les fibres sont un modèle de concurrence léger similaire aux coroutines. 2) Ils permettent aux développeurs de contrôler manuellement le flux d'exécution des tâches et conviennent à la gestion des tâches à forte intensité d'E / O. 3) L'utilisation des fibres peut écrire du code plus efficace et réactif.

La communauté PHP fournit des ressources et un soutien riches pour aider les développeurs à se développer. 1) Les ressources incluent la documentation officielle, les tutoriels, les blogs et les projets open source tels que Laravel et Symfony. 2) Le support peut être obtenu via les canaux Stackoverflow, Reddit et Slack. 3) Les tendances de développement peuvent être apprises en suivant la RFC. 4) L'intégration dans la communauté peut être réalisée grâce à la participation active, à la contribution au code et au partage d'apprentissage.

PHP et Python ont chacun leurs propres avantages, et le choix doit être basé sur les exigences du projet. 1.Php convient au développement Web, avec une syntaxe simple et une efficacité d'exécution élevée. 2. Python convient à la science des données et à l'apprentissage automatique, avec une syntaxe concise et des bibliothèques riches.

Le PHP n'est pas en train de mourir, mais d'adapter et d'évoluer constamment. 1) PHP a subi plusieurs itérations de version depuis 1994 pour s'adapter aux nouvelles tendances technologiques. 2) Il est actuellement largement utilisé dans le commerce électronique, les systèmes de gestion de contenu et d'autres domaines. 3) PHP8 introduit le compilateur JIT et d'autres fonctions pour améliorer les performances et la modernisation. 4) Utilisez OPCACHE et suivez les normes PSR-12 pour optimiser les performances et la qualité du code.

L'avenir de PHP sera réalisé en s'adaptant aux nouvelles tendances technologiques et en introduisant des fonctionnalités innovantes: 1) s'adapter aux architectures de cloud computing, de conteneurisation et de microservice, en prenant en charge Docker et Kubernetes; 2) introduire des compilateurs JIT et des types d'énumération pour améliorer l'efficacité des performances et du traitement des données; 3) Optimiser en continu les performances et promouvoir les meilleures pratiques.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

DVWA
Damn Vulnerable Web App (DVWA) est une application Web PHP/MySQL très vulnérable. Ses principaux objectifs sont d'aider les professionnels de la sécurité à tester leurs compétences et leurs outils dans un environnement juridique, d'aider les développeurs Web à mieux comprendre le processus de sécurisation des applications Web et d'aider les enseignants/étudiants à enseigner/apprendre dans un environnement de classe. Application Web sécurité. L'objectif de DVWA est de mettre en pratique certaines des vulnérabilités Web les plus courantes via une interface simple et directe, avec différents degrés de difficulté. Veuillez noter que ce logiciel

MinGW - GNU minimaliste pour Windows
Ce projet est en cours de migration vers osdn.net/projects/mingw, vous pouvez continuer à nous suivre là-bas. MinGW : un port Windows natif de GNU Compiler Collection (GCC), des bibliothèques d'importation et des fichiers d'en-tête librement distribuables pour la création d'applications Windows natives ; inclut des extensions du runtime MSVC pour prendre en charge la fonctionnalité C99. Tous les logiciels MinGW peuvent fonctionner sur les plates-formes Windows 64 bits.

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

Télécharger la version Mac de l'éditeur Atom
L'éditeur open source le plus populaire

mPDF
mPDF est une bibliothèque PHP qui peut générer des fichiers PDF à partir de HTML encodé en UTF-8. L'auteur original, Ian Back, a écrit mPDF pour générer des fichiers PDF « à la volée » depuis son site Web et gérer différentes langues. Il est plus lent et produit des fichiers plus volumineux lors de l'utilisation de polices Unicode que les scripts originaux comme HTML2FPDF, mais prend en charge les styles CSS, etc. et présente de nombreuses améliorations. Prend en charge presque toutes les langues, y compris RTL (arabe et hébreu) et CJK (chinois, japonais et coréen). Prend en charge les éléments imbriqués au niveau du bloc (tels que P, DIV),