部署提示不支援curl
阿新 • • 發佈:2018-11-27
1. curl下載:http://curl.haxx.se/download.html 2. wget http://curl.haxx.se/download/curl-7.32.0.tar.gz tar zxvf curl-7.32.0.tar.gz //解壓檔案 cd curl-7.32.0 ./configure --prefix=/usr/local/curl 3. cd /(php原始碼目錄,不是php編譯目錄/ext/curl 執行phpize: /(php編譯目錄)/bin/phpize ./configure --with-php-config=/(php編譯目錄)/bin/php-config --with-curl=/(curl原始碼目錄) make && make install 修改php.ini,增加:extension=curl.so(如果沒有安裝過其他php擴充套件,則需要同時配置extension_dir="/(php編譯後目錄)/lib/php/extensions/no-debug-non-zts-20121212/",上一個步驟生成.so檔案的時候,會輸出extension_dir目錄) 4. 檢驗是否安裝成功: /(php編譯後目錄)/bin/php -m | grep curl ——正常列印curl,則表示安裝成功(php -m會打印出已安裝的擴充套件模組) 踩過的坑:(1)直接在curl的原始碼目錄最上層,執行phpize,提示如下錯誤:Cannot find config.m4. Make sure that you run '/home/zhuyx/local/php-5.5.3/bin/phpize' in the top level source directory of the module 原因: phpize擴充套件安裝,源包需要有config.m4這個配置檔案;當前擴充套件的原始碼包不包含(memcache的就包含)。 解決方法:(1)進入php原始碼包的 ext/curl 下面執行phpize,再進行安裝(2)./configure --with-php-config=/php編譯後目錄/bin/php-config --with-curl=curl原始碼目錄 問題擴充套件: 安裝其他的php擴充套件的時候,遇到類似問題,都可以採取上述解決方案。 (2)關於php.ini 樓主一開始修改的是 php編譯後目錄/lib/php.ini 這個檔案,修改之後新增模組並不生效。後來才知道,前面這個是預設(編譯時候不指定)的擴充套件配置目錄,如果編譯的時候指定了php.ini的目錄,以後都需要修改指定目錄下的php.ini,例如樓主的是 php編譯後目錄/php.ini 。 (3)呼叫curl()的php指令碼,命令列可以執行,瀏覽器訪問提示如下錯誤: Fatal Error:Call to undefined function curl() 原因: 樓主的伺服器是nginx,安裝了curl擴充套件後,沒有重啟php-fpm導致。 解決方法: 重啟php-fpm. ps aux | grep php-fpm (找到master程序) kill -SIGINT master程序 進入php-5.5.3/sbin,執行 ./php-fpm(啟動) 以上是Linux centos7 php7 編譯安裝 php 擴充套件包 curl的內容,更多 編譯 擴充套件 centos7 安裝 Linux PHP7 curl php 的內容,請您使用右上方搜尋功能獲取相關資訊。 錯誤 Loaded Configuration File (none) //載入模組 配置檔案不生效 解決辦法:strace /usr/local/php/bin/php -i 2> /tmp/1.log grep 'php.ini' /tmp/1.log open("/usr/local/php/bin/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) open("/usr/local/php/lib/php.ini", O_RDONLY) = -1 ENOENT (No such file or directory) write(1, "Configuration File (php.ini) Pat"..., 33) = 33 php.ini 拷貝至/usr/local/php/bin/ 但這樣之後phpinfo檢測不到curl 將配置檔案拷貝指定的目錄正常