이 기사에서는 PHP의 컴파일 및 설치 방법과 PHP의 각 컴파일 매개변수에 대한 세부 구성을 소개하고 있으며, 도움이 필요한 친구들을 위한 참고 자료로도 사용할 수 있습니다.
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
위는 PHP 컴파일 및 설치의 기본 프로세스입니다. 다음은 php의 구성 매개변수에 대한 자세한 소개입니다.
php
--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 //魔术头文件位置각 매개변수의 세부 구성
CGI 설치에만 사용되는 매개변수:
--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
Notes
--with-apxs2=/usr/local/apache 지정 후 /bin/apxs, --enable-fpm 및 --enable-fastCGI를 활성화하지 마십시오. apxs는 PHP 모듈 모드에서 PHP를 로드합니다.
Mysql Mysql 개발 라이브러리를 컴파일한 후 mysql의 경로를 지정할 필요가 없습니다.
PHP 컴파일에는 기본 종속성이 있습니다. php5 코어에는 기본적으로 XML 지원이 켜져 있기 때문에 먼저 XML 확장을 설치해야 합니다. GD -> Jpg, 다른 것을 지원해야 하는 경우에도 실제 상황에 따라 확장 라이브러리를 컴파일해야 합니다. ttf 라이브러리에는 freetype 라이브러리의 지원이 필요합니다.
--enable-magic-quotes는 매우 권장되지 않는 매개변수입니다. 물론, 기본 작업을 수행하기 위해 PHP가 필요한 경우에는 실제로 문제를 아주 철저하게 해결하지는 않습니다.
--openssl을 사용하려면 openssl 라이브러리가 필요합니다. mysqli는 MySQL 팀에서 제공하는 MySQL 드라이버로 많은 실용적인 기능과 대표적인 특징을 가지고 있습니다. 그러나 PDO는 PHP 플랫폼에서 MySQL을 위한 최선의 선택이 아니며, 간단하고 동시성이 높으며 생성 및 재활용이 쉬운 표준 인터페이스로 입증되었습니다. 그러나 PDO는 5.3 이전에도 메모리 오버플로 문제를 겪었습니다. 5.3 이후에는 Oracle의 LOB 리소스를 읽을 때 메모리가 제한되지 않으면 메모리가 계속 오버플로됩니다.
제품 모드인 경우 pear, shmop, ftp 등을 사용하는 것은 권장되지 않습니다. 해야 할 일은 C/C++, Java 또는 기타 스크립팅 언어를 사용하는 것뿐입니다. 좋고 빠른 옵션이 없습니다. 이를 구현하려면 PHP를 사용하도록 제한해야 합니다. 익숙하지 않은 클래스 라이브러리와 일반적으로 사용되지 않는 라이브러리는 권장하지 않습니다. Magic-quote, session.auto_start, PHP 서버 정보, PHP 오류 정보 등은 컴파일이 완료된 후 최대한 빨리 닫아야 서버 정보가 노출되지 않습니다.
PHP에 해당하는 웹 서버 모드에는 모듈, fastcgi, fpm 중 하나만 필요합니다. 서버는 실험적인 분야가 아닙니다. Fastcgi는 Nginx와 lighttpd를 선택할 수 있습니다. 실제로 Nginx는 fcgi 프로세스 관리를 위해 lighttpd의 spwan-fcgi도 사용합니다. fpm은 PHP 자체를 사용하여 백엔드 프록시와 다소 유사한 여러 프로세스를 관리합니다. 모드에 관계없이 제품 서버를 출시할 때 프로세스 및 스레드 튜닝이 이루어져야 하며, 충분한 스트레스 테스트를 거쳐 최적의 프로세스 번호 조합을 찾아야 합니다.
PHP OPCode 캐시 확장을 선택하는 것도 매우 중요합니다. Linux 2.6 코어 및 fcgi에서 xcache는 동시성 수가 증가하면 심각한 성능 저하를 겪게 됩니다.
정말로 경험하고 싶다면 다양한 환경에 적응하기 위해 한 버전의 PHP에 대한 다양한 확장 기능을 수집하는 것보다 여러 버전의 PHP를 더 컴파일하는 것이 좋습니다.
별도 설치가 필요한 확장 프로그램
gd 라이브러리.
ming 확장 프로그램.
mhash 및 mcrypt용 확장 프로그램입니다.
자세한 옵션은 위의 설치 소개 외에 컴파일 과정에서 다른 옵션도 추가할 수 있습니다.
apache 모듈
구문: --with-apache=DIR
설명: **PHP
**를 아파치 모듈로 사용하려면 이 옵션을 사용하세요. DIR 문자열은 /usr/local/apache 또는 기타일 수 있습니다. Apache가 설치된 디렉터리
예: --with-apache=/var/lib/apache
fhttpd 서버 모듈
구문: --with-fhttpd=DIR
설명: fttpd 서버를 사용하는 경우 다음 명령을 사용할 수 있습니다. PHP를 컴파일합니다. fttpd 서버와 협력하기 위해 모듈을 사용하면 더 나은 효율성을 얻을 수 있습니다.
Adabas D 데이터베이스
구문: --with-adabas=DIR
설명: 이 옵션은 데이터베이스 시스템이 Adabas D 데이터베이스인 경우 추가해야 합니다. Adabas D 데이터베이스에 대한 자세한 내용은 다음을 참조하세요.
http://www.adabas.com.
예: --with-adabas=/usr/local/adabasd
dBase 데이터 테이블
구문: --with-dbase
설명: 이 옵션이 추가되는 한 다른 매개변수나 함수 라이브러리 없이 PHP는 시스템 dBase 데이터 테이블에 접근하는 기능을 가지고 있습니다.
filePro 데이터베이스
구문: --with-filepro
설명: 데이터베이스 경로 및 기타 함수 라이브러리를 지정하지 않고도 filePro 데이터베이스(읽기 전용)를 읽을 수 있습니다.
mSQL 데이터베이스
구문: --with-msql=DIR
설명: mSQL 데이터베이스에 대한 액세스를 제공합니다. 자세한 내용은 mSQL 홈페이지를 참고하세요.
http://www.hughes.com.au.
예: --with-msql=/usr/local/Hughes
MySQL 데이터베이스
구문: --with-mysql=DIR
설명: MySQL 데이터베이스에 대한 액세스를 제공합니다. 자세한 사항은 MySQL 홈페이지를 참고해주세요
http://www.tcx.se.
예: --with-mysql=/usr/local/mysql
iODBC 데이터베이스 장치
구문: --with-iodbc=DIR
설명: 백엔드 데이터베이스에 액세스하기 위한 ODBC 데이터베이스 장치를 제공합니다. 자세한 내용은 iODBC 홈페이지를 참고하세요.
http://www.iodbc.org.
예: --with-iodbc=/usr/local/iodbc
OpenLink ODBC 데이터베이스 설치
구문: --with-openlink=DIR
설명: OpenLink ODBC 데이터베이스 설치를 사용하여 백엔드 데이터베이스에 액세스합니다. 자세한 내용은 OpenLink ODBC 웹사이트를 참조하세요.
http://www.openlinksw.com.
예: --with-openlink=/usr/local/openlink
Oracle 데이터베이스
구문: --with-oracle=DIR
지침: Oracle 데이터베이스를 사용하세요. Oracle 버전은 버전 7.3 이상이어야 합니다. PHP 프로그램에서 환경 변수 ORACLE_HOME을 사용하여 Oracle에 대한 경로를 지정할 수도 있습니다. 오라클에 대한 자세한 내용은 오라클 홈페이지를 참고하세요.
http://www.oracle.com.
예: --with-oracle=/export/app/oracle/product/7.3.2
PostgreSQL 데이터베이스
구문: --with-pgsql=DIR
지침: PostgreSQL 데이터베이스를 사용하세요. PostgreSQL에 대한 자세한 내용은 PostgreSQL 웹사이트를 참조하세요.
http://www.postgreSQL.org 또는 대만 미러 사이트
http://postgresql.ccit.edu.tw.
예: --with-pgsql=/usr/local/pgsql
Solid 데이터베이스
구문: --with-solid=DIR
지침: Solid 데이터베이스를 사용하세요. Solid에 대한 자세한 내용은 Solid 홈페이지를 참고하세요.
http://www.solidtech.com.
예: --with-solid=/usr/local/solid
Sybase 데이터베이스
구문: --with-sybase=DIR
설명: Sybase 데이터베이스를 사용합니다. Sybase에 대한 자세한 내용은 Sybase 웹사이트를 참조하세요.
http://www.sybase.com.
예: --with-sybase=/home/sybase
Sybase-CT 데이터베이스
구문: --with-sybase-ct=DIR
설명: Sybase-CT 데이터베이스를 사용합니다.
예: --with-sybase-ct=/home/sybase
Velocis 데이터베이스
구문: --with-velocis=DIR
지침: Velocis 데이터베이스를 사용하세요. Velocis 데이터베이스에 대한 자세한 내용은 Raima 웹사이트를 참조하세요.
http://www.raima.com.
예: --with-velocis=/usr/local/velocis
사용자 정의된 ODBC 데이터베이스 드라이버
구문: --with-custom-odbc=DIR
설명: 사용자 정의된 ODBC 함수 라이브러리를 사용합니다. 물론 이 방법을 사용할 때는 CUSTOM_ODBC_LIBS 및 CFLAGS 변수를 지정해야 합니다. 예를 들어 QNX 시스템에서 Sybase **SQL
** Anywhere를 사용하는 경우 시스템 환경 변수 CFLAGS=-DODBC_QNX, LDFLAGS=-lunix 및 CUSTOM_ODBC_LIBS="-ldblib -lodbc"를 구성하고 --를 추가해야 할 수 있습니다. with- PHP 구성에서 custom-odbc=/usr/lib/sqlany50
예: --with-custom-odbc=/usr/local/odbc
ODBC 데이터베이스 드라이버를 사용하지 마세요
구문: --disable- Unified-odbc
지침: 사용 이 옵션은 모든 ODBC 데이터베이스 드라이버를 비활성화합니다. 이 옵션은 경로를 지정할 필요가 없으며 이 옵션의 영향을 받는 옵션은 --with-iodbc, --with-solid, --with-adabas, --with-velocis 및 --with-custom-odbc입니다.
LDAP 디렉토리 프로토콜
구문: --with-ldap=DIR
설명: 디렉토리 프로토콜(Lightweight Directory Access Protocol, LDAP)을 사용하려면 이 옵션을 활성화해야 합니다. LDAP에 대한 자세한 내용은 RFC 문서 RFC1777 및 RFC1778을 참조하세요.
예: --with-ldap=/usr/local/ldap.
mcrypt 인코딩 함수 라이브러리
구문: --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
相关推荐:
위 내용은 PHP 컴파일 및 설치 각 PHP 컴파일 매개변수 구성에 대한 자세한 설명의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!