Heim  >  Artikel  >  Backend-Entwicklung  >  PHP-Kompilierung und -Installation Detaillierte Erläuterung der einzelnen Konfigurationen der PHP-Kompilierungsparameter

PHP-Kompilierung und -Installation Detaillierte Erläuterung der einzelnen Konfigurationen der PHP-Kompilierungsparameter

不言
不言Original
2018-04-03 11:19:353084Durchsuche

Dieser Artikel stellt die Kompilierung und Installation von PHP sowie die detaillierte Konfiguration jedes Kompilierungsparameters von PHP vor. Jetzt teile ich ihn mit Ihnen und kann auch als Referenz für Freunde verwendet werden, die Hilfe benötigen.

  • Grundlegende Schritte für die PHP-Kompilierung und -Installation

//首先要下载一个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

Das Obige ist PHP Kompilierung und Installation Der grundlegende Prozess der PHP-Konfigurationsparameter wird im Folgenden ausführlich vorgestellt.

Parameter, die nur für die CGI-Installation verwendet werden:
--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  //魔术头文件位置
Hinweise
Nachdem Sie --with-apxs2=/usr/local/apache/bin/apxs angegeben haben, aktivieren Sie --enable-fpm und --enable nicht -fastCGI. apxs lädt PHP im PHP-Modulmodus.
--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 muss nach dem Kompilieren der MySQL-Entwicklungsbibliothek den Pfad zu MySQL nicht angeben.

PHP-Kompilierung hat grundlegende Abhängigkeiten. Um PHP zu kompilieren, müssen Sie zuerst die XML-Erweiterung installieren, da der PHP5-Kern standardmäßig über XML-Unterstützung verfügt. Andere grundlegende Bibliotheken erfordern Folgendes: GD -> ; zlib, Png, Jpg, wenn Sie andere unterstützen müssen, müssen Sie die Erweiterungsbibliothek entsprechend der tatsächlichen Situation kompilieren. Die ttf-Bibliothek benötigt die Unterstützung der Freetype-Bibliothek.
  • --enable-magic-quotes ist ein äußerst nicht empfohlener Parameter. Wenn Sie PHP benötigen, um die zugrunde liegende Arbeit für Sie zu erledigen, ist es natürlich nicht sehr gründlich Probleme.
  • --with-openssl, erfordert die OpenSSL-Bibliothek. mysqli ist der vom MySQL-Team bereitgestellte MySQL-Treiber und verfügt über viele praktische Funktionen und typische Merkmale. Allerdings ist es nicht die beste Wahl für MySQL auf der PHP-Plattform. PDO hat sich als einfache, hochparallele und leicht zu erstellende und wiederzuverwendende Standardschnittstelle erwiesen. Bei PDO kam es jedoch auch vor 5.3 zu Speicherüberlaufproblemen. Nach 5.3 kommt es beim Lesen der LOB-Ressourcen von Oracle immer noch zu einem Speicherüberlauf, wenn der Speicher nicht eingeschränkt ist.
  • Wenn es sich im Produktmodus befindet, wird die Verwendung von Pear, Shmop, FTP usw. nicht empfohlen. Sie müssen lediglich C/C++, Java oder sogar andere Skriptsprachen verwenden. Es gibt gute und schnelle Optionen . Keine Beschränkung auf die Verwendung von PHP zur Implementierung erforderlich. Unbekannte Klassenbibliotheken und Bibliotheken, die nicht häufig verwendet werden, werden nicht empfohlen. Magic-Quote, session.auto_start, PHP-Serverinformationen, PHP-Fehlerinformationen usw. sollten so schnell wie möglich nach Abschluss der Kompilierung geschlossen werden, um die Offenlegung von Serverinformationen zu vermeiden.
  • Der Webserver-Modus, der PHP entspricht, erfordert nur eines von Module, fastcgi und fpm. Der Server ist nicht Ihr Experimentierfeld. Fastcgi kann zwischen Nginx und lighttpd wählen. Tatsächlich verwendet Nginx auch spwan-fcgi von lighttpd für die fcgi-Prozessverwaltung. fpm verwendet PHP selbst, um mehrere Prozesse zu verwalten, ähnlich einem Back-End-Proxy. Unabhängig vom Modus sollten bei der Veröffentlichung eines Produktservers eine Prozess- und Thread-Optimierung durchgeführt und ausreichend Stresstests durchgeführt werden, um die beste Kombination von Prozessnummern zu finden.

  • Wählen Sie eine PHP-OPCode-Cache-Erweiterung. Dies ist auch sehr wichtig. Unter Linux 2.6 Core und fcgi kommt es bei anderen zu erheblichen Leistungseinbußen.
  • Wenn Sie es wirklich erleben möchten, kompilieren Sie lieber mehrere PHP-Versionen, als verschiedene Erweiterungen für eine PHP-Version zu sammeln, um sie an verschiedene Umgebungen anzupassen. Das bringt Sie in ein Dilemma.


  • Erweiterungen, die separat installiert werden müssen

  • gd-Bibliothek.

  • Ming-Erweiterung.

Erweiterungen für mhash und mcrypt.

    Zu den detaillierten Optionen können neben der obigen Installationseinführung auch weitere Optionen beim Kompilieren hinzugefügt werden.
    Apache-Modul
    Syntax: --with-apache=DIR
    Beschreibung: Verwenden Sie diese Option, damit **PHP
    ** es als Apache-Modul, DIR, verwendet Zeichenfolge kann /usr/local/Apache oder ein anderes Verzeichnis sein, in dem Apache installiert ist
    Beispiel: --with-apache=/var/lib/apache
    fhttpd-Servermodul
    Syntax: --with-fhttpd=DIR
    Hinweis: Wenn Sie den fttpd-Server verwenden, können Sie diesen Befehl zum Kompilieren von PHP verwenden. Durch die Verwendung von Modulen zur Zusammenarbeit mit dem FTPD-Server kann eine bessere Effizienz erzielt werden.
    Adabas D-Datenbank
    Syntax: --with-adabas=DIR
    Beschreibung: Diese Option ist erforderlich, wenn das Datenbanksystem eine Adabas D-Datenbank ist. Einzelheiten zur Adabas D-Datenbank finden Sie unter http://www.adabas.com.
    Beispiel: --with-adabas=/usr/local/adabasd
    dBase-Datentabelle
    Syntax: --with-dbase
    Erklärung: Fügen Sie einfach diese Option hinzu, nein Bedarf Für andere Parameter oder Funktionsbibliotheken ermöglicht PHP dem System den Zugriff auf die dBase-Datentabelle.
    filePro-Datenbank
    Syntax: --with-filepro
    Beschreibung: Sie können die filePro-Datenbank lesen (schreibgeschützt), ohne den Datenbankpfad und andere Funktionsbibliotheken anzugeben.
    mSQL-Datenbank
    Syntax: --with-msql=DIR
    Beschreibung: Bietet Zugriff auf die mSQL-Datenbank. Weitere Einzelheiten finden Sie auf der mSQL-Website http://www.hughes.com.au.
    Beispiel: --with-msql=/usr/local/Hughes
    MySQL-Datenbank
    Syntax: --with-mysql=DIR
    Beschreibung: Bietet Zugriff auf die MySQL-Datenbank . Weitere Einzelheiten finden Sie auf der MySQL-Website http://www.tcx.se.
    Beispiel: --with-mysql=/usr/local/mysql
    iODBC-Datenbankgerät
    Syntax: --with-iodbc=DIR
    Beschreibung: ODBC-Datenbankgerät bereitstellen , wird für den Zugriff auf die Backend-Datenbank verwendet. Weitere Einzelheiten finden Sie auf der iODBC-Website http://www.iodbc.org.
    Beispiel: --with-iodbc=/usr/local/iodbc
    OpenLink ODBC-Datenbankgerät
    Syntax: --with-openlink=DIR
    Beschreibung: OpenLink ODBC verwenden Datenbankgerät, das für den Zugriff auf die Back-End-Datenbank verwendet wird. Weitere Einzelheiten finden Sie auf der OpenLink ODBC-Website http://www.openlinksw.com.
    Beispiel: --with-openlink=/usr/local/openlink
    Oracle-Datenbank
    Syntax: --with-oracle=DIR
    Anleitung: Oracle-Datenbank verwenden. Die Oracle-Version muss Version 7.3 oder höher sein. Sie können in Ihrem PHP-Programm auch die Umgebungsvariable ORACLE_HOME verwenden, um den Pfad zu Oracle anzugeben. Weitere Informationen zu Oracle finden Sie auf der Website von Oracle http://www.oracle.com.
    Beispiel: --with-oracle=/export/app/oracle/product/7.3.2
    PostgreSQL-Datenbank
    Syntax: --with-pgsql=DIR
    Erklärung : PostgreSQL-Datenbank verwenden. Weitere Informationen zu PostgreSQL finden Sie auf der PostgreSQL-Website http://www.postgreSQL.org oder Taiwan Mirror-Site http://postgresql.ccit.edu.tw.
    Beispiel: --with-pgsql=/usr/local/pgsql
    Solid-Datenbank
    Syntax: --with-solid=DIR
    Beschreibung: Solid-Datenbank verwenden. Weitere Informationen zu Solid finden Sie auf der Website von Solid http://www.solidtech.com.
    Beispiel: --with-solid=/usr/local/solid
    Sybase-Datenbank
    Syntax: --with-sybase=DIR
    Beschreibung: Sybase-Datenbank verwenden. Weitere Informationen zu Sybase finden Sie auf der Sybase-Website http://www.sybase.com.
    Beispiel: --with-sybase=/home/sybase
    Sybase-CT-Datenbank
    Syntax: --with-sybase-ct=DIR
    Anweisungen: Verwenden Sie Sybase- CT-Datenbank.
    Beispiel: --with-sybase-ct=/home/sybase
    Velocis-Datenbank
    Syntax: --with-velocis=DIR
    Beschreibung: Velocis-Datenbank verwenden. Weitere Informationen zur Velocis-Datenbank finden Sie auf der Raima-Website http://www.raima.com.
    Beispiel: --with-velocis=/usr/local/velocis
    Benutzerdefinierter ODBC-Datenbanktreiber
    Syntax: --with-custom-odbc=DIR
    Beschreibung: Verwendung benutzerdefinierte ODBC-Funktionsbibliothek. Natürlich müssen Sie bei Verwendung dieser Methode die Variablen CUSTOM_ODBC_LIBS und CFLAGS angeben. Wenn Sie beispielsweise Sybase **SQL
    ** Anywhere auf einem QNX-Computer verwenden, müssen Sie möglicherweise die Systemumgebungsvariablen CFLAGS=-DODBC_QNX, LDFLAGS=-lunix und CUSTOM_ODBC_LIBS="-ldblib -lodbc" konfigurieren und hinzufügen -- in der PHP-Konfiguration.
    Beispiel: --with-custom-odbc=/usr/local/odbc
    Verwenden Sie keinen ODBC-Datenbanktreiber
    Syntax: --disable-unified-odbc
    Hinweis: Durch die Verwendung dieser Option werden alle ODBC-Datenbanktreiber deaktiviert. Für diese Option muss kein Pfad angegeben werden. Die von dieser Option betroffenen Optionen sind --with-iodbc, --with-solid, --with-adabas, --with-velocis und --with-custom-odbc.
    LDAP Directory Protocol
    Syntax: --with-ldap=DIR
    Erklärung: Diese Option muss aktiviert sein, wenn Sie das Directory Protocol (Lightweight Directory Access Protocol, LDAP) verwenden möchten ). Einzelheiten zu LDAP finden Sie in den RFC-Dokumenten RFC1777 und RFC1778.
    Beispiel: --with-ldap=/usr/local/ldap.
    mcrypt-Kodierungsfunktionsbibliothek
    Syntax: --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

    转自:https://www.jianshu.com/p/0a79847c8151

    相关推荐:

    Centos 下PHP编译安装fileinfo扩展

    PHP编译安装时常见错误解决办法_PHP教程


    Das obige ist der detaillierte Inhalt vonPHP-Kompilierung und -Installation Detaillierte Erläuterung der einzelnen Konfigurationen der PHP-Kompilierungsparameter. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

    Stellungnahme:
    Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn