最近,我一直尝试在已安装的pecl memcache
OSX Catalina 上安装 PHP 扩展brew memcached
,每次尝试安装过程时都会收到以下错误:
configure: error: memcache support requires ZLIB. Use --with-zlib-dir=<DIR> to specify prefix where ZLIB include and library are located
Run Code Online (Sandbox Code Playgroud)
我已经尝试过 withpecl install memcache
和 withpecl install --configureoptions='with-zlib-dir="path"' memcache
但没有成功。它总是得到相同的点并且失败。
从我对有关软件包安装的不同主题的回顾来看,问题似乎与命令-D
中的选项有关pecl install
,因为当我从源代码进行手动安装时,将参数传递--with-zlib-dir=/usr/local/Cellar/zlib/1.2.11
给./configure
命令,它就像一个魅力一样工作并安装该软件包但现在未在pecl list
已安装的软件包中列出,因此无法卸载。
问题是我需要pecl
管理包的安装,以便能够在环境从要保护的项目发生变化时随时卸载它。
在构建我的一些PHP应用程序时,可以使用PEAR/PECL模块对许多功能进行编码,但是,有些人使用它可能无法安装东西,这对我来说是一个让人感到困惑的事情.
我是否应该放弃一些用户使用PEAR/PECL来实现功能,这使我能够比编写自己的功能更快地编写系统编码,但是它会排除某些人使用它.
我在别处问过这个问题,但那里的人似乎不明白我在说什么。
当我访问 PECL 网站时,在那里找到的所有扩展名都在 TGZ 文件中。
这不是问题,任何现代归档程序都可以打开它。
里面总是一个 .tar 文件,里面是源文件。那么,我该怎么办?我对使用 pecl_http 扩展特别感兴趣,但我不知道该怎么做。
注意:.TAR 文件中没有 DLL 文件。一个都没有,一个都没有。你能找到的只是 C 代码和 C 头文件。
示例代码:
namespace myns;
$zip = new ZipArchive;
$zip->open('/var/www/less/less_1.zip');
for ($i = 0; $i < $zip->numFiles; $i++) {
echo $zip->getNameIndex($i);
}
Run Code Online (Sandbox Code Playgroud)
当我尝试创建命名空间并使用ZipArchive时,我有一个错误:
PHP Fatal error: Class 'myns\ZipArchive' not found
in /var/www/less/test.php on line 4
Run Code Online (Sandbox Code Playgroud)
没有命名空间'myns'它工作正常.
我会很感激任何想法.
我正在尝试在oracle 11和php5.3下的Centos 5.11中安装oci8-1.4.9,但是当我使用时遇到错误
pecl install oci8-1.4.9
Run Code Online (Sandbox Code Playgroud)
错误
config.status: creating config.h
running: make
/bin/sh /var/tmp/pear-build-root/oci8-1.4.9/libtool --mode=compile gcc -I. -I/tmp/tmp9GRxQr/oci8-1.4.9 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/oci8-1.4.9/include -I/var/tmp/pear-build-root/oci8-1.4.9/main -I/tmp/tmp9GRxQr/oci8-1.4.9 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -DHAVE_CONFIG_H -g -O2 -c /tmp/tmp9GRxQr/oci8-1.4.9/oci8.c -o oci8.lo
mkdir .libs
gcc -I. -I/tmp/tmp9GRxQr/oci8-1.4.9 -DPHP_ATOM_INC -I/var/tmp/pear-build-root/oci8-1.4.9/include -I/var/tmp/pear-build-root/oci8-1.4.9/main -I/tmp/tmp9GRxQr/oci8-1.4.9 -I/usr/include/php -I/usr/include/php/main -I/usr/include/php/TSRM -I/usr/include/php/Zend -I/usr/include/php/ext -DHAVE_CONFIG_H -g -O2 -c /tmp/tmp9GRxQr/oci8-1.4.9/oci8.c -fPIC -DPIC -o .libs/oci8.o
In file included from /tmp/tmp9GRxQr/oci8-1.4.9/oci8.c:58:
/tmp/tmp9GRxQr/oci8-1.4.9/php_oci8_int.h:56:17: error: oci.h: No such file or directory
In file included from /tmp/tmp9GRxQr/oci8-1.4.9/oci8.c:58:
/tmp/tmp9GRxQr/oci8-1.4.9/php_oci8_int.h:113: error: expected specifier-qualifier-list before …
Run Code Online (Sandbox Code Playgroud) 我在尝试ssh2
使用 pecl安装扩展时遇到以下错误:
17 warnings and 3 errors generated.
make: *** [ssh2_fopen_wrappers.lo] Error 1
ERROR: `make' failed
Run Code Online (Sandbox Code Playgroud)
这是我所做的:
brew install php
brew install libssh2
pecl install ssh2-1.1.2
Run Code Online (Sandbox Code Playgroud)
那安装了 php 7.3.3,libssh2 1.8.0 并且无法安装 ssh2-1.1.2。
有没有人有解决问题的方法?谢谢!
相关链接:
https : //github.com/docker-library/php/issues/767
为 PHP 安装 PECL SSH2 扩展
我的 macbook pro m1 上安装了 php 7.4
% php -v
PHP 7.4.15 (cli) (built: Feb 26 2021 09:28:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
with Zend OPcache v7.4.15, Copyright (c), by Zend Technologies
Run Code Online (Sandbox Code Playgroud)
我正在尝试安装运行的 mongodb 驱动程序:
sudo pecl install mongodb
Run Code Online (Sandbox Code Playgroud)
但一段时间后失败:
mp/pear/temp/mongodb/src/contrib/ -DHAVE_CONFIG_H -g -O2 -c /private/tmp/pear/temp/mongodb/php_phongo.c -fno-common -DPIC -o .libs/php_phongo.o
In file included from /private/tmp/pear/temp/mongodb/php_phongo.c:29:
In file included from /opt/homebrew/Cellar/php@7.4/7.4.15_1/include/php/ext/spl/spl_iterators.h:24:
/opt/homebrew/Cellar/php@7.4/7.4.15_1/include/php/ext/pcre/php_pcre.h:25:10: fatal error: 'pcre2.h' file not found
#include "pcre2.h"
^~~~~~~~~ …
Run Code Online (Sandbox Code Playgroud) 我尝试遵循: PHP警告:PHP启动:无法加载动态库'mcrypt.so'
sudo apt-get -y install gcc make autoconf libc-dev pkg-config
sudo apt-get -y install php7.2-dev
sudo apt-get -y install libmcrypt-dev
sudo pecl install mcrypt-1.0.1
Run Code Online (Sandbox Code Playgroud)
我得到:
pecl/mcrypt requires PHP (version >= 7.2.0, version <= 7.3.0, excluded versions: 7.3.0), installed version is 7.3.3-1+ubuntu14.04.1+deb.sury.org+1
No valid packages found
install failed
Run Code Online (Sandbox Code Playgroud)
我使用需要的prestashop
我无法分别为不同的 php 版本安装 apcu 等 php 扩展。我在 MacOS Mojave 上运行 php7.1 和 php7.3(通过 brew 安装)
我已经尝试过类似的事情,
pecl -d php_suffix=7.1 install <package>
因为我在这里找到了这个建议。但它根本不起作用。
具体问题是php7.1安装apcu的同时安装php7.3。无论我做什么 - apcu get 仅适用于 php7.3。
当我运行时php -v
我得到PHP 7.1
当我检查目录/usr/local/Cellar/php@7.1/7.1.30_1/include/php/ext
时没有apcu
有没有办法告诉 pecl 应该为哪个版本安装扩展?