Maison > Article > développement back-end > Le processus le plus détaillé d'installation de php sur Linux
Cet article partage principalement avec vous le processus le plus détaillé d'installation de php sur Linux. J'ai déjà écrit la configuration d'installation de nginx, suivie de l'installation de php et de l'installation de mysql. Cependant, le temps est limité, et cela. C'est trop long pour le mettre dans un seul article, donc c'est tout. C'est écrit séparément. Une fois PHP installé, c'est la configuration de MySQL.
Un : Vérifiez si php est installé
1) vérification de l'installation miam : miam liste installée |grep php
2) vérification de l'installation rpm : rpm -qa | grep php
3) Il existe de nombreuses façons de demander si vous le compilez et l'installez vous-même, comme trouver le programme exécutable de php ou vérifier le processus ps -ef grep php et d'autres méthodes.
Deux : Vérifiez si php n'est pas installé, vous pouvez préparer le logiciel de pré-installation avant l'installation de php. Vous pouvez l'installer avec yum install xxxx. Bien sûr, vous pouvez également le compiler et l'installer vous-même si c'est le cas. pas gênant. Je n'entrerai pas dans les détails ici.
1) zlib et zlib-devel zlib fournit une bibliothèque de fonctions de compression de données et est également le logiciel frontal de nginx Puisque zlib doit compiler l'extension zlib de php, le fichier d'en-tête zlib.h sera. utilisé lors de la compilation. Les fichiers d'en-tête sont dans zlib-devel, donc zlib-devel doit également être téléchargé.
2) libxml2 et libxml-devel libxml2 est une bibliothèque XML en langage C qui peut simplement effectuer diverses opérations sur XML, prend en charge les requêtes XPath et prend en charge partiellement la conversion XSLT et d'autres fonctions.
3) libxslt et libxslt-devel Si libxslt-devel n'est pas installé, il vous indiquera que le fichier xslt.config est introuvable. xslt est une extension permettant de convertir du XML vers d'autres formats.
3) bibliothèque cryptographique de couche de socket sécurisée openssl et openssl-devel
4) jpeg Bibliothèque jpeg d'IJG, bibliothèque gd de php requise.
5) libpng est une bibliothèque multiplateforme de niveau relativement bas écrite en langage C pour lire et écrire des fichiers png. Elle peut aider à lire et à écrire facilement chaque ligne de pixels dans les fichiers png. Elle est requise par PHP. bibliothèque gd.
6) freetype et freetype-devel sont des moteurs de polices gratuits, open source et portables qui fournissent une interface unifiée pour accéder à plusieurs formats de polices. Ces deux logiciels sont dépendants de la bibliothèque gd, donc s'ils ne sont pas installés. , ou La version est trop basse. Si vous définissez la bibliothèque gd pour qu'elle soit installée lors de l'installation de PHP, une erreur sera signalée. De plus, si -devel n'est pas installé, une erreur sera signalée car le fichier ft2build.h sera signalé. manquant lors de la compilation de l'extension. L'erreur est signalée comme indiqué ci-dessous.
7) gd gd est une bibliothèque d'extensions pour PHP pour traiter les graphiques
8) curl, car la version dans mon miam est trop basse , Je l'ai donc compilé et installé moi-même. La méthode d'installation est très simple, c'est-à-dire que wget curl télécharge l'adresse et décompresse le tar, crée un nouveau dossier /usr/local/curl, puis entre dans le dossier décompressé curl à configurer. /configure --prefix=/ usr/local/curl suffit, et enfin make et make install sont installés.
Remarque : xxx-devel est le package de développement du logiciel xxx, comprenant des fichiers d'en-tête, des bibliothèques statiques et même du code source.
Trois : téléchargement et installation de PHP
1) Utilisez wget pour télécharger le fichier tar.gz de PHP : wget http://br2.php.net/get/php-7.2.2 .tar.gz
2) Décompressez le fichier tar.gz : tar zxvf php-7.2.2.tar.gz
3) Créez un nouveau dossier dans lequel php sera installé ultérieurement : mkdir /usr/local/ php, puis entrez dans le dossier du package d'installation php décompressé et configurez configure :
./configure --prefix=/usr/local/php --with-curl=/usr/local/ curl --with-freetype-dir --with-gd --with-gettext --with-iconv-dir --with-kerberos --with-libdir=lib64 --with-libxml-dir --with-mysqli - -with- openssl --with-pcre-regex --with-pdo-mysql --with-pdo-sqlite --with-pear --with-png-dir --with-xmlrpc --with-xsl --with -zlib - -enable-fpm --enable-bcmath --enable-libxml --enable-inline-optimization --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop - -enable- soap --enable-sockets --enable-sysvsem --enable-xml --enable-zip
Remarque :
--prefix=répertoire d'installation
--with-use package name [= package directory]
--enable-functions qui doivent être activées
Quatre : configurer les fichiers liés à PHP
1 ) Configurez php.ini , c'est le fichier de configuration de php : cp /home/myload/php-7.2.2/php.ini-development /usr/local/php/lib/php.ini
2 ) Configurez php-fpm.conf, voici le fichier de configuration php-fpm : cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
3) Configuration www.conf, le fichier de configuration utilisateur : cp etc/php-fpm.d/www.conf.default etc/php-fpm.d/www.conf
4) Copier le fichier de démarrage php-fpm dans Une copie du dossier init.d est pratique pour démarrer php : cp -R sbin/php-fpm /etc/init.d/php-fpm
Cinq : Démarrez php et confirmez si l'installation a réussi
Exécutez la commande /etc/init.d/php-fpm
Vérifiez s'il est démarré : ps -ef |grep php Vous pouvez voir quels processus php a démarré
Six : Installation réussie Après avoir configuré nginx pour prendre en charge php
1) Modifiez le fichier php.ini, vim /usr/local/php/lib/php.ini
En recherchant la configuration cgi.fix_pathinfo=1, en supprimant les commentaires et en la remplaçant par cgi.fix_pathinfo=0, cela n'est pas lié au fait que nginx prend en charge la configuration php, mais à une vulnérabilité de sécurité spécifique à php sous nginx. is La valeur est 1. L'utilisateur peut télécharger le cheval de Troie en téléchargeant une image, puis accéder à l'adresse de l'image via l'URL et ajouter /xxx.php après l'adresse pour exécuter l'image en tant que fichier php. Il s'agit d'un problème uniquement. existe dans nginx. , apache et iis n'ont pas ce problème
Pour les problèmes ci-dessus, vous pouvez vous référer directement au blog de Brother Niao, qui est écrit assez en détail : http://www.laruence.com/ 2010/05/20/1495.html
2) Configurer des groupes et des utilisateurs spécifiques au Web
Ajouter un groupe d'utilisateurs www : groupadd www
Ajouter un utilisateur www sous le groupe d'utilisateurs www : useradd -g www www
3) Changez la configuration de php-fpm.conf
Supprimez le commentaire user=nobody et remplacez personne par l'utilisateur www configuré ci-dessus
Supprimez le commentaire group=nobody et remplacez personne par le groupe d'utilisateurs www configuré ci-dessus
Enfin, vérifiez si la dernière valeur d'inclusion de php-fpm.conf est la bonne adresse du répertoire www.conf. Si elle est incorrecte, remplacez-le par l'adresse de répertoire correcte.
4) Modifiez la configuration www.conf
Supprimez le commentaire user=nobody et remplacez personne par l'utilisateur www configuré ci-dessus
Supprimez le commentaire group=nobody , et remplacez personne par le groupe d'utilisateurs www configuré ci-dessus
5) Modifiez le fichier nginx.conf /etc/local/nginx/conf/nginx.conf
et supprimez le commentaire #user=nobody Et remplacez-le par user=www
Supprimez le commentaire de l'emplacement ~ .php${...} et remplacez /scripts dans fastcgi_param par $document_root
Enfin, ajoutez index.php après l'index par défaut dans location/{...} pour vous assurer que index.php est utilisé comme page d'accueil par défaut
6) Redémarrez php-fpm et nginx. Vous pouvez tuer tous les php-fpm puis /etc/init.d/php-pfm pour redémarrer /usr/local/nginx/sbin/nginx -s stop peut arrêter nginx. puis exécutez /usr/local/nginx/sbin/php pour redémarrer.
7) Créez un fichier php dans le répertoire html, le contenu est phpinfo();, puis accédez à l'adresse du fichier dans le navigateur pour voir si les informations relatives à php correctes sont obtenues. Si elles s'affichent correctement. , la configuration est réussie.
Sept : Coopérer avec Apache pour prendre en charge php, cela sera ajouté plus tard, à suivre...
Recommandations associées :
Enregistrement d'erreur php d'installation Linux
Module php d'installation Linux --with-mysql --with-mysqli Avez-vous besoin d'installer MySQL ?
Installation Linux php et memcache enregistrement de processus
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!