單獨編譯安裝php的mysqli,pdo_mysql,mysqlnd擴充套件
首先安裝mysqli擴充套件
cd /usr/local/src/php-7.17/ext/
cd mysqli
/usr/local/php/bin/phpize
./configure --prefix=/usr/local/related/mysqli --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config
make時提示這個錯誤:
/usr/local/src/php-7.1.7/ext/mysqli/mysqli_api.c:36:47: 致命錯誤:ext/mysqlnd/mysql_float_to_double.h:沒有那個檔案或目錄
#include "ext/mysqlnd/mysql_float_to_double.h"
這是因為當前是在mysqli這個目錄下進行的編譯,這個目錄下是肯定沒有ext/mysqlnd/mysql_float_to_double.h這個目錄及檔案的,知道了問題的原因那麼解決就簡單了
cd /usr/local/src/php-7.17
在這個目錄下從新編譯安裝即可:
./ext/mysqli/configure --prefix=/usr/local/related/mysqli --with-php-config=/usr/local/php/bin/php-config --with-mysqli=/usr/local/mysql/bin/mysql_config
make && make install
此外還有兩種解決方案:
1,
/usr/local/src/php-7.17/ext/mysqli
# vi mysqli_api.c
把第36行的
#include "ext/mysqlnd/mysql_float_to_double.h"
修改為
#include "/usr/local/src/php-7.17/ext/mysqlnd/mysql_float_to_double.h"
2,
,ln -s mysql/include/* usr/include
ln -s php/include/* usr/include
當成功後會如下:
[
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
Installing header files: /usr/local/php/include/php/
然後ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
[[email protected] php-7.1.7]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
mysqli.so opcache.a opcache.so
就看到mysqli.so
然後開啟php.ini
增加:extension=mysqli.so
然後編輯php.ini
extension=mysqli.so
重啟php-fpm
service php-fpm restart
make時如果提示:
Cannot find autoconf. Please check your autoconf installation and the
$PHP_AUTOCONF environment variable. Then, rerun this script.
則說明沒有安裝antoconf,安裝即可:
cd /usr/local/src
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.62.tar.gz
# tar -zvxf autoconf-2.62.tar.gz
# cd autoconf-2.62/
# ./configure --prefix=/usr/local/related/autoconf M4=/usr/local/related/m4/bin/m4 --如果不指定M4的地址,那麼需要把M4的bin目錄加入環境變數/etc/profile
make && make install
然後將autoconf/bin加入到環境變數再次執行/usr/local/php/bin/phpize就可以生成configure安裝檔案了
如果沒安裝m4則checking for GNU M4 that supports accurate traces... configure: error: no acceptable m4 could be found in $PATH.
GNU M4 1.4.5 or later is required; 1.4.11 is recommended
:
# cd /usr/local/src
# wget http://ftp.gnu.org/gnu/m4/m4-1.4.9.tar.gz
# tar -zvxf m4-1.4.9.tar.gz
# cd m4-1.4.9/
# ./configure --prefix=/usr/local/related/m4
make && make install
或者yum安裝這兩個檔案
yum install m4
yum install autoconf
二,
安裝PDO擴充套件
cd /usr/local/src/php-7.1.7/ext
cd pdo_mysql
因為新開了一個xshell視窗,所以重新source /etc/profile,這是因為在其他視窗將autoconf新增到的環境變數,在這個視窗無法使用
然後/usr/local/php/bin/phpize 生成configure 檔案
./configure --prefix=/usr/local/related/pdo_mysql --with-php-config=/usr/local/php/bin/php-config --with-pdo-mysql=/usr/local/mysql --這裡與安裝mysqli稍有不同,mysqli需要mysql_config的目錄,而PDO只指向mysql安裝目錄即可
make && make install
成功後:
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
ls一下:
[
mysqli.so opcache.a opcache.so pdo_mysql.so
然後編輯php.ini
extension=pdo_mysql.so
重啟php-fpm
service php-fpm restart
三,
安裝mysqlnd 擴充套件
cp config9.m4 config.m4
./configure --prefix=/usr/local/related/mysqlnd
checking for pkg-config... /usr/bin/pkg-config
configure: error: Cannot find OpenSSL's <evp.h>
解決:
export PHP_OPENSSL_DIR=yes
./configure --prefix=/usr/local/related/mysqlnd --with-openssl-dir=
checking for CRYPTO_free in -lcrypto... no
configure: error: libcrypto not found!
其實第一步不需要解決(configure: error: Cannot find OpenSSL's <evp.h>)最終還是如下解決:
./configure --prefix=/usr/local/related/mysqlnd LDFLAGS=-L/usr/local/related/openssl/lib
所以還是需要看./configure --help
LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a
nonstandard directory <lib dir>
LIBS libraries to pass to the linker, e.g. -l<library>
應該是把LIBS 與 LDFLAGS弄混了
應該用LDFLAGS來指定未按標準安裝(也就是預設路徑安裝)的軟體的庫位置
最後:
make && make install
[
Installing shared extensions: /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
Installing header files: /usr/local/php/include/php/
ls 看下:
[[email protected] mysqlnd]# ls /usr/local/php/lib/php/extensions/no-debug-non-zts-20160303/
mysqli.so mysqlnd.so opcache.a opcache.so pdo_mysql.so
同樣修改php.ini即可
extension=mysqlnd.so
重啟php-fpm
service php-fpm restart
因為mysqlnd並不是一個php的擴充套件,所以會報錯:
NOTICE: PHP message: PHP Warning: PHP Startup: Invalid library (maybe not a PHP library) 'mysqlnd.so' in Unknown on line 0
最後猜測這個mysqlnd不用安裝也行,只要在php.ini裡指定好mysql.sock的位置即可:大約在1023行
pdo_mysql.default_socket=/usr/local/mysql/mysql.sock
當然還有mysqi的,大約在1173行
mysqli.default_socket =/usr/local/mysql/mysql.sock
這樣php即可與mysql進行通訊
相關推薦
CentOS單獨編譯安裝PHP gd庫擴充套件
先安裝 gd 前置庫 : freetype ,jpegsrc,libpng。 1. freetype 2 tar jxvf freetype-2.4.0.tar.bz2 3
單獨編譯安裝php的mysqli,pdo_mysql,mysqlnd擴充套件
首先安裝mysqli擴充套件 cd /usr/local/src/php-7.17/ext/ cd mysqli /usr/local/php/bin/phpize ./configure --prefix=/usr/local/related/mysqli --with-p
CentOS6.8單獨編譯安裝PHP gd庫擴展
發現 config 技術 ack 找到 接下來 修改 國內 usr # PHP-GD安裝 #在安裝之前可以先更新一下yum源,可以使用國內的阿裏雲源 yum -y install libjpeg-turbo-devel yum -y install freetype-dev
單獨編譯安裝gd庫
我的php是採用原始碼編譯的, 先安裝 gd 前置庫 : freetype ,jpegsrc,libpng。 1.freetype wget http://downloads.sourceforge.net/freetype/freetype-2.7.1.tar.bz2
php7 contOS 編譯安裝全部自帶擴充套件
1. 安裝依賴庫 yum install screen gcc git vim wget openssl curl yum install gmp-devel libc-client-devel bzip2-devel enchant-devel libwebp-deve
centos7下用核心原始碼單獨編譯安裝KVM模組
準備:linux系統版本:CentOS-7-x86_64-DVD-1708 (其他系統也可以,核心版本對應就行) 核心版本3.10.0-693.el7.x86_64 1、官網獲取相應版本的核心原始碼,連結:http://vault.centos.org/。
編譯安裝的php 安裝pdo_mysql擴充套件
1.進入擴充套件目錄 如果還未下載: a. 下載 檔案 wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgz b. 解壓檔案 tar zxvf PDO_MYSQL-1.0.2.tgz cd PDO_MYSQL
: 擴充套件的幾個應用 釋出網路YUM源 vim編輯技巧 原始碼編譯安裝 systemctl控制 總結和答疑
Top NSD SERVICES DAY01 案例1:補充應用技巧 案例2:軟連線與硬連線 案例3:man手冊、zip備份 案例4:自定義yum軟體倉庫 案例5:釋出及測試yum倉庫 案例6:vim效率操作 案例7:編譯安裝軟體包 案例8:使用
擴充套件的幾個應用 釋出網路YUM源 vim編輯技巧 原始碼編譯安裝 systemctl控制 總結和答疑
Top NSD SERVICES DAY01 案例1:補充應用技巧 案例2:軟連線與硬連線 案例3:man手冊、zip備份 案例4:自定義yum軟體倉庫 案例5:釋出及測試yum倉庫 案例6:vim效率操作 案例7:編譯安裝軟體包 案例8:使用
編譯安裝PHP7及擴充套件
一、編譯安裝PHP 1. 下載原始碼包並解壓 原始碼包地址:http://php.net/downloads.php 下載原始碼包 當前PHP最新本門是7.2.9,下載 php-7.2.9 原始碼包 wget http://be2.php.net/get/php-7.2.9.tar.gz/from
基於docker映象php5.6安裝 mcrypt pdo_mysql gd redis擴充套件
FROM php:5.6.37-fpm-alpine3.7 RUN sed -i 's/dl-cdn.alpinelinux.org/mirrors.aliyun.com/g' /etc/apk/repositories \ && apk update \ &am
linux下編譯安裝最新版phalcon centos下PHP7新增phalcon擴充套件
linux下編譯安裝phalcon 1、下載原始碼包 執行命令: git clone --depth=1 git://github.com/phalcon/cphalcon.git 進入目錄 執行命令:  
docker環境下 php手動編譯安裝擴充套件 bcmath
網上找了好多apt-get的命令 都無效 只能手動編譯安裝嘍 首先 進入docker 專案 docker exec -it 專案名稱 bash 在根目錄下 git下php所有版本 然後切換到指定版本(我的7.2.7版本) http://php.
centos原始碼編譯安裝ImageMagick 和php-imagick擴充套件
1.下載安裝ImageMagick wget ftp://mirror.aarnet.edu.au/pub/imagemagick/ImageMagick-6.6.8-10.tar.gz tar -xzvf ImageMagick-6.6.8-10.tar.gz ./config
swoole1-編譯安裝swoole擴充套件
第一步搭建php環境 比較推薦oneinstack互動安裝,具體請參考右邊連結. https://oneinstack.com/install/ 第二步安裝swoole擴充套件 (1)linux下載swoole wget http://pecl.php.net/get/s
Centos 下編譯安裝fileinfo擴充套件
1.檢視當前環境是否安裝fileinfo擴充套件 php -i | grep fileinfo 若出現 fileinfo fileinfo support => enabled 則代表fileinfo擴充套件可用,否則不可用。 2.檢視當前php版本 ph
Windows 10 安裝PostgreSQL 資料庫 plpgsql_check擴充套件(原始碼編譯)
前言 之前的部落格記錄了Linux CentOS 7 PostgreSQL 10 安裝plpgsql_check擴充套件(原始碼編譯),本文記錄 win10 64位 下安裝 PostgreSQL 擴充套件外掛plpgsql_check,支援PG9.2以上版本,目前測試通過9
mac 編譯安裝php-ampq擴充套件的步驟與遇到的坑
安裝rabbitmq-c-0.8.0 rabbitmq-c是一個用於C語言的,與AMQP server進行互動的client庫。 AMQP擴充套件能夠支援rabbitMQ,AMQP是rabbitMQ的協議(Advanced Message Queue
編譯安裝php-amq擴充套件
用途:這個擴充套件是用來操作rabbitmq服務端的 一、安裝總括 1、編譯安裝librabbitmq庫 這是一個開源c語言的庫。用來與rabbitmq進行通訊 而php的php-amqp擴充套件就是使用這個庫與服務端通訊。所以必須先安裝這個開源庫。 下載地址:https
phpize編譯安裝php擴充套件的時候出現Cannot find autoconf. Please check your autoconf installation and the 的解決方法
今天在mac環境下安裝PHP擴充套件框架Yaf,在編譯安裝框架的時候出現如下錯誤:Configuring for: PHP Api Version: 20151012 Zend Module Api No: 20151012 Zend Extensi