我最近切换到 macOS 并开始了一个简单的项目,该项目需要我使用 Imagick 扩展。我尝试使用 Homebrew 安装 Imagick,但在安装过程中遇到错误。
我已经执行了以下命令。
pecl install imagick
git clone https://github.com/Imagick/imagick
cd imagick
phpize && ./configure
make
make install
但是,我在 make install 命令上遇到错误。
mkdir: /opt/homebrew/Cellar/php/8.3.8/pecl: File exists
mkdir: /opt/homebrew/Cellar/php/8.3.8/pecl: No such file or directory
make: *** [install-modules] Error 1
还尝试删除现有的 pecl 目录并重新安装 imagick。
sudo rm -rf /opt/homebrew/Cellar/php/8.3.8/pecl
sudo mkdir -p /opt/homebrew/Cellar/php/8.3.8/pecl
pecl install imagick
但是遇到了这个错误
Build process completed successfully
Installing '/opt/homebrew/Cellar/php/8.3.8/include/php/ext/imagick/php_imagick_shared.h'
Installing '/opt/homebrew/Cellar/php/8.3.8/pecl/20230831/imagick.so'
ERROR: failed to mkdir /opt/homebrew/Cellar/php/8.3.8/pecl/20230831
我尝试搜索相同的错误,但找不到任何错误。 如何解决这个问题?我如何在我的Mac上找到这个目录(还在熟悉苹果生态系统)?
我遇到了类似的问题,当我使用命令安装xdebug时:
pecl install xdebug
它看起来像这样:
构建过程成功完成 安装“/opt/homebrew/Cellar/php/8.3.8/pecl/20230831/xdebug.so”
警告:mkdir():文件存在于 System.php 第 294 行 PHP 警告:mkdir():文件存在于 /opt/homebrew/Cellar/php/8.3.8/share/php/pear/System.php 第 294 行
警告:mkdir():文件存在于 /opt/homebrew/Cellar/php/8.3.8/share/php/pear/System.php 第 294 行 错误:无法 mkdir /opt/homebrew/Cellar/php/8.3.8/pecl/20230831
我认为它可以正确安装并正确制作,但在最后一步出现错误,使目录“/opt/homebrew/Cellar/php/8.3.8/pecl/20230831” 然后将您的扩展文件(如“***.so”)复制到该目录。
这似乎是 /opt/homebrew/Cellar/php/8.3.8/share/php/pear/System.php 第 294 行的一个新错误:
if (!mkdir($newdir, $mode)) {
$ret = false;
}
第一次安装时,没有目录,运行正常。 但如果我们首先安装像“opcache.so”这样的一个,然后安装第二个, dir已经存在,我认为php代码不会判断dir是否存在,所以得到了错误。