簡體   English   中英

安裝GD后imageantialias調用未定義函數錯誤

[英]imageantialias call to undefined function error with GD installed

我需要有關PHP腳本的幫助。 這是已實施到網站中的CMS。 嘗試添加新產品IMAGE或嘗試編輯當前圖像時,出現以下錯誤:

致命錯誤:在第233行的/home/mounts/home/m/mclh/web/admin/library/functions.php中調用未定義的函數imageantialias()

這是我在那方面的代碼:

   if ($tmpDest['extension'] == "gif" || $tmpDest['extension'] == "jpg")
    {
       $destFile  = substr_replace($destFile, 'jpg', -3);
       $dest      = imagecreatetruecolor($w, $h);
       imageantialias($dest, TRUE);
    } elseif ($tmpDest['extension'] == "png") {
       $dest = imagecreatetruecolor($w, $h);
       imageantialias($dest, TRUE);
    } else {
      return false;
    }

233行是第五行。

更新 :看來功能imageantialias()如果PHP編譯GD,所以它是不夠的,必須通過擴展文件包括擴展才可用。

PHP手冊

注意:僅當PHP與GD庫的捆綁版本一起編譯時,此功能才可用。

請檢查您的phpinfo() ,看看是否在其中找到了--with-gd=shared標志(或類似的標志,也許只是--with-gd )。 如果找不到它,則必須使用此標志重新編譯您的PHP。

詳細信息:可以通過php.ini通過包含.dll(Windows)或.so(Unix)文件來加載PHP擴展,也可以使用PHP對其進行編譯。 編譯聽起來很嚇人,但實際上確實很容易。 您需要做的(Unix)是:

  1. 復制您的phpinfo()中顯示的編譯字符串
  2. 添加所需的新標志
    • ./configure ... phpinfo中的所有內容以及新標記
    • 弄干凈
    • 使
    • 進行安裝
  3. 看看你的phpinfo()和微笑:)

第一個答案(未證明是正確的):

imageantialias()PHP GD擴展的功能 GD是否已安裝並正確配置?

從您的代碼看來,GD已安裝,因為imagecreatetruecolor()也是GD函數,並且似乎可以正常工作。 得出的結論是您使用的是PHP 4.3.2之前的版本,該版本不支持imageantialias()

請查看您的phpinfo()以查看我的結論是否正確。 在那里,您將看到正在使用的PHP版本,並且還將看到GD是否已安裝並正常工作!

這是您問題的解決方法,只需下載rpm,從此處解壓縮gd-bundled.so,然后將其替換為原始gd.so。

出於安全考慮,Debian / Ubuntu PHP似乎沒有將GD庫與其捆綁在一起。 您必須重新編譯PHP,並遵循有關Debian / Ubuntu的逐步幫助指南: http : //www.maxiwebs.co.uk/gd-bundled/compilation.php

打開一個終端。 通過鍵入su成為root用戶,並在出現提示時輸入您的root密碼。

下載一些安裝所需的軟件包。 輸入apt-get install build-essential debhelper fakeroot dpkg-dev mysql-server。 當MySQL安裝程序要求輸入root密碼時,請考慮一個密碼,然后確保密碼安全。 將當前目錄更改為源目錄。 cd / usr / src。

通過鍵入apt-get source php5下載PHP 5源代碼。 我們還需要PHP 5依賴項。 要下載這些文件,請輸入apt-get build-dep php5。

進入下載的PHP目錄。 cd php5-XXXX。 鍵入php5-后,只需按即可完成文件夾名稱。

現在,我們需要編輯一個配置文件,以將其更改為GD的捆綁版本。 輸入nano debian / rules。

找到顯示--with-gd = shared,/ usr --enable-gd-native-ttf \\的行,並通過刪除,/將其更改為--with-gd = shared --enable-gd-native-ttf \\ usr。 (按ctrl + w可以找到某些內容,如果您搜索gd,它就在第二次出現附近)。 要保存文件,我們需要按ctrl + x,然后按y,然后輸入。

現在我們需要編輯MySQL設置文件。 鍵入nano debian / setup-mysql.sh。 注意:如果此文件不存在,請放心,您可以跳過步驟10和11。

找到$ mysqld> $ datadir / run.log 2>&1&行,然后將--user = root添加到$ mysqld --user = root> $ datadir / run.log 2>&1&行。 要保存文件,我們需要按ctrl + x,然后按y,然后輸入。

現在我們完成設置,現在需要對其進行編譯。 輸入dpkg-buildpackage -rfakeroot,或者,如果您使用的是Ubuntu 11.10,則應輸入dpkg-buildpackage -d,這將需要一些時間。

完成后,您應在父目錄中加載.deb文件。 找到以php5-gd開頭的一個。

雙擊安裝它,或在終端上鍵入dpkg -i php5-gdXXXXXXX,只需在鍵入php5-gd完成文件名后按即可。

現在,我們需要通過拿着軟件包來停止將常規的非捆綁版本替換為閃亮的新GD庫的更新。 運行以下命令:apt-get install wajig。 對安裝說是。

安裝后,輸入以下內容:wajig hold php5-gd。

恭喜你! 現在,您已經安裝了GD Library的捆綁版本,現在就開始吧!

根據PHP手冊的PHP版本7.2.0的變更日志

imageantialias()現在普遍可用。 以前,僅當PHP是使用GD庫的捆綁版本編譯的時才可用。

因此,有一些解決方案。

此功能是GD庫的一部分。 該庫可能未安裝在您的PHP環境中。

可以在以下位置找到有關如何包含GD的詳細信息: http : //www.php.net/manual/en/image.installation.php

這意味着您拼寫了imageantialias()函數錯誤,或者您尚未在代碼中定義該函數,或者該函數所屬的第三方代碼未包含在當前文檔中。

更新:已安裝GD。 這是一個謎。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM