<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          PHPBrew安裝多版本 PHP 到用戶根目錄的工具

          聯(lián)合創(chuàng)作 · 2023-10-01 09:19

          phpbrew 是一個(gè)構(gòu)建、安裝多版本 PHP 到用戶根目錄的工具。

          phpbrew 能做什么?

          • 配置選項(xiàng)簡(jiǎn)化為「Variants」,無需擔(dān)心路徑問題。
          • 支持使用 PDO,mysql,sqlite,debug 等不同「Variants」編譯 PHP。
          • 針對(duì)不同版本,分別編譯 apache php 模塊,互不沖突。
          • 無需 root 權(quán)限將 PHP 安裝到用戶根目錄。
          • 集成至 bash / zsh shell 等,易于切換版本。
          • 支持自動(dòng)特性檢測(cè)。
          • 易于安裝、啟用 PHP 擴(kuò)展。
          • 支持在系統(tǒng)環(huán)境下安裝多個(gè) PHP。
          • 路徑檢測(cè)針對(duì) HomeBrew 以及 MacPorts 進(jìn)行了優(yōu)化。

          安裝需求

          在開始之前,請(qǐng)先查看:Requirement(英文)。 確保已安裝依賴包的開發(fā)版本用于編譯 PHP。

          安裝

          curl -L -O https://github.com/phpbrew/phpbrew/raw/master/phpbrew
          chmod +x phpbrew
          
          # Move phpbrew to somewhere can be found by your $PATH
          sudo mv phpbrew /usr/local/bin/phpbrew

          快速入門

          急不可待?請(qǐng)直接查看:Quick Start(英文)。

          開始使用

          接下來,我們假定你有充足的時(shí)間來學(xué)習(xí),這將會(huì)是一個(gè)循序漸進(jìn)的教程——教你如何配置 phpbrew。

          初始設(shè)置

          首先,初始化 Bash Shell 腳本:

          phpbrew init

          接著在 .bashrc 或 .zshrc 文件增加如下行:

          [[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc

          對(duì)于 Fish shell 用戶,在 ~/.config/fish/config.fish 文件增加如下行:

          source ~/.phpbrew/phpbrew.fish

          若需要在系統(tǒng)全局(非用戶目錄)使用 phpbrew,請(qǐng)?jiān)O(shè)置共享的 phpbrew 根目錄,例如:

          mkdir -p /opt/phpbrew
          phpbrew init --root=/opt/phpbrew

          庫路徑設(shè)置

          其次,請(qǐng)?jiān)O(shè)置用于查找?guī)煳募哪J(rèn)前綴,可選值有 macports,homebrew,debian,ubuntu 或是自定義路徑。

          對(duì)于 Homebrew 用戶:

          phpbrew lookup-prefix homebrew

          對(duì)于 Macports 用戶:

          phpbrew lookup-prefix macports

          基礎(chǔ)用法

          列出已知 PHP 版本:

          phpbrew known
          
          7.0: 7.0.3, 7.0.2, 7.0.1, 7.0.0 ...
          5.6: 5.6.18, 5.6.17, 5.6.16, 5.6.15, 5.6.14, 5.6.13, 5.6.12, 5.6.11 ...
          5.5: 5.5.32, 5.5.31, 5.5.30, 5.5.29, 5.5.28, 5.5.27, 5.5.26, 5.5.25 ...
          5.4: 5.4.45, 5.4.44, 5.4.43, 5.4.42, 5.4.41, 5.4.40, 5.4.39, 5.4.38 ...
          5.3: 5.3.29, 5.3.28 ...

          列出更多次要版本:

          $ phpbrew known --more

          刷新 PHP 發(fā)布信息:

          $ phpbrew update

          刷新舊版本(低于5.4):

          請(qǐng)注意:我們不保證能夠正確編譯 PHP 官方停止維護(hù)的版本,請(qǐng)不要提交關(guān)于編譯舊版本的 Issus,此類 Issue 將不會(huì)修復(fù)。

          $ phpbrew update --old

          列出已知的舊版本(低于5.4):

          $ phpbrew known --old

          編譯屬于你的 PHP

          使用默認(rèn)參數(shù)編譯安裝 PHP 非常簡(jiǎn)單:

          $ phpbrew install 5.4.0 +default

          這里我們推薦使用已包含絕大多數(shù)公共參數(shù)的 default(默認(rèn))參數(shù)集合。如果你需要「最小安裝」,刪掉default執(zhí)行即可。

          你可以使用-j--jobs選項(xiàng)啟用并行編譯,例如:

          $ phpbrew install -j $(nproc) 5.4.0 +default

          編譯完成后執(zhí)行測(cè)試用例:

          $ phpbrew install --test 5.4.0

          測(cè)試環(huán)境,且包含調(diào)試信息:

          $ phpbrew -d install --test 5.4.0

          安裝舊版本(低于5.3):

          $ phpbrew install --old 5.2.13

          安裝給定主要版本的最新次要版本:

          $ phpbrew install 5.6

          安裝預(yù)覽版本:

          $ phpbrew install 7.2.0alpha1
          $ phpbrew install 7.2.0beta2
          $ phpbrew install 7.2.0RC3

          通過指定的 GitHub tag 或 branch 安裝:

          $ phpbrew install github:php/[email protected] as php-7.2.0-dev

          安裝下一個(gè)(非穩(wěn)定)版本:

          $ phpbrew install next as php-7.3.0-dev

          清除編譯目錄

          $ phpbrew clean php-5.4.0

          Variants

          PHPBrew 已經(jīng)將配置選項(xiàng)整理、合并為「Variants」,你只需簡(jiǎn)單地指定某個(gè) Variant 即可,phpbrew 會(huì)自動(dòng)在配置過程中檢測(cè)引用目錄、編譯選項(xiàng)等。

          PHPBrew 提供默認(rèn)的 Variant ,以及一些虛擬 Variants。 「Default Variant」包含絕大多數(shù)公共 Variants; 「Virtual Variants」可包含多個(gè) Variants,使用一個(gè)虛擬 Variant 即可一次性啟用多個(gè) Variants。

          只需執(zhí)行variants子命令,即可列出它們:

          $ phpbrew variants
          
          Variants:
            all, apxs2, bcmath, bz2, calendar, cgi, cli, ctype, curl, dba, debug, dom,
            dtrace, editline, embed, exif, fileinfo, filter, fpm, ftp, gcov, gd,
            gettext, gmp, hash, iconv, icu, imap, inifile, inline, intl, ipc, ipv6,
            json, kerberos, libgcc, mbregex, mbstring, mcrypt, mhash, mysql, opcache,
            openssl, pcntl, pcre, pdo, pgsql, phar, phpdbg, posix, readline, session,
            soap, sockets, sqlite, static, tidy, tokenizer, wddx, xml, xml_all, xmlrpc,
            zip, zlib, zts
          
          
          Virtual variants:
            dbs:        sqlite, mysql, pgsql, pdo
          
            mb:         mbstring, mbregex
          
            neutral:
          
            small:      bz2, cli, dom, filter, ipc, json, mbregex, mbstring, pcre, phar,
                        posix, readline, xml, curl, openssl
          
            default:    bcmath, bz2, calendar, cli, ctype, dom, fileinfo, filter, ipc,
                        json, mbregex, mbstring, mhash, mcrypt, pcntl, pcre, pdo, phar,
                        posix, readline, sockets, tokenizer, xml, curl, openssl, zip
          
            everything: dba, ipv6, dom, calendar, wddx, static, inifile, inline, cli,
                        ftp, filter, gcov, zts, json, hash, exif, mbstring, mbregex,
                        libgcc, pdo, posix, embed, sockets, debug, phpdbg, zip, bcmath,
                        fileinfo, ctype, cgi, soap, pcntl, phar, session, tokenizer,
                        opcache, imap, tidy, kerberos, xmlrpc, fpm, dtrace, pcre, mhash,
                        mcrypt, zlib, curl, readline, editline, gd, intl, icu, openssl,
                        mysql, sqlite, pgsql, xml, xml_all, gettext, iconv, bz2, ipc, gmp
          
          
          Using variants to build PHP:
          
            phpbrew install php-5.3.10 +default
            phpbrew install php-5.3.10 +mysql +pdo
            phpbrew install php-5.3.10 +mysql +pdo +apxs2
            phpbrew install php-5.3.10 +mysql +pdo +apxs2=/usr/bin/apxs2

          在 Variant 前添加+前綴,代表啟用此 Variant,例如:

          +mysql
          

          在 Variant 前添加-前綴,代表禁用此 Variant,例如:

          -mysql
          

          舉個(gè)例子,假設(shè)你使用默認(rèn) Variant,并且需要啟用數(shù)據(jù)庫支持(mysql,sqlite,postgresql)編譯 PHP,只需執(zhí)行:

          $ phpbrew install 5.4.5 +default+dbs

          也可以:

          $ phpbrew install 5.3.10 +mysql+sqlite+cgi
          
          $ phpbrew install 5.3.10 +mysql+debug+pgsql +apxs2
          
          $ phpbrew install 5.3.10 +pdo +mysql +pgsql +apxs2=/usr/bin/apxs2

          將 pgsql (PostgreSQL) 擴(kuò)展編譯進(jìn) PHP:

          $ phpbrew install 5.4.1 +pgsql+pdo

          若你的 Mac 上已經(jīng)安裝 postgresql,也可以指定特定目錄編譯 pgsql 擴(kuò)展:

          $ phpbrew install 5.4.1 +pdo+pgsql=/opt/local/lib/postgresql91/bin

          pgsql 的路徑即為pg_config所在目錄,你可以在/opt/local/lib/postgresql91/bin找到它。

          另外,你可以使用名為neutral的 Variant 來純凈編譯 PHP:

          $ phpbrew install 5.4.1 +neutral

          neutral意味著 phpbrew 不會(huì)增加包括--disable-all在內(nèi)的任何額外編譯參數(shù),但部分用于安裝pear的參數(shù)(例如--enable-libxml)依舊會(huì)被添加。

          更多細(xì)節(jié),請(qǐng)移步:PHPBrew Cookbook(英文)。

          拓展配置選項(xiàng)

          如果想要傳遞更多拓展配置變量,你可以這么做:

          $ phpbrew install 5.3.10 +mysql +sqlite -- \
              --enable-ftp --apxs2=/opt/local/apache2/bin/apxs

          切換 PHP 版本

          臨時(shí)切換 PHP 版本:

          $ phpbrew use 5.4.22

          切換默認(rèn) PHP 版本:

          $ phpbrew switch 5.4.18

          關(guān)閉 phpbrew:

          $ phpbrew off

          若需要啟用 Apache PHP 模塊,請(qǐng)注釋或移除以下設(shè)置項(xiàng):

          $ sudo vim /etc/httpd/conf/httpd.conf
          # LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.21.so
          # LoadModule php5_module        /usr/lib/httpd/modules/libphp5.3.20.so

          擴(kuò)展安裝器

          請(qǐng)查看:Extension Installer(英文)。

          配置 php.ini

          配置當(dāng)前 PHP 版本的 php.ini 文件,只需執(zhí)行如下命令即可:

          $ phpbrew config

          如需切換編輯器,可執(zhí)行如下命令指定 EDITOR 環(huán)境變量:

          export EDITOR=vim
          phpbrew config

          升級(jí) phpbrew

          執(zhí)行 self-update 即可從 GitHub 的 master 分支安裝 phpbrew 最新版本。

          $ phpbrew self-update

          已安裝的 PHP

          列出已安裝的 PHP:

          $ phpbrew list

          你可以在 ~/.phpbrew/php 目錄找到已安裝的 PHP。例如,5.4.20 版本位于:

          ~/.phpbrew/php/5.4.20/bin/php
          

          你可以手動(dòng)修改其 php.ini:

          ~/.phpbrew/php/5.4.20/etc/php.ini
          

          而 PHP 擴(kuò)展的配置文件位于:

          ~/.phpbrew/php/5.4.20/var/db
          ~/.phpbrew/php/5.4.20/var/db/xdebug.ini
          ~/.phpbrew/php/5.4.20/var/db/apc.ini
          ~/.phpbrew/php/5.4.20/var/db/memcache.ini
          等等...
          

          一鍵切換目錄

          切換至 PHP 編譯目錄:

          $ phpbrew build-dir

          切換至 PHP dist 目錄:

          $ phpbrew dist-dir

          切換至 PHP etc 目錄:

          $ phpbrew etc-dir

          切換至 PHP var 目錄:

          $ phpbrew var-dir

          PHP FPM

          phpbrew 內(nèi)置一些有用的命令用于管理 php-fpm。使用它們之前,請(qǐng)確認(rèn)在 PHP 編譯時(shí)啟用了 +fpm。

          啟動(dòng) php-fpm:

          $ phpbrew fpm start

          停止 php-fpm:

          $ phpbrew fpm stop

          列出 php-fpm 模塊:

          phpbrew fpm module

          測(cè)試 php-fpm 配置:

          phpbrew fpm test

          編輯 php-fpm 配置:

          phpbrew fpm config

          已安裝的 php-fpm 位于 ~/.phpbrew/php/php-*/sbin 目錄。

          對(duì)應(yīng)的 php-fpm.conf 文件位于 ~/.phpbrew/php/php-*/etc/php-fpm.conf.default 目錄。

          你可以把默認(rèn)配置復(fù)制到自定義路徑再使用,例如:

          cp -v ~/.phpbrew/php/php-*/etc/php-fpm.conf.default
              ~/.phpbrew/php/php-*/etc/php-fpm.conf
          
          php-fpm --php-ini {php config file} --fpm-config {fpm config file}
          

          安裝拓展應(yīng)用

          phpbrew 內(nèi)置了用來獲取部分 PHP 應(yīng)用的 app 命令。

          安裝 Composer

          $ phpbrew app get composer

          安裝 PHPUnit

          phpbrew app get phpunit

          啟用版本信息 Prompt

          使用"PHPBREW_SET_PROMPT=1"變量可將 PHP 版本信息加入 Shell Prompt。

          此變量默認(rèn)值為"PHPBREW_SET_PROMPT=0"(即禁用),將如下行加入~/.bashrc文件,確保其在source ~/.phpbrew/bashrc之前,即可啟用此功能:

          export PHPBREW_SET_PROMPT=1

          使用.phpbrew/bashrc內(nèi)定義的phpbrew_current_php_version函數(shù),可將版本信息嵌入到 Shell Prompt。你可以將版本信息設(shè)置到 PS1 變量內(nèi),例如:

          PS1=" \$(phpbrew_current_php_version) \$ "

          已知問題

          • 對(duì)于 PHP-5.3+ 版本,"Building intl 64-bit fails on OS X" https://bugs.php.net/bug.php?id=48795

          • 將 GD 擴(kuò)展編譯進(jìn) PHP,你需要指定 libpng 目錄、libjpeg 目錄,例如:

            $ phpbrew install php-5.4.10 +default +mysql +intl +gettext +apxs2=/usr/bin/apxs2 
            -- --with-libdir=lib/x86_64-linux-gnu 
            --with-gd=shared 
            --enable-gd-natf 
            --with-jpeg-dir=/usr 
            --with-png-dir=/usr

          故障排查

          請(qǐng)移步:TroubleShooting(英文)。

          常見問答

          Q: 如何使用不同的參數(shù)編譯相同 PHP 版本?

          A: 截至目前,你可以安裝 php-5.x.x 并重命名其目錄 /Users/phpbrew/.phpbrew/php/php-5.x.x(例如:php-5.x.x-super),并安裝另一個(gè) php5.x.x。

          瀏覽 18
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          評(píng)論
          圖片
          表情
          推薦
          點(diǎn)贊
          評(píng)論
          收藏
          分享

          手機(jī)掃一掃分享

          編輯 分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  国产一级a毛一级a看免费人交 | 日本女人毛片全网推荐免费看 | 无码人妻精品一区二区蜜桃色欲 | 99久99 | 人妻熟女视频 |