【问题标题】:GD library in a local instance of PHP running from Netbeans with xdebug使用 xdebug 从 Netbeans 运行的本地 PHP 实例中的 GD 库
【发布时间】:2016-05-09 00:22:07
【问题描述】:

通常我使用 Unix Apache htdocs 目录下的文本编辑器开发 PHP 网站,而使用 GD 库的网站只是“开箱即用”。

但是对于这个新客户,我被告知要使用他们现有的基础架构和 Netbeans 作为在没有 Apache 的 Windows 机器上运行 PHP 本地的 IDE。该站点最终将部署在正常的 Apache/PHP 环境下,它可以正常工作。

除了 GD 库(在 php.ini 中启用)无法正常工作外,几乎所有东西在本地都可以正常工作。使用 GD 的代码失败并出现此错误:

Fatal error: Uncaught Error: Call to undefined function imagecreate() 

当我在命令行执行这个文件时:

<?php //session_start();
print_r(get_loaded_extensions());
?>

它的输出包含 GD 模块,所以它应该可以在代码中使用:

C:\Program Files\PHP>php 1.php
Array
(
    [0] => Core
    [1] => bcmath
    [2] => calendar
    [3] => ctype
    [4] => date
    [5] => filter
    [6] => hash
    [7] => iconv
    [8] => json
    [9] => mcrypt
    [10] => SPL
    [11] => pcre
    [12] => Reflection
    [13] => session
    [14] => standard
    [15] => mysqlnd
    [16] => tokenizer
    [17] => zip
    [18] => zlib
    [19] => libxml
    [20] => dom
    [21] => PDO
    [22] => bz2
    [23] => SimpleXML
    [24] => xml
    [25] => wddx
    [26] => xmlreader
    [27] => xmlwriter
    [28] => openssl
    [29] => curl
    [30] => fileinfo
    [31] => gd
    [32] => gettext
    [33] => gmp
    [34] => intl
    [35] => mbstring
    [36] => exif
    [37] => mysqli
    [38] => Phar
    [39] => pdo_mysql
    [40] => PDO_ODBC
    [41] => pdo_sqlite
    [42] => soap
    [43] => sockets
    [44] => sqlite3
    [45] => tidy
    [46] => xmlrpc
    [47] => xsl
    [48] => xdebug
)

但是当我在 PHP 页面中使用相同的函数时,它不包含那么多扩展:

Array ( [0] => Core [1] => bcmath [2] => calendar [3] => ctype [4] => date [5] => filter [6] => hash [7] => iconv [8] => json [9] => mcrypt [10] => SPL [11] => pcre [12] => Reflection [13] => session [14] => standard [15] => mysqlnd [16] => tokenizer [17] => zip [18] => zlib [19] => libxml [20] => dom [21] => PDO [22] => Phar [23] => SimpleXML [24] => xml [25] => wddx [26] => xmlreader [27] => xmlwriter [28] => cli_server [29] => xdebug ) 

这是否意味着php.ini 中的某些内容是错误的,PHP 可以在命令行上运行,但不能来自 Netbeans?

如何在这个本地环境中启用 GD 库?

【问题讨论】:

  • 检查 netbeans 正在使用的 php.ini 文件并确保那里启用了 GD 扩展。
  • 比较php --ini在命令行的输出和phpinfo()在网页中的输出。您可能会发现正在使用不同的 INI 文件。
  • 在这两种情况下,它都是相同的 INI。但是机器在一夜之间重新启动,现在一切正常。不知道它是什么以及为什么。

标签: php gd netbeans-8


【解决方案1】:

我仍然不明白发生了什么,但是在重新启动开发机器后,一切都突然起作用了。 GD 库已加载并且工作正常。这可能与添加到 PATH 变量中的路径有关,可能不是,不确定。

我也努力让xdebug 工作并在断点处停止无济于事,但重新启动后它也开始工作了。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-06-03
    • 2018-11-07
    • 2020-11-21
    • 2011-02-26
    • 2014-05-21
    • 1970-01-01
    • 2013-06-17
    • 2012-04-06
    相关资源
    最近更新 更多