Maison  >  Article  >  développement back-end  >  Explication détaillée du processus de compilation et d'installation PHP et configuration de chaque paramètre de compilation

Explication détaillée du processus de compilation et d'installation PHP et configuration de chaque paramètre de compilation

零到壹度
零到壹度original
2018-04-03 17:17:584149parcourir

Cet article présente principalement le processus de compilation et d'installation de PHP et l'explication détaillée de chaque configuration des paramètres de compilation. L'éditeur pense qu'il est plutôt bon, je vais donc le partager avec vous maintenant et le donner comme référence. Suivons l'éditeur pour y jeter un œil

  • Étapes de base pour la compilation et l'installation de php

//首先要下载一个php的安装包,例如:php-5.6.25.tar.gz,tar zxvf php-5.6.25.tar.gz   
// 解压php安装包,得到一个php-5.6.25的文件夹
cd php-5.6.25  
./configure           //对php的安装进行配置,后面要加配置选项

# make && make install 
//编译安装完成之后,需要从解压后的文件夹中把php.ini-development 
//或是 php.ini-production 重命名成php.ini 复制到php安装文件中的相应位置,
//可在phpinfo中查看 相应位置.
//  把/usr/local/php/etc/php-fpm.conf.default  复制到当前文件夹下,保存未php-fpm.conf

Ce qui précède est pour php compilation et installation Processus de base, ce qui suit est une introduction détaillée aux paramètres de configuration de php 🎜>Paramètres utilisés uniquement pour l'installation CGI :


  • <.>Notes
--prefix=/usr/local/php                      //指定 php 安装目录 
--with-apxs2=/usr/local/apache/bin/apxs      //整合apache,
                        //apxs功能是使用mod_so中的LoadModule指令,
                       //加载指定模块到 apache,要求 apache 要打开SO模块
--with-config-file-path=/usr/local/php/etc    //指定php.ini位置
--with-MySQL=/usr/local/mysql                 //mysql安装目录,对mysql的支持
--with-mysqli=/usr/local/mysql/bin/mysql_config                
                      //mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务,
                      //而且还可以使访问数据库工作变得更加稳
--enable-safe-mode    //打开安全模式 
--enable-ftp          //打开ftp的支持 
--enable-zip          //打开对zip的支持
--with-bz2            //打开对bz2文件的支持 
--with-jpeg-dir       //打开对jpeg图片的支持
--with-png-dir        //打开对png图片的支持 
--with-freetype-dir   //打开对freetype字体库的支持 
--without-iconv       //关闭iconv函数,各种字符集间的转换 
--with-libXML-dir     //打开libxml2库的支持 
--with-XMLrpc         //打开xml-rpc的c语言 
--with-zlib-dir       //打开zlib库的支持 
--with-gd             //打开gd库的支持 
--enable-gd-native-ttf //支持TrueType字符串函数库 
--with-curl            //打开curl浏览工具的支持 
--with-curlwrappers    //运用curl工具打开url流 
--with-ttf             //打开freetype1.*的支持,可以不加了 
--with-xsl             //打开XSLT 文件支持,扩展了libXML2库 ,需要libxslt软件 
--with-gettext         //打开gnu 的gettext 支持,编码库用到 
--with-pear            //打开pear命令的支持,PHP扩展用的 
--enable-calendar      //打开日历扩展功能 --enable-mbstring      //多字节,字符串的支持 
--enable-bcmath        //打开图片大小调整,用到zabbix监控的时候用到了这个模块
--enable-sockets       //打开 sockets 支持
--enable-exif          //图片的元数据支持 
--enable-magic-quotes  //魔术引用的支持 
--disable-rpath        //关闭额外的运行库文件 
--disable-debug        //关闭调试模式
 --with-mime-magic=/usr/share/file/magic.mime  //魔术头文件位置
  • Après avoir spécifié --with-apxs2=/usr/local/apache/bin/apxs, n'activez pas --enable-fpm et - -enable-fastCGI. apxs charge PHP en mode module php.
--enable-fpm                 //打上PHP-fpm 补丁后才有这个参数,CGI方式安装的启动程序
--enable-fastCGI             //支持fastcgi方式启动PHP
--enable-force-CGI-redirect  //重定向方式启动PHP
--with-ncurses         //支持ncurses 屏幕绘制以及基于文本终端的图形互动功能的动态库
--enable-pcntl         //freeTDS需要用到的,可能是链接mssql 才用到
--with-mcrypt          //mcrypt算法的扩展
--with-mhash           //mhash算法的扩展

//以上函数库需要安装

--with-gmp                     //应该是支持一种规范
--enable-inline-optimization   //优化线程
--with-openssl                 //openssl的支持,加密传输时用到的
--enable-dbase                 //建立DBA 作为共享模块
--with-pcre-dir=/usr/local/bin/pcre-config       //perl的正则库案安装位置--disable-dmalloc
--with-gdbm            //dba的gdbm支持--enable-sigchild
--enable-sysvsem
--enable-sysvshm
--enable-zend-multibyte  //支持zend的多字节--enable-mbregex
--enable-wddx
--enable-shmop
--enable-soap

Mysql n'a pas besoin de spécifier le chemin d'accès à mysql après avoir compilé la bibliothèque de développement Mysql.
  • La compilation PHP a des dépendances de base. Pour compiler PHP, vous devez d'abord installer l'extension XML, car le noyau php5 a le support XML activé par défaut. Les autres bibliothèques de base nécessitent les éléments suivants : GD -> ; zlib, Png, Jpg, si vous avez besoin d'en prendre en charge d'autres, vous devez toujours compiler la bibliothèque d'extension en fonction de la situation réelle. La bibliothèque ttf a besoin du support de la bibliothèque freetype.
  • --enable-magic-quotes est un paramètre extrêmement déconseillé. Bien sûr, si vous avez besoin de PHP pour faire le travail sous-jacent à votre place, en fait, ce n'est pas une solution très approfondie. le problème.

  • --with-openssl, nécessite la bibliothèque openssl. mysqli est le pilote MySQL fourni par l'équipe MySQL et possède de nombreuses fonctions pratiques et caractéristiques typiques. Cependant, ce n'est pas le meilleur choix pour MySQL sur la plate-forme PHP. Il s'est avéré être une interface standard simple, à haute concurrence et facile à créer et à recycler. Cependant, PDO rencontrait également des problèmes de dépassement de mémoire avant la version 5.3. Après la version 5.3, lors de la lecture des ressources LOB d'Oracle, si la mémoire n'est pas restreinte, un dépassement de mémoire se produira toujours.

    S'il est en mode produit, il n'est pas recommandé d'utiliser pear, shmop, ftp, etc. Ce qu'ils doivent faire, c'est utiliser C/C++, Java ou même d'autres langages de script. Il existe des options bonnes et rapides. . Pas besoin de se limiter à l'utilisation de PHP pour l'implémentation. Les bibliothèques de classes inconnues et les bibliothèques qui ne sont pas couramment utilisées ne sont pas recommandées. Magic-quote, session.auto_start, les informations sur le serveur PHP, les informations sur les erreurs PHP, etc. doivent être fermés dès que possible une fois la compilation terminée pour éviter d'exposer les informations sur le serveur.

  • Le mode Serveur Web correspondant à PHP ne nécessite qu'un seul module, fastcgi et fpm. Le serveur n'est pas votre domaine expérimental. Fastcgi peut choisir Nginx et lighttpd. En fait, Nginx utilise également spwan-fcgi de lighttpd pour la gestion des processus fcgi. fpm utilise PHP lui-même pour gérer plusieurs processus, un peu similaire à un proxy back-end. Quel que soit le mode, lors de la sortie d'un serveur de produit, un réglage des processus et des threads doit être effectué, et suffisamment de tests de résistance doivent être effectués pour trouver la meilleure combinaison de numéros de processus.
  • Choisissez une extension de cache PHP OPCode. Ceci est également très important sous Linux 2.6 core et fcgi, xcache a une bonne expérience pratique. D'autres subiront une sérieuse dégradation des performances après l'augmentation du nombre de concurrence.

  • Si vous voulez vraiment en faire l'expérience, vous préférez compiler plusieurs versions supplémentaires de PHP plutôt que de collecter diverses extensions pour une version de PHP afin de l'adapter à différents environnements. Cela vous mettra dans un dilemme.

  • Extensions qui doivent être installées séparément

    bibliothèque gd.


extension ming.
  • Extensions pour mhash et mcrypt.

Concernant les options détaillées, en plus de l'introduction à l'installation ci-dessus, d'autres options peuvent également être ajoutées lors de la compilation.
module apache
Syntaxe : --with-apache=DIR
Description : Utilisez cette option pour que **PHP
** l'utilise comme module apache, DIR Le la chaîne peut être /usr/local/apache ou un autre répertoire dans lequel apache est installé
Exemple : --with-apache=/var/lib/apache
module serveur fhttpd
Syntaxe : --with-fhttpd=DIR
Remarque : si vous utilisez le serveur fttpd, vous pouvez utiliser cette commande pour compiler PHP. L'utilisation de modules pour coopérer avec le serveur fttpd peut obtenir une meilleure efficacité.
Base de données Adabas D
Syntaxe : --with-adabas=DIR
Description : Cette option est requise lorsque le système de base de données est une base de données Adabas D. Pour plus de détails sur la base de données Adabas D, veuillez vous référer à http://www.adabas.com.
Exemple : --with-adabas=/usr/local/adabasd
Table de données dBase
Syntaxe : --with-dbase
Explication : Ajoutez simplement cette option, non besoin Pour d'autres paramètres ou bibliothèques de fonctions, PHP permettra au système d'accéder à la table de données dBase.
base de données filePro
Syntaxe : --with-filepro
Description : Vous pouvez lire la base de données filePro (lecture seule) sans spécifier le chemin de la base de données et d'autres bibliothèques de fonctions.
Base de données mSQL
Syntaxe : --with-msql=DIR
Description : Fournit un accès à la base de données mSQL. Pour plus de détails, veuillez vous référer au site Web mSQL http://www.hughes.com.au.
Exemple : --with-msql=/usr/local/Hughes
Base de données MySQL
Syntaxe : --with-mysql=DIR
Description : Fournit un accès à la base de données MySQL . Pour plus de détails, veuillez vous référer au site Web MySQL http://www.tcx.se.
Exemple : --with-mysql=/usr/local/mysql
Périphérique de base de données iODBC
Syntaxe : --with-iodbc=DIR
Description : Fournir un périphérique de base de données ODBC , utilisé pour accéder à la base de données backend. Pour plus de détails, veuillez vous référer au site Web iODBC http://www.iodbc.org.
Exemple : --with-iodbc=/usr/local/iodbc
Périphérique de base de données OpenLink ODBC
Syntaxe : --with-openlink=DIR
Description : Utiliser OpenLink ODBC Périphérique de base de données, utilisé pour accéder à la base de données principale. Pour plus de détails, veuillez consulter le site Web OpenLink ODBC http://www.openlinksw.com.
Exemple : --with-openlink=/usr/local/openlink
Base de données Oracle
Syntaxe : --with-oracle=DIR
Instructions : Utilisez la base de données Oracle. La version d'Oracle doit être la version 7.3 ou supérieure. Vous pouvez également utiliser la variable d'environnement ORACLE_HOME dans votre programme PHP pour spécifier le chemin d'accès à Oracle. Pour plus d'informations sur Oracle, veuillez consulter le site Web d'Oracle http://www.oracle.com.
Exemple : --with-oracle=/export/app/oracle/product/7.3.2
Base de données PostgreSQL
Syntaxe : --with-pgsql=DIR
Explication : Utilisez la base de données PostgreSQL. Pour plus d'informations sur PostgreSQL, veuillez consulter le site Web de PostgreSQL http://www.postgreSQL.org ou site Taiwan Mirror http://postgresql.ccit.edu.tw.
Exemple : --with-pgsql=/usr/local/pgsql
Base de données Solid
Syntaxe : --with-solid=DIR
Description : Utilisez la base de données Solid. Pour plus d’informations sur Solid, veuillez consulter le site Web de Solid. http://www.solidtech.com.
Exemple : --with-solid=/usr/local/solid
Base de données Sybase
Syntaxe : --with-sybase=DIR
Description : Utiliser la base de données Sybase. Pour plus d'informations sur Sybase, veuillez consulter le site Web de Sybase http://www.sybase.com.
Exemple : --with-sybase=/home/sybase
Base de données Sybase-CT
Syntaxe : --with-sybase-ct=DIR
Instructions : Utiliser Sybase- Base de données CT.
Exemple : --with-sybase-ct=/home/sybase
Base de données Velocis
Syntaxe : --with-velocis=DIR
Description : Utiliser la base de données Velocis. Pour plus d'informations sur la base de données Velocis, veuillez vous référer au site Web de Raima http://www.raima.com.
Exemple : --with-velocis=/usr/local/velocis
Pilote de base de données ODBC personnalisé
Syntaxe : --with-custom-odbc=DIR
Description : Utilisation bibliothèque de fonctions ODBC personnalisée. Bien entendu, vous devez spécifier les variables CUSTOM_ODBC_LIBS et CFLAGS lors de l'utilisation de cette méthode. Par exemple, lorsque vous utilisez Sybase **SQL
** Anywhere sur une machine QNX, vous devrez peut-être configurer les variables d'environnement système CFLAGS=-DODBC_QNX, LDFLAGS=-lunix et CUSTOM_ODBC_LIBS="-ldblib -lodbc", et ajouter -- dans la configuration PHP. with-custom-odbc=/usr/lib/sqlany50
Exemple : --with-custom-odbc=/usr/local/odbc
Ne pas utiliser le pilote de base de données ODBC.
Syntaxe : --disable-unified-odbc
Remarque : L'utilisation de cette option désactivera tous les pilotes de base de données ODBC. Cette option n'a pas besoin de spécifier de chemin et les options affectées par cette option sont --with-iodbc, --with-solid, --with-adabas, --with-velocis et --with-custom-odbc.
Protocole d'annuaire LDAP
Syntaxe : --with-ldap=DIR
Explication : Cette option doit être activée si vous souhaitez utiliser le protocole d'annuaire (Lightweight Directory Access Protocol, LDAP ). Pour plus de détails sur LDAP, veuillez vous référer aux documents RFC RFC1777 et RFC1778.
Exemple : --with-ldap=/usr/local/ldap.
Bibliothèque de fonctions d'encodage mcrypt
Syntaxe : --with-mcrypt=DIR
说明: 当安装了 mcrypt 函数库后,可在编译 PHP 时加入本选项,让程序可以使用编解码功能。
范例: --with-mcrypt=/usr/local/include
Sys V 信号
语法: --enable-sysvsem
说明: 要使用 SysV 的信号 (semaphores) 机制,则要打开本选项。
XML 支持
语法: --with-xml
说明: 打开本选项可以支持 James Clark's 写的 XML 解析程序库。
维护模式
语法: --enable-maintainer-mode
说明: 本选项一般不会打开,除非是 PHP 开发人员比较有用。
正则表达式程序库
语法: --with-system-regex
说明: 若您需要额外的正则表达式功能,可以加入本选项。
PHP 配置文件
语法: --with-config-file-path=DIR
说明: 用来指定 php3.ini 或 php4.ini 的路径,供 PHP 初始化时使用。
范例: --with-config-file-path=/usr/local/lib
PHP 执行路径
语法: --with-exec-dir=DIR
说明: 有时为了系统的安全性考虑,会指定 PHP 程序一定要在哪个目录执行。
范例: --with-exec-dir=/usr/local/bin
调试模式
语法: --enable-debug
说明: 本选项一般不会使用,除非在开发 PHP 程序时比较有用。它可以显示额外的错误信息。
安全模式
语法: --enable-safe-mode
说明: 默认值是打开的,可以对系统安全提供比较多的保护。
变量追踪
语法: --enable-track-vars
说明: 让 PHP 能 追踪 HTTP_GET_VARS、HTTP_POST_VARS 及 HTTP_COOKIE_VARS 三个变量,一般是打开的。
自动加引入字符
语法: --enable-magic-quotes
说明: 可让程序在执行时自动加入反斜线的引入字符。
打开调试器
语法: --enable-debugger
说明: 打开内建的 PHP 调试器。目前本功能还在实验阶段,尚未成熟。
取消路径 (discard path)
语法: --enable-discard-path
说明: 打开这个选项,**用户
**就不能透过浏览器读取 .htaccess 等和系统安全相关的文件。
高精确度数学函数
语法: --enable-bcmath
说明: 打开高精确度函数。必须要先安装本函数库,本选项方有效。
强制 CGI 重定向
语法: --enable-force-cgi-redirect
范 例: 若使用 CGI VERSION 模式来执行 PHP 的设,打开本选项会增加安全性。例如用户读 http://my.host/cgi-bin/php/secret/doc.html 遇到比较了解 PHP 系统的黑客级用户可能会自已输入以下网址 http://my.host/secret/doc.html 来读取相关信息。若 PHP 和 Apache 编译在一起,让 PHP 变成 Apache 的一部份,则不需要加入本选项。
不使用短的标记
语法: --disable-short-tags
说明: 配置本选项后,PHP 的程序就不能使用短的标记,一定要用的长标记。
引入远端档宁
语法: --enable-url-includes
说明: 配置本选项可让 PHP 程序可以引入 (include) 远端的 HTTP 或 FTP 服务器中的文件。
关闭语法效果
语法: --disable-syntax-hl
说明: 使用本选项会关闭 PHP 语法的彩色效果。
函数库路径
语法: CPPFLAGS=-IDIR 及 LDFLAGS=-LDIR
说明: 若 PHP 在安全或编译所需的函数库在值得的路径,需要加入本选项,LDFLAGS 表示函数库的路径,CPPFLAGS 表示标头文件的路径。
范例: LDFLAGS=-L/my/lib/dir CPPFLAGS=-I/my/include/dir ./configure


  • 配置项代码

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php  
--enable-mysqlnd --enable-opcache --enable-sockets --enable-sysvmsg 
--enable-sysvsem  --enable-sysvshm --enable-shmop --enable-zip 
--enable-ftp --enable-soap --enable-xml --enable-mbstring --disable-rpath 
--disable-debug --disable-fileinfo --with-mysql=mysqlnd 
--with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pcre-regex 
--with-iconv --with-zlib --with-gd --with-openssl --with-xmlrpc 
--with-curl --with-imap-ssl --with-freetype-dir --enable-fpm 
--enable-pcntl --with-mcrypt --with-mhash

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn