PHP編譯安裝系列大全
阿新 • • 發佈:2018-03-02
phpPHP編譯安裝系列
徐亮偉, 江湖人稱標桿徐。多年互聯網運維工作經驗,曾負責過大規模集群架構自動化運維管理工作。擅長Web集群架構與自動化運維,曾負責國內某大型電商運維工作。
個人博客"徐亮偉架構師之路"累計受益數萬人。
筆者Q:552408925、572891887
架構師群:471443208
PHP5.6編譯安裝
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y yum -y install libmcrypt-devel mhash mcrypt mkdir -p /soft/package/src cd /soft/package/src tar zxf php-5.6.23.tar.gz cd php-5.6.23 ./configure --prefix=/soft/php-fastcgi5.6.23 --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd --with-jpeg-dir --with-png-dir --with-zlib --enable-xml --with-libxml-dir --with-curl --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-mbregex --with-openssl --enable-mbstring --with-gd --enable-gd-native-ttf --with-freetype-dir=/usr/lib64 --with-gettext=/usr/lib64 --enable-sockets --with-xmlrpc --enable-zip --enable-soap --disable-debug --enable-opcache --enable-zip --with-config-file-path=/usr/local/php-fastcgi/etc --enable-fpm --with-fpm-user=www --with-fpm-group=www make && make install 內存小於一個G,在最後加上。 --disable-fileinfo cd /application/tools/php/ext /application/php/bin/phpize ./configure --with-php-config=/application/php/bin/php-config --with-pdo-mysql=/application/mysql make && make install
PHP5.5編譯安裝
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y yum -y install libmcrypt-devel mhash mcrypt mkdir -p /soft/package/src cd /soft/package/src wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make make install cd ../ cd /soft/package/src tar xf php-5.5.38.tar.gz cd php-5.5.38 ./configure --prefix=/soft/php5.5.38 --with-mysql=mysql --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp --enable-opcache && make && make install ln -s /soft/mysql/lib/libmysqlclient.so.18 /usr/lib64/ touch ext/phar/phar.phar make && make install ln -s /soft/php5.5.38/ /soft/php cp /soft/src/php-5.5.38/php.ini-production /soft/php/lib/php.ini cp /soft/php/etc/php-fpm.conf.default /soft/php/etc/php-fpm.conf /soft/php/sbin/php-fpm //如果需要將php與MySQL獨立出來 --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd --with-mysql=mysqlnd
PHP5.3編譯安裝
wget -O /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo yum install zlib-devel libxml2-devel libjpeg-devel libjpeg-turbo-devel libiconv-devel -y yum install freetype-devel libpng-devel gd-devel libcurl-devel libxslt-devel -y yum -y install libmcrypt-devel mhash mcrypt mkdir -p /soft/package/src cd /soft/package/src wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure --prefix=/usr/local/libiconv make make install cd ../ cd /soft/package/src tar xf php-5.3.27.tar.gz cd php-5.3.27 ./configure --prefix=/soft/php5.3.27 --with-mysql=/soft/mysql/ --with-iconv-dir=/usr/local/libiconv --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --disable-rpath --enable-safe-mode --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-fpm --enable-mbstring --with-mcrypt --with-gd --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --enable-short-tags --enable-zend-multibyte --enable-static --with-xsl --with-fpm-user=www --with-fpm-group=www --enable-ftp ln -s /soft/mysql/lib/libmysqlclient.so.18 /usr/lib64/ touch ext/phar/phar.phar make && make install ln -s /soft/php5.3.27/ /soft/php cp /soft/package/src/php-5.3.27/php.ini-production /soft/php/lib/php.ini cp /soft/php/etc/php-fpm.conf.default /soft/php/etc/php-fpm.conf /soft/php/sbin/php-fpm //PHP5.3編譯參數詳解 [root@lnmp01 tools]# tar xf php-5.3.27.tar.gz解壓壓縮包 [root@lnmp01 tools]# cd php-5.3.27 進入php安裝目錄 ./configure 編譯參數 --prefix=/soft/php5.3.27 指定php的安裝路徑為/soft/php5.3.27 --with-mysql=/soft/mysql/ 需要指定mysql的安裝路徑,安裝PHP需要的MySQL相關內容。 當然需要將MySQL獨立安裝建議使用--with-mysql=mysqlnd替代--with-mysql=/soft/mysql, 將php和mysql拆開. --with-iconv-dir=/usr/local/libiconv libiconv庫,各種字符集間的轉換 --with-freetype-dir 打開對freetype字體庫支持 --with-jpeg-dir 打開對jpeg圖片的支持 --with-png-dir 打開對png圖片的支持 --with-zlib 打開zlib庫的支持,用於http壓縮傳輸 --with-libxml-dir=/usr 打開libxml2庫的支持 --enable-xml --disable-rpath 關閉額外的運行庫文件 --enable-safe-mode 打開安全模式 --enable-bcmath 打開圖片大小調整,用zabbix監控時會用到該模塊 --enable-shmop --enable-sysvsem 使用sysv信號機制,則打開此選項 --enable-inline-optimization 優化線程 --with-curl 打開curl瀏覽工具的支持 --with-curlwrappers 運維curl工具打開url流 --enable-mbregex --enable-mbstring 支持mbstring --with-mcrypt 編碼函數庫 --with-gd 打開gd庫的支持 --enable-gd-native-ttf 支持TrueType字符串函數庫 --with-openssl openssl的支持,加密傳輸時用到 --with-mhash mhash算法的擴展 --enable-pcntl freeTDS需要用到,可能是鏈接mssql --enable-sockets 打開sockets支持 --with-xmlrpc 打開xml-rpc的c語言 --enable-zip 打開對zip的支持 --enable-soap soap模塊的擴展 --enable-short-tags 開始和標記函數 --enable-zend-multibyte 支持zend的多字節 --enable-static 生成靜態鏈接庫 --with-xsl 打開XSLT文件支持,擴展libXML2庫,需要libxslt軟件 --enable-ftp 打開ftp的支持 --enable-fpm 表示激活PHP-FPM方式服務,即FactCGI方式運行PHP服務。 --with-fpm-user=www 指定PHP-FPM進程管理的用戶為www,此處最好和Nginx服務用戶統一。 --with-fpm-group=www 指定PHP-FPM進程管理用戶組為www,此處最好和Nginx服務用戶組統一。 //軟鏈接 [root@lnmp01 php]# ln -s /application/mysql/lib/libmysqlclient.so.18 /usr/lib64/ //創建php安裝需要文件 [root@lnmp01 php]# touch ext/phar/phar.phar //make生成Makefile 最近進行編譯安裝 [root@lnmp01 php]# make && make install //軟鏈接去版本(方便升級及後續維護) [root@lnmp01 php]# ln -s /soft/php5.3.27/ /soft/php //拷貝php.ini需要配置文件 [root@lnmp01 php]# cp /soft/src/php-5.3.27/php.ini-production /soft/php/lib/php.ini //拷貝php-fpm配置文件 [root@lnmp01 php]# cp /soft/php/etc/php-fpm.conf.default /soft/php/etc/php-fpm.conf //啟動php-fpm [root@lnmp01 php]# /soft/php/sbin/php-fpm
PHP7編譯參數詳解
--prefix=/usr/local/php706 //指定php安裝目錄
--enable-calendar //打開日歷擴展功能
--enable-sysvsem //使用sysv信號機制,則打開此選項
--enable-sysvshm //啟用系統V共享內存支持。
--enable-sysvmsg //啟用sysvmsg支持。
--enable-bcmath //打開圖片大小調整,用zabbix監控時會用到該模塊
--enable-exif //圖片的元數據支持
--enable-ftp //打開ftp的支持
--enable-mbstring //支持mbstring
--enable-shmop //啟用shmop支持
--enable-sockets //打開sockets支持
--enable-dtrace //開啟DTrace(動態跟蹤)支持
--enable-soap //soap模塊的擴展
--enable-zip //打開對zip的支持
--enable-mbregex //多字節字符串 函數
--enable-inline-optimization /優化線程
--enable-pcntl //freeTDS需要用到,可能是鏈接mssql
--enable-pdo //兼容PHP接口的數據連接拓展。
--enable-gd-native-ttf //支持TrueType字符串函數庫
--enable-opcache //開啟 OPcache高速緩存。
--enable-xml //
--enable-maintainer-zts /啟用線程安全 - 代碼維護者使用
--enable-fpm //表示激活PHP-FPM方式服務,即FactCGI方式運行PHP服務
--with-iconv-dir=/usr/local/libiconv //libiconv庫,各種字符集間的轉換
--with-gettext //打開gnu的gettext 支持,編碼庫用到
--with-libxml-dir //打開libxml2庫的支持
--with-zlib //打開zlib庫的支持,用於http壓縮傳輸
--with-kerberos=/usr //Openssl包含kerberos支持
--with-openssl //openssl的支持,加密傳輸時用到
--with-mhash //mhash算法的擴展
--with-mysql-sock=mysql_socket //指定mysql的socket。如果未指定,按默認位置搜索
--with-mysqli=mysqlnd //mysqli擴展
--with-pdo-mysql=mysqlnd //PDO:MySQL支持。DIR是MySQL的基本目錄,如果沒有值或mysqlnd作為DIR傳遞,則將使用MySQL本機驅動程序DIR是MySQL的基本目錄,如果沒有值或mysqlnd作為DIR傳遞,則將使用MySQL本機驅動程序
--with-pdo-pgsql=pgsqlnd //啟用PostgreSQL支持並指定其軟件根目錄或者pg_config的路徑(pgsql需使用)
--with-curl //打開curl瀏覽工具的支持
--with-gd //打開gd庫的支持
--with-xpm-dir //指定gd庫libXpm的安裝目錄
--with-jpeg-dir //打開對jpeg圖片的支持
--with-png-dir //打開對png圖片的支持
--with-freetype-dir //打開對freetype字體庫支持
--with-xmlrpc //打開xml-rpc的c語言
--with-fpm-user=nobody //指定PHP-FPM進程管理的用戶為www,此處最好和Nginx服務用戶統一。
--with-fpm-group=nobody //指定PHP-FPM進程管理用戶組為www,最好和Nginx服務用戶組統一。
--with-fpm-acl //使用POSIX 訪問控制列表,5.6.5版本起有效
--with-mcrypt //編碼函數庫
--with-tsrm-pthreads //使用 POSIX 線程(默認)。
--disable-fileinfo //關閉一些運行中的進程如mysqld,httpd等等,以節約內存。
--disable-rpath //關閉額外的運行庫文件
make ZEND_EXTRA_LIBS=‘-liconv -L/usr/local/libiconv/lib‘ //iconv函數庫能夠完成各種字符集間的轉換,比如:實現utf-8和gb2312編碼的轉換
make ZEND_EXTRA_LIBS=‘-liconv‘
make install
cp php.ini-production /usr/local/php7/etc/php.ini
configure 它可以自動設定源程序以符合各種不同平臺上Unix系統的特性,並根據系統叁數及環境產生合適的Makefile文件讓源程序可以很方便地在不同的平臺上被編譯
make 是用來編譯的,它從Makefile中讀取指令,然後編譯。
make install 將程序安裝至系統中。如果原始碼編譯無誤,且執行結果正確,便可以把程序安裝至系統預設的可執行文件存放路徑。從Makefile中讀取指令,安裝到指定的位置。
make clean 清除編譯產生的可執行文件及目標文件(object file,*.o)。
make distclean 除了清除可執行文件和目標文件外,把configure所產生的Makefile也清除掉。
##PHP7可選參數
--with-xsl=shared,/usr //打開XSLT 文件支持,擴展了libXML2庫 ,需要libxslt軟件
--with-zlib-dir=/usr //定義zlib安裝所在的目錄(壓縮與歸檔)
--with-snmp=shared,/usr //包含SNMP支持。(SNMP簡單的服務器監控系統)
--with-tidy=shared,/usr //包含tidy支持。(網頁代碼分析和糾錯的工具,能夠支持多種頁面編碼,並且支持xhtml輸出)
--with-recode=shared,/usr //包含recode支持(Recode庫可以在各種編碼字符集和表面編碼之間轉換文件)
--with-pspell=shared,/usr //包含PSPELL支持GNU (實現拼寫檢查)
--with-gmp=shared,/usr //啟用GNU MP支持
--with-enchant=shared,/usr //啟用 enchant 支持.(各種拼寫庫的抽象層)
--with-vpx-dir=shared,/usr //GD: 指定libvpx的安裝目錄(VP8編碼解碼器)
--with-system-tzdata //程序執行函數
--enable-intl //開啟國際化支持(國際化與字符編碼支持)
--with-mssql=shared,/usr //包含MSSQL-DB支持,並指定FreeTDS軟件目錄(php7已移除)
--with-ldap=shared,/usr //ldap擴展模塊
--with-ldap-sasl=/usr //ldap擴展模塊
--with-unixODBC=shared,/usr //包含unixODBC支持(通過ODBC鏈接 本地mysql)
--disable-static //禁用靜態庫
##php7默認,可不增選項
--disable-debug /關閉詳細的請求信息(默認為關閉)
--build=x86_64-linux-gnu //指定編譯工具所在系統的系統類型BUILD
--host=x86_64-linux-gnu //指定Apache HTTP服務器將要進行交叉編譯時運行的目標系統類型HOST
--localstatedir=/var //機器數據目錄DIR (默認安裝路徑下的var)
--mandir=/usr/share/man //手冊文檔目錄DIR (默認安裝路徑下的datarootdir下man目錄)
--disable-short-tags 默認禁用短形式的開始標簽 <? 。
--disable-libtool-lock 避免鎖定(可能會破壞並行構建)
--disable-all 禁用默認情況下啟用的所有擴展程序
--enable-shared=PKGS //默認啟用構建共享庫
--enable-static=PKGS //默認啟用構建靜態庫
--enable-fast-install = PKGS //默認啟用優化後快速安裝
--enable-ctype //ctype 擴展,從PHP4.2.0默認啟用。通過--disable-ctype禁用
--with-pear=/usr/share/php //PEAR(實現了諸如析構函數,錯誤捕獲功能)默認為 PREFIX/lib/php
--with-apxs2=/usr/bin/apxs2 //apxs是以php module的模式加載PHP的。
--with-pcre-regex=/usr //PHP 4.2.0 開始這些函數是默認啟用的。可以通過--without-pcre-regex //禁用 pcre 函數
--with-layout=GNU //顯示安裝文件的布局PHP或GNU(默認PHP)
--with-regex=php //正則表達式庫類型(默認TYPE=PHP)
--with-sqlite3=shared,/usr //5.3 默認啟動SQLite3 擴展。
--with-mysql-sock=SOCKPATH //mysql unix套接字指針位置。如果未指定,將搜索默認位置
--with-odbcver=HEX //強制支持通過的ODBC版本。 預期的十六進制數,默認為0x0300。
--with-gnu-ld //假設C編譯器使用GNU ld default = no
--with-config-file-path=PATH //設置 php.ini 的搜索路徑。默認為 PREFIX/lib。
--with-fpm-user= //默認nobody用戶
--with-fpm-group= //默認nobody用戶組
--with-tsrm-pthreads //默認使用 POSIX 線程。
--with-pic //嘗試只使用PIC /非PIC對象,默認同時使用
--with-apxs[=FILE] //編譯共享的 Apache 模塊。FILE 是可選的 Apache apxs 工具的路徑,默認指向 apxs。
PHP編譯安裝系列大全