CentOS裸機環境下安裝php-7.3.1


安裝步驟如下

安裝必要的軟件

    yum install -y autoconf automake libtool re2c libxml* openssl* BZip2* libcurl* libjpeg* libpng* libXpm* libzip* zlib* freetype* pcre* flex bison tar get

獲取源碼

    wget -O /data1/source/php-7.3.1.tar.gz http://cn2.php.net/get/php-7.3.1.tar.gz/from/this/mirror
    cd /data1/source/
    tar zxf php-7.3.1.tar.gz
    cd php-7.3.1

編譯安裝

    // php根目錄設置為/data1/install/php
    // php的配置文件目錄為/data/config/php
    // php-fpm的配置文件目錄為/data/install/php/etc
    // php-fpm的可運行文件在源碼目錄的sapi/fpm下
    // php的可執行文件目錄為/usr/local/bin
    ./configure --prefix=/data1/install/php --with-config-file-path=/data1/config/php/ --bindir=/usr/local/bin --sbindir=/user/local/sbin --enable-fpm --with-fpm-user=www --with-fpm-group=www --with-libxml-dir --enable-debug --with-zlib --disable-rpath --enable-sysvsem --with-curl --enable-mbregex --enable-mbstring --enable-zip --enable-soap --with-pear --disable-phar --disable-tokenizer --enable-ftp --with-mysqli --with-pdo-mysql --with-openssl --with-bz2 --with-jpeg-dir --with-webp-dir --with-png-dir --with-xpm-dir --with-freetype-dir --with-mhash --with-iconv-dir --enable-gd-jis-conv --with-gd --enable-sockets --with-pcre-dir --enable-bcmath --enable-pdo
    make
    make install

安裝過程可能遇到的一些問題

    如果提示libzip版本需要升級,則安裝新版的,
    以下是安裝1.2.0版本libzip的步驟
    yum remove libzip
    cd ~
    wget https://nih.at/libzip/libzip-1.2.0.tar.gz
    tar -zxvf libzip-1.2.0.tar.gz
    cd libzip-1.2.0
    ./configure && make && make install
    如果出現"off_t undefined; check your library configuration"這個錯誤
    在運行一下命令
    echo '/usr/local/lib64
    /usr/local/lib
    /usr/lib
    /usr/lib64'>>/etc/ld.so.conf&&ldconfig -v

編譯參數詳解

    []內的路徑表示默認路徑
    安裝目錄:
        --prefix=PREFIX         指定 php 安裝目錄 [/usr/local]
        --exec-prefix=EPREFIX   指定 php 用戶可執行文件安裝目錄 [PREFIX]
        --bindir=DIR            用戶可執行文件 [EPREFIX/bin]
        --sbindir=DIR           系統管理員可執行文件 [EPREFIX/sbin]
        --libexecdir=DIR        程序可執行文件 [EPREFIX/libexec]
        --sysconfdir=DIR        只讀的單一機器數據目錄DIR ,用於存放php.ini之類的服務器配置文件 [PREFIX/etc]
        --sharedstatedir=DIR    可改寫的體系無關數據目錄DIR [PREFIX/com]
        --localstatedir=DIR     可改寫的單一機器數據目錄DIR [PREFIX/var]
        --runstatedir=DIR       可改寫的每個進程數據目錄DIR [LOCALSTATEDIR/run]
        --libdir=DIR            對象代碼庫目錄DIR [EPREFIX/lib]
        --includedir=DIR        PHP的C頭文件目錄DIR [PREFIX/include]
        --oldincludedir=DIR     非gcc的C頭文件目錄DIR [/usr/include]
        --datarootdir=DIR       PHP服務器只讀的體系無關數據根目錄DIR [PREFIX/share]
        --datadir=DIR           PHP服務器只讀的體系無關數據目錄DIR [DATAROOTDIR]
        --infodir=DIR           信息文檔目錄DIR [DATAROOTDIR/info]
        --localedir=DIR         地區相關數據DIR [DATAROOTDIR/locale]
        --mandir=DIR            手冊文檔目錄DIR [DATAROOTDIR/man]
        --docdir=DIR            文檔根目錄 [DATAROOTDIR/doc/PACKAGE]
        --htmldir=DIR           html文檔目錄DIR [DOCDIR]
        --dvidir=DIR            dvi文檔目錄DIR [DOCDIR]
        --pdfdir=DIR            pdf文檔目錄DIR [DOCDIR]
        --psdir=DIR             ps文檔目錄DIR [DOCDIR]
    交叉編譯選項:
        --build=BUILD           指定編譯工具所在系統的系統類型BUILD [guessed]
        --host=HOST             指定HTTP服務器將要進行交叉編譯時運行的目標系統類型HOST [BUILD]
        --target=TARGET         指定交叉編譯所產生的目標代碼類型 [HOST]
    可選功能和包:
        --disable-option-checking   忽略無法識別的--enable/--with選項
        --disable-FEATURE           關閉特征選項
        --enable-FEATURE[=ARG]      啟用特征選項
        --with-PACKAGE[=ARG]        使用封裝
        --without-PACKAGE           禁用封裝
        --with-libdir=NAME          庫文件查找路徑設置…/XXX/lib/
        --disable-rpath             禁用傳遞其他運行庫搜索路徑
        --enable-re2c-cgoto         啟用-g標志到re2c以使用計算的goto-gcc擴展
        --disable-gcc-global-regs   是否啟用GCC全局寄存器變量
    SAPI模塊:
        --with-apxs2=FILE           編譯共享的apache2.0處理程序的模塊。參數是apache apxs工具的路徑文件
        --disable-cli               編譯禁用CLI的PHP版本。這個參數需要–without-pear (this forces –without-pear)
        --enable-embed=TYPE         實驗性:建立內嵌的SAPI庫。參數為shared、static。
        --enable-fpm                啟用執行FPM的SAPI可執行文件
        --with-fpm-user=USER        設置php-fpm運行用戶,此處最好和Nginx服務用戶統一 [nobody]
        --with-fpm-group=GRP        設置php-fpm運行用戶組,對於系統用戶,此通常應設置為與fpm用戶名匹配,此處最好和Nginx服務用戶統一 [nobody]
        --with-fpm-systemd          激活SystemD集成
        --with-fpm-acl              使用POSIX訪問控制列表
        --with-litespeed            將PHP構建為LiteSpeed模塊
        --enable-phpdbg             構建PHPDBG
        --enable-phpdbg-webhelper   構建phpdbg web sapi支持
        --enable-phpdbg-debug       在調試模式下生成phpdbg
        --disable-cgi               禁用生成PHP的CGI版本
        --with-valgrind=DIR         啟用Valgrind支持
    普通參數設置:
        --enable-gcov                       請用GCOV代碼覆蓋率(僅用於開發人員使用)
        --enable-debug                      帶調試符號的編譯
        --with-layout=TYPE                  顯示安裝文件的布局。參數為PHP或GNU [PHP]
        --with-config-file-path=PATH        php.ini文件位置 [PREFIX/lib]
        --with-config-file-scan-dir=PATH    掃描配置文件的路徑
        --enable-sigchild                   使用PHP自帶的SIGCHLD處理器
        --enable-libgcc                     啟用libgcc的精確鏈接
        --disable-short-tags                默認禁用短形式的<?作為php代碼的開始標記
        --enable-dmalloc                    啟用dmalloc(dmalloc是Linux C編程偵測記憶體溢出工具)
        --disable-ipv6                      禁用IPv6支持
        --enable-dtrace                     啟用dtrace支持
        --enable-fd-setsize                 設置描述符集的大小
    擴展參數:
        語法: --with-EXTENSION=[shared[,PATH]]   (注:並非所有模塊都可編譯成共享方式)
        下面的例子顯示了把foobar編譯成共享方式,並指定安裝路徑為/usr/local/foobar/
        例如: –with-foobar=shared,/usr/local/foobar/
    
        --disable-all                               關閉默認為啟用的所有擴展功能
        --disable-libxml                            禁用LIBXML支持
        --with-libxml-dir=DIR                       LIBXML安裝目錄
        --enable-ftp                                啟用ftp支持
        --with-openssl=DIR                          啟用openssl支持
        --with-openssl-dir=DIR                      指定openssl的安裝目錄
        --with-kerberos=DIR                         OpenSSL的支持:包括Kerberos
        --with-system-ciphers                       openssl:使用系統默認密碼列表而不是硬編碼值
        --with-pcre-regex=DIR                       啟用pcre(perl兼容正則表達式)支持
        --with-pcre-jit                             啟用PCRE JIT功能(僅捆綁)
        --with-pcre-valgrind=DIR                    啟用PCRE Valgrind支持。僅限開發人員!
        --without-sqlite3=DIR                       不包括sqlite3支持。dir是sqlite3安裝目錄的前綴。
        --with-zlib=DIR                             啟用zlib支持
        --with-zlib-dir=<DIR>                       定義zlib安裝所在的目錄
        --enable-bcmath                             啟用bcmatch
        --with-bz2=DIR                              包含BZip2支持
        --enable-calendar                           啟用日歷轉換支持
        --disable-ctype                             禁用ctype功能
        --with-curl=DIR                             啟用cURL支持
        --enable-dba                                構架捆綁模塊的DBA。要建立擴展的共享模塊使用–enable-dba=shared參數。
        --with-qdbm=DIR                             啟用QDBM支持
        --with-gdbm=DIR                             啟用GDBM支持
        --with-ndbm=DIR                             啟用NDBM支持
        --with-db4=DIR                              啟用Berkeley DB4支持
        --with-db3=DIR                              啟用Berkeley DB3支持
        --with-db2=DIR                              啟用Berkeley DB2支持
        --with-db1=DIR                              啟用Berkeley DB1支持
        --with-dbm=DIR                              啟用DBM支持
        --with-tcadb=DIR                            啟用TCADB支持
        --with-lmdb=DIR                             啟用LMDB支持
        --without-cdb=DIR                           啟用CDB支持(捆綁方式)
        --disable-inifile                           啟用INI支持(捆綁方式)
        --disable-flatfile                          啟用QDBM支持(捆綁方式)
        --disable-dom                               禁用DOM支持
        --with-libxml-dir=DIR                       啟用libxml2並指定其安裝目錄
        --with-enchant=DIR                          包括Enchant支持.gnu Aspell 1.1.3版或更高版本。
        --enable-exif                               啟用exif(來自圖像的元數據)支持
        --disable-fileinfo                          禁用文件信息支持
        --disable-filter                            禁用輸入過濾支持
        --with-pcre-dir                             支持及其安裝目錄    
        --with-gd=DIR                               啟用GD支持並指定GD庫的安裝目錄
        --with-webp-dir=DIR                         指定libwebp的安裝目錄
        --with-jpeg-dir=DIR                         指定libjpeg的安裝目錄
        --with-png-dir=DIR                          指定libpng的安裝目錄
        --with-zlib-dir=DIR                         指定libz的安裝目錄
        --with-xpm-dir=DIR                          指定libXpm的安裝目錄
        --with-freetype-dir=DIR                     指定FreeType2的安裝目錄
        --enable-gd-jis-conv                        啟用JIS-mapped日語字體支持
        --with-gettext=DIR                          包含GNU gettext支持
        --with-gmp=DIR                              啟用GNU MP支持
        --with-mhash=DIR                            啟用mhash支持
        --disable-hash                              禁用hash支持
        --without-iconv=DIR                         禁用iconv支持
        --with-imap=DIR                             包含IMAP支持。指定c-client安裝目錄
        --with-kerberos=DIR                         啟用kerberos支持並指定其目錄
        --with-imap-ssl=DIR                         啟用ssl支持並指定openssl目錄
        --with-interbase=DIR                        啟用interbase支持並指定其目錄
        --enable-intl                               支持國際化
        --with-icu-dir=DIR                          指定可以在哪里找到ICU庫和頭文件
        --disable-json                              禁用JavaScript對象順序話支持
        --with-ldap=DIR                             包含LDAP支持
        --with-ldap-sasl=DIR                        包含Cyrus SASL支持
        --enable-mbstring                           啟用多字節字符串的支持
        --with-onig=DIR                             mbstring:使用外部Oniguruma。dir是oniguruma安裝前綴。如果未設置dir,將使用捆綁的oniguruma
        --disable-mbregex                           禁用多字節正則表達式的支持
        --disable-mbregex-backtrack                 禁用多字節正則表達式回溯檢查
        --with-mysqli=FILE                          包含MySQLi支持。參數為mysql_config的位置。如果沒有值或mysqlnd作為文件傳遞,則將使用mysql本機驅動程序
        --enable-embedded-mysqli                    啟用embedded支持。注意:不適用於MySQL本機驅動程序!
        --with-mysql-sock=SOCKPATH                  定位mysql的unix 套接字指針。如果未指定,則按默認位置搜索。
        --with-oci8=DIR                             包含Oracle支持。如果使用Oracle客戶端安裝則使用–with-oci8=instantclient,/path/to/oic /lib
        --with-odbcver=HEX                          強制支持傳遞的ODBC版本。應為十六進制數,默認值為0x0350。使用特殊值0可防止定義顯式ODBCver。
        --with-adabas=DIR                           包含Adabas D支持 [/usr/local]
        --with-sapdb=DIR                            包含SAP DB支持 [/usr/local]
        --with-solid=DIR                            包含Solid支持 [/usr/local/solid]
        --with-ibm-db2=DIR                          包含IBM DB2支持 [/home/db2inst1/sqllib]
        --with-empress=DIR                          包含empress支持
        --with-empress-bcs=DIR                      包含Empress本地訪問支持。
        --with-custom-odbc=DIR                      包括用戶自定義的ODBC的支持。目錄是ODBC安裝的主目錄。確定定義了CUSTOM_ODBC_LIBS並且在include目錄下有 odbc.h的頭文件你要在QNX上為Sybase SQL Anywhere定義如下:運行此之前,配置腳本CPPFLAGS="-DODBC_QNX -DSQLANY_BUG" LDFLAGS=-lunix CUSTOM_ODBC_LIBS="-ldblib -lodbc"
        --with-iodbc=DIR                            包含iODBC支持 [/usr/local]
        --with-esoob=DIR                            包含Easysoft OOB支持 [/usr/local/easysoft/oob/client]
        --with-unixODBC=DIR                         包含unixODBC支持 [/usr/local]
        --with-dbmaker=DIR                          包含DBMaker支持
        --disable-opcache                           禁用Zend Opcache支持
        --disable-opcache-file                      禁用基於文件的緩存
        --disable-huge-code-pages                   禁止將PHP代碼頁復制到大頁中
        --enable-pcntl                              啟用pcntl支持(僅用於CLI和CGI)
        --disable-pdo                               禁用PHP數據對象支持
        --with-pdo-dblib=DIR                        啟用DBLIB-DB支持,目錄為FreeTDS主目錄。
        --with-pdo-firebird=DIR                     啟用Firebird支持 [/opt/firebird]
        --with-pdo-mysql=DIR                        啟用PDO:mysql支持
        --with-zlib-dir=DIR                         設置PDO:MySQL的zlib安裝目錄
        --with-pdo-oci=DIR                          設置PDO:Oracle OCI支持。為Oracle安裝客戶端SDK使用–with-pdo-oci=instantclient,prefix,version參數
        --with-pdo-odbc=flavour,dir                 啟用“flavour”ODBC支持。在dir目錄的include和lib目錄下查找。“flavour”參數值可以是ibm-db2, unixODBC, generic。如果dir省略,則使用默認值。如果你試圖通過generic使用一個如若不支持的驅動程序。為generic ODBC提供的語法格式如下:–with-pdo-odbc=generic,dir,libname,ldflags,cflags。作為共享的編譯 后的擴展文件的名一般為pdo_odbc.so
        --with-pdo-pgsql=DIR                        啟用PDO:PostgreSQL支持
        --without-pdo-sqlite=DIR                    啟用SQLite 3支持
        --with-pgsql=DIR                            啟用PostgreSQL支持並指定其軟件根目錄或者pg_config的路徑
        --disable-phar                              禁用phar支持
        --disable-posix                             禁用posix-like功能
        --with-pspell=DIR                           包含PSPELL支持GNU
        --with-libedit=DIR                          包含libedit readline更換(僅用於CLI和CGI)
        --with-readline=DIR                         (CLI/CGI only)包含readline支持(僅用於CLI和CGI)
        --with-recode=DIR                           包含recode支持
        --disable-session                           禁用session支持
        --with-mm=DIR                               為session存儲啟用mm支持。
        --enable-shmop                              啟用shmop支持
        --disable-simplexml                         禁用simpleXML支持
        --with-libxml-dir=DIR                       啟用simpleXML:libXML2支持。
        --with-snmp=DIR                             包含SNMP支持。
        --with-openssl-dir=DIR                      包含SNMP:openssl支持
        --enable-soap                               啟用SOAP支持
        --with-libxml-dir=DIR                       啟用SOAP:LIBXML2支持
        --enable-sockets                            啟用sockets支持
        --with-sodium=DIR                           包含sodium支持
        --with-password-argon2=DIR                  在密碼中包含argon2支持。dir是argon2共享庫路徑
        --enable-sysvmsg                            啟用sysvmsg支持
        --enable-sysvsem                            啟用系統V信號支持
        --enable-sysvshm                            啟用系統V共享內存支持
        --with-tidy=DIR                             包含tidy支持
        --disable-tokenizer                         禁用tokenizer支持
        --enable-wddx                               啟用WDDX支持
        --with-libxml-dir=DIR                       包含WDDX:libxml2支持
        --with-libexpat-dir=DIR                     為XMLRPC-EPI啟用libexpat(不推薦)
        --disable-xml                               禁用XML支持
        --with-libxml-dir=DIR                       啟用libxml2支持
        --with-libexpat-dir=DIR                     啟用libexpat支持(不推薦)
        --disable-xmlreader                         禁用XMLreader支持
        --with-libxml-dir=DIR                       啟用XMLreader的libxml2支持
        --with-xmlrpc=DIR                           包含XMLRPC-EPI支持
        --with-libxml-dir=DIR                       啟用XMLRPC-EPI:libxml2支持
        --with-libexpat-dir=DIR                     啟用XMLRPC-EPI:libexpat支持(不推薦)
        --with-iconv-dir=DIR                        啟用XMLRPC-EPI:iconv支持
        --disable-xmlwriter                         禁用XMLWriter支持
        --with-libxml-dir=DIR                       啟用XMLReader:libxml2支持
        --with-xsl=DIR                              啟用XSL支持
        --enable-zend-test                          啟動zend-test擴展
        --enable-zip                                包含zip讀寫支持
        --with-zlib-dir=DIR                         啟用zip:zlib支持
        --with-pcre-dir                             ZIP: pcre安裝目錄
        --with-libzip=DIR                           ZIP: 使用libzip
        --enable-mysqlnd                            顯式啟用mysqlnd,將在其他擴展需要時隱式完成
        --disable-mysqlnd-compression-support       禁用對mysqlnd中mysql壓縮協議的支持
        --with-zlib-dir=DIR                         mysqlnd:設置libz安裝前綴的路徑
    PEAR相關選項:
        --with-pear=DIR         安裝PEAR目錄 [PREFIX/lib/php]
        --without-pear        不安裝PEAR
    ZEND相關選項:
        --enable-maintainer-zts         啟用線程安全-僅限代碼維護者!!
        --disable-inline-optimization   如果構建zend_execute.lo失敗,請嘗試此開關
        --disable-zend-signals          是否啟用Zend信號處理
    Thread Safe Resource Manager線程安全資源管理器相關配置:
        --with-tsrm-pth=pth-config      使用GNU PTH
        --with-tsrm-st                  使用SGI的狀態線程
        --with-tsrm-pthreads            使用POSIX線程(默認)
    Libtool相關配置:
        --enable-shared=PKGS            編譯共享模塊
        --enable-static=PKGS            編譯靜態模塊
        --enable-fast-install=PKGS      啟用快速安裝優化方式
        --with-gnu-ld                   假設C編譯器使用GNU ld
        --disable-libtool-lock          避免鎖死(可能破壞並聯的編譯)
        --with-pic                      嘗試僅使用PIC或non-PIC對象
        --with-tags=TAGS                包括額外的配置
    一些有影響的環境變量:
        CC          C編譯器命令
        CFLAGS      C編譯器標志
        LDFLAGS     鏈接器標志
        LIBS        要傳遞給鏈接器的庫
        CPPFLAGS    C/C++預處理器標志
        CPP         C預處理器
        YACC        另一個編譯的編譯為使用
        YFLAGS      默認情況下將傳遞給$yacc的參數列表。此腳本將默認yFlags為空字符串,以避免一些make應用程序給出的默認值為“-d”。
        CXX         C++編譯器命令
        CXXFLAGS    C++編譯器標志
        CXXCPP      C++預處理器


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM