對原始碼現成PHP

2022-09-23 01:12:12 字數 1944 閱讀 2658

php擴充套件安裝

今天安裝zabbix,發現需要安裝一些外掛程式,而這些外掛程式並沒有安裝在原有的php上。

1、 以安裝ldap擴充套件為例:

zabbi顯示:

image.png

條件:已經原始碼安裝好了php

我這裡是使用oneinstack安裝的php,不影響主要是原始碼安裝

2、 檢視php版本

一定要檢視php版本然後再來安裝對於版本的php擴充套件,不然編譯會發生函式錯誤。

[root@ms-local-server php]# pwd

/usr/local/php

[root@ms-local-server php]# ./bin/php -version

php 5.5.38 (cli) (built: jun 1 2018 09:51:57)

copyright (c) 1997-2015 the php group

zend engine v2.5.0, copyright (c) 1998-2015 zend technologies

with the ioncube php loader (enabled) + intrusion protection from ioncube24.com (unconfigured) v10.0.0 (), copyright (c) 2002-2017, by ioncube ltd.

with zend opcache v7.0.6-dev, copyright (c) 1999-2015, by zend technologies

3、 解壓php包。

通過自己相對應的版本,我這裡是通過oneinstack安裝的,所以自帶有原始碼壓縮包

image.png

可以看到其裡面有很多的原始碼壓縮包。

解壓:[root@ms-local-server src]# tar -xf php-5.5.38.tar.gz

4、 安裝ldap的依賴包。

[root@ms-local-server src]#yum install openldap-deve openldap

5、 編譯安裝

image.png

6、 編譯出錯誤

configure: error: cannot find ldap libraries in /usr/lib

這個是沒有找到ldap的庫。

[root@ms-local-server src]#cp -frp /usr/lib64/libldap* /usr/lib/

7、 重新編譯安裝

[root@ms-local-server ldap]# ./configure --with-php-config=/usr/local/php/bin/php-config --with-ldap

[root@ms-local-server ldap]# make

image.png

[root@ms-local-server ldap]# make install

image.png

檢視外掛程式so檔案

[root@ms-local-server ldap]# ll /usr/local/php/lib/php/extensions/no-debug-non-zts-20121212/ | grep ldap

-rwxr-xr-x 1 root root 184944 dec 21 13:35 ldap.so

8、php.ini檔案新增擴充套件

[root@ms-local-server ldap]# vim /usr/local/php/etc/php.ini

新增extension=ldap.so

9、重啟讓擴充套件生效

image.png

10、檢視擴充套件是否已被安裝

image.png

可以發現擴充套件已經安裝完成了。

總結:以前安裝zabbix時,發現裝php外掛程式都是yum安裝的,沒有經歷過原始碼安裝,經過這次,倒是熟悉了。

php原始碼探索四 php擴充套件原始碼分析

1 最重要的entry 比如exif裡的 zend module entry exif module entry struct zend module entry 引數 描述 size,zend api,zend debug and zts 通常使用standard module header來填充...

php 原始碼結構

目錄結構 1.build 和編譯有關的目錄。2.ext 擴充套件庫 例如 mysql zlib iconv 等我們熟悉的擴充套件庫。3.main 主目錄。4.sapi 和各種伺服器的介面呼叫,例如apache iis等,也包含一般的fastcgi cgi等。5.win32 和 windows 下編譯...

PHP原始碼安裝

1.安裝libiconv tar zxvf libiconv 1.13.1.tar.gz cd libiconv 1.13.1 configure prefix usr local libiconv make make install 2.libmcrypt安裝 tar zxvf libmcrypt...