1. 程式人生 > >php-7.2.0原始碼安裝及擴充套件安裝

php-7.2.0原始碼安裝及擴充套件安裝

一、安裝環境
ubuntu 16.04


一、原始碼安裝前準備工作


1.1、下載原始碼
下載地址:http://www.php.net/downloads.php
可自行選擇版本,這裡我選擇的最新版本PHP 7.2.0,下載地址為:http://cn2.php.net/distributions/php-7.2.0.tar.gz
wget http://cn2.php.net/distributions/php-7.2.0.tar.gz

1.2、解壓
tar -zxvf php-7.2.0.tar.gz

1.3、準備安裝目標資料夾
mkdir /usr/local/php
注:也就是原始碼安裝的php到這個路徑中

二、編譯安裝
2.1、配置
cd cd php-7.2.0/


A、如果PHP搭配Apache使用,那麼配置如下
./configure --prefix=/usr/local/php \
--with-apxs2=/usr/local/apache2/bin/apxs


注:
/usr/local/apache2/bin/apxs,其中apxs是在安裝Apache時產生的,apxs是一個為Apache HTTP伺服器編譯和安裝擴充套件模組的工具,使之可以用由mod_so提供的LoadModule指令在執行時載入到Apache伺服器中


B、如果只是單獨安裝PHP以及MySQL的擴充套件,而不安裝MySQL服務,那麼需要新增下面的配置
--enable-sockets=shared  \
--with-pdo-mysql=shared,mysqlnd 或者 --with-mysql=shared,mysqlnd


此處可以選擇使用PHP的 mysql 還是 pdo 擴充套件,兩者選擇其一即可

C、啟動配置php-fpm

--enable-fpm

總結:執行A或者B此時可能出現錯誤
configure: error: xml2-config not found. Please check your libxml2 installation.
解決方法:
CentOS
yum install libxml2
yum install libxml2-devel


ubuntu:
apt-get install libxml2
apt-get install libxml2-dev


安裝成功後,重新執行上面的./configure命令




示例:我安裝的是不帶Apache 和 Mysql 伺服器,並且使用PDO擴充套件,那麼配置如下

./configure --prefix=/usr/local/php \
--enable-sockets=shared  \
--enable-fpm \
--with-pdo-mysql=shared,mysqlnd


2.2、編譯
make


2.3、測試
make test


2.4、安裝
make install


2.5、複製ini
cp /php-7.2.0/php.ini-development  /usr/local/php/lib/php.ini
    把原來位於原始碼裡面的php.ini-development拷貝到/usr/local/php/lib/php.ini下,並且重新命名為php.ini

三、把php加入到系統環境變數
echo "export PATH=$PATH:/usr/local/php/bin/php"  >> /etc/profile
source /etc/profile


四、檢視php版本
/usr/local/php/bin/php --version

五、安裝擴充套件
首先,請確保已經安裝了autoconf,如未安裝,請執行apt-get install autoconf
編譯完成之後,將會自動把mysql.so放到了預設的php擴充套件目錄下(phpinfo可檢視,我的為 /usr/local/php/lib/php/extensions/no-debug-zts-20090626),再修改php.ini
修改php.ini,新增一句extension=mbstring.so


5.1、mbstring擴充套件
1、進入原始碼mbstring資料夾
cd /php-7.2.0/ext/mbstring
2、執行生成configure(假設php安裝在/usr/local/php目錄下)
/usr/local/php/bin/phpize 
3、生成makefile檔案
./configure --with-php-config=/usr/local/php/bin/php-config
4、編譯&安裝
make && make install

5.2、pdo_mysql擴充套件
1、進入原始碼pdo_mysql資料夾
cd /php-7.2.0/ext/pdo_mysql
2、執行生成configure(假設php安裝在/usr/local/php目錄下)
/usr/local/php/bin/phpize 
3、生成makefile檔案
./configure --with-php-config=/usr/local/php/bin/php-config
假如你在本地安裝了mysql服務,那麼需執行下面命令
./configure --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql/
4、編譯&安裝
make && make install
5、修改php.ini,新增一句extension=pdo_mysql.so

5.3、zlib擴充套件
此擴充套件進入原始碼/php-7.2.0/ext/zlib安裝會出錯,因此先執行下面語句
1、 http://www.zlib.net/下載zlib原始碼
wget http://www.zlib.net/zlib-1.2.11.tar.gz
2、解壓,配置,編譯,安裝
tar -zxvf zlib-1.2.11.tar.gz
cd zlib-1.2.11/
./configure --prefix=/usr/local/zlib
make && make install
3、重新配置、編譯、安裝PHP,增加引數--with-zlib-dir=/usr/local/zlib
./configure --prefix=/usr/local/php \
--enable-sockets=shared  \
--with-pdo-mysql=shared,mysqlnd \
--with-zlib-dir=/usr/local/zlib 

5.4、curl擴充套件
方法一:
1、去網站 http://curl.haxx.se/download/ 
下載libcurl原始碼。我用的版本是curl-7.28.0.tar.gz
    2、解壓,配置,編譯,安裝
tar -zxvf curl-7.28.0.tar.gz
cd usr/src/curl-7.28.0
./configure --prefix=/usr/local/curl;
make && make install
   (3)重新編譯php,增加引數--with-curl=/usr/local/curl
./configure --prefix=/usr/local/php \
--enable-sockets=shared  \
--with-pdo-mysql=shared,mysqlnd \
--with-zlib-dir=/usr/local/zlib  \
--with-curl=/usr/local/curl

方法二:
1、安裝apt-get install libcurl4-gnutls-dev,如果出錯,請先apt-get update
2、進入原始碼curl資料夾
cd /php-7.2.0/ext/curl
3、執行生成configure(假設php安裝在/usr/local/php目錄下)
/usr/local/php/bin/phpize 
4、生成makefile檔案
./configure --with-php-config=/usr/local/php/bin/php-config
5、編譯&安裝
make && make install
6、修改php.ini,新增一句extension=curl.so

5.5、pcntl擴充套件
1、進入原始碼pcntl資料夾
cd /php-7.2.0/ext/pcntl
2、執行生成configure(假設php安裝在/usr/local/php目錄下)
/usr/local/php/bin/phpize 
3、生成makefile檔案
./configure --with-php-config=/usr/local/php/bin/php-config
4、編譯&安裝
make && make install
5、修改php.ini,新增一句extension=pcntl.so

5.6、libevent/event 擴充套件
由於PHP5.7以後只支援event,因此我安裝的event,但是libevent的安裝方法和event方法一樣
擴充套件依賴於原始的libevent庫,必須先把libevent庫安裝
1)、安裝libevent庫(http://libevent.org/)
1. wget https://github.com/libevent/libevent/releases/download/release-2.1.8-stable/libevent-2.1.8-stable.tar.gz
2. tar -zxvf libevent-2.1.8-stable.tar.gz
3. cd libevent-2.1.8-stable/
4. ./configure --prefix=/usr/local/libevent-2.1.8/
5. make && make install
2)、安裝event擴充套件(http://pecl.php.net/package/event)
1、wget http://pecl.php.net/get/event-2.3.0.tgz
2、tar -zxvf event-2.3.0.tgz 
3、cd event-2.3.0/
4、/usr/local/php/bin/phpize 
5、./configure --with-php-config=/usr/local/php/bin/php-config --with-event-libevent-dir=/usr/local/libevent-2.1.8/
如果是libevent
./configure --with-php-config=/usr/local/php/bin/php-config --with-libevent=/usr/local/libevent-2.1.8/
6、make && make install

注:此處安裝可能遇到的問題及解決方案
問題1:configure: error: Cannot find OpenSSL's <evp.h>
解決方案:apt-get install libssl-dev

問題2:configure: error: Cannot find OpenSSL's libraries
解決方案:
find / -name libssl.so
輸出結果為:/usr/lib/x86_64-linux-gnu/libssl.so
初步判斷它可能只會在 /usr/lib/ 下尋找 libssl.so 檔案,於是:
ln -s/usr/lib/x86_64-linux-gnu/libssl.so /usr/lib
重新編譯安裝即通過。

5.7、redis擴充套件(phpredis)
1、下載原始碼https://github.com/phpredis/phpredis/releases
wget https://github.com/phpredis/phpredis/archive/3.1.4.tar.gz
2、mv 3.1.4.tar.gz phpredis.tar.gz
3、tar -zxvf phpredis.tar.gz
4、cd phpredis-3.1.4/
5、/usr/local/php/bin/phpize 
6、./configure --with-php-config=/usr/local/php/bin/php-config
7、 make && make install 

5.8、openssl擴充套件
1、進入原始碼openssl資料夾
cd /php-7.2.0/ext/openssl
2、執行生成configure(假設php安裝在/usr/local/php目錄下)
cp config0.m4 config.m4
/usr/local/php/bin/phpize 
3、生成makefile檔案
./configure --with-php-config=/usr/local/php/bin/php-config
4、編譯&安裝
make && make install

注:此處安裝可能遇到的問題及解決方案
問題1:configure: error: Cannot find OpenSSL's <evp.h>
解決方案:apt-get install libssl-dev

問題2:configure: error: Cannot find OpenSSL's libraries
解決方案:
find / -name libssl.so
輸出結果為:/usr/lib/x86_64-linux-gnu/libssl.so
初步判斷它可能只會在 /usr/lib/ 下尋找 libssl.so 檔案,於是:
ln -s/usr/lib/x86_64-linux-gnu/libssl.so /usr/lib
重新編譯安裝即通過。

相關推薦

php-7.2.0原始碼安裝擴充套件安裝

一、安裝環境ubuntu 16.04 一、原始碼安裝前準備工作 1.1、下載原始碼下載地址:http://www.php.net/downloads.php可自行選擇版本,這裡我選擇的最新版本PHP 7.2.0,下載地址為:http://cn2.php.net/distri

Ubuntu16.04.05 + PHP 7.2.6 擴充套件安裝

N1:CURL # sudo su # cd # wget https://curl.haxx.se/download/curl-7.61.0.tar.gz # tar -zxvf curl-7.61.0.tar.gz # cd curl-7.61.0 # ./configure --p

轉載--php 7.2 安裝 mcrypt 擴充套件 php 7.2 安裝 mcrypt 擴充套件

在 php 官網下載 mcrypt 包,php 擴充套件官網 # wget http://pecl.php.net/get/mcrypt-1.0.1.tgz # tar xf mcrypt-1.0.1.tgz # cd mcrypt-1.0.1 編譯安裝

Docker 基於 php:7.2-apache 搭建 ECTouch 網站, mysqli 擴充套件開啟方法

下載原始碼 https://www.ectouch.cn/ 下載 解壓至主機資料夾:/var/www/ectouch docker 構建 php:7.2-apache 容器 docker run -d -p 8882:80 --name ectou

Docker 基於 php:7.2-apache 搭建微擎網站, GD 擴充套件開啟方法

下載微擎原始碼 http://s.we7.cc/store-static-install.html 下載穩定離線版本 解壓至資料夾:/var/www/we7_test/web docker 構建 php:7.2-apache 容器 docker r

php.7.2.8安裝mongodb redis memcached擴充套件_2018_lcf

下載安裝包: redis-4.1.1.tgz    mongodb-1.3.4.tgz libmemcached-0.42.tar.gz  libevent-2.0.21-stable.tar.gz 1 . 安裝mongodb擴充套件 # tar -xf mong

php 7.2 編譯安裝

腳本 127.0.0.1 start mod sasl lda crypt children 路徑 yum -y install libxml2 libxml2-devel openssl openssl-devel curl-devel libjpeg-devel lib

PHP 7.2.10 編譯安裝

ech ssi bug exif freetype ati rpath sco nts 準備環境 1.CentOS 系統 [root@test3 ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core)

CentOS7 編譯安裝 php 7.2.9 , swoole

CentOS7 編譯安裝 php 7.2.9 , swoole php.net 下載最新版原始碼 將壓縮包丟入伺服器中 (/home/work) 字尾名為 tar.bz2 解壓縮方式為 tar -xjvf (php).tar.bz 如出現此錯誤

ECS裡Centos7.2下編譯安裝PHP-7.2.11(PHP-FPM)

centos7下編譯安裝php-7.2.11(PHP-FPM) 一、下載php7原始碼包 1 http://php.net/downloads.php 如:php-7.2.11.tar.gz 二、安裝所需依賴 > yu

阿里雲php-7.2.12 安裝

安裝依賴 yum -y install libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel mysql pcre-devel      

CentOS 7.5 編譯安裝 PHP 7.2.10

文章目錄 安裝環境 建立`PHP`安裝目錄、建立使用者和目錄 安裝依賴庫 建立家目錄存放軟體包目錄 下載解壓原始碼包 下載並安裝php依賴 編譯php 7.2

PHP 7.3.0, 7.2.13, 7.1.25, 7.0.33 和 5.6.39 釋出

   PHP 開發團隊同時釋出了五個版本:7.3.0、7.2.13、7.1.25、7.0.33 和 5.6.39 。 PHP 7.3.0 Released PHP 7.0.33 Released PHP 7.1.25 Released PHP 7.2.13 Relea

XAMPP with PHP 7.3.0, 7.2.13, 7.1.25, 7.0.33 & 5.6.39 釋出

   XAMPP 更新啦!官方為所有平臺釋出了支援最新 PHP 系列的 XAMPP 新版本,其中包括 PHP 7.3.0, 7.2.13, 7.1.25, 7.0.33 & 5.6.39。 新版本的 PHP(7.3.0) 提供了許多改進和新功能,如 Flexible H

spark2.2.0 原始碼編譯安裝

1. Spark概述     Spark 是一個用來實現快速而通用的叢集計算的平臺。     在速度方面,Spark 擴充套件了廣泛使用的 MapReduce 計算模型,而且高效地支援更多計算模式,包括互動式查詢和流處理。 在處理大規模資料集時,速度是非常重要的。速度快就意

Ubuntu下gcc 8.2.0原始碼安裝

gcc 8.2.0 原始碼安裝 下載原始碼並解壓: wget http://ftp.tsukuba.wide.ad.jp/software/gcc/releases/gcc-8.2.0/gcc-8.2.0.tar.gz tar xzvf gcc-8.2.0.ta

php 7.2 mysql 8.0 配置備忘

閒著沒事,倒騰了一下最新版本的 環境搭配 iis php mysql wordpress Warning: mysqli::__construct(): Unexpected server respose while doing caching_sha2 auth: 109

CentOS Linux release 7.4.1708 編譯安裝 gcc 7.2.0

昨天在 VMware 14 上裝了 CentOS,準備用來學習 C 語言,然後要是使用 yum groupinstall Development tools 安裝整組開發工具 (包含 gcc) 的話,gcc 的版本太低了,所以就選擇下載最新版的 gc

安裝PHP-7.2

前言 PHP只是一個平臺解析環境,用於解析執行PHP語言程式碼編寫出來的PHP指令碼程式。 系統環境 CentOS Linux release 7.3.1611 開始安裝 一、基礎網路配置 配置一個靜態IP,關閉防火牆、SeLinux #

SecureCRT 7.2.0 Mac版密碼無法保存的解決辦法

路徑 -c 有變 都是 item use text 菜單 exp 參考:http://jingyan.baidu.com/article/915fc414fda5fb51394b20bd.html 我之前在網上找的解決辦法都是SecureCRT 7.2.0 Mac 之