2014-10-02 92 views
1

我試圖在我的linux mint上使用pecl來安裝phar擴展,但它一直失敗。PHP Phar安裝

如果我跑pecl install phar我得到這個錯誤:

running: make 
/bin/bash /tmp/pear/temp/pear-build-rootPgumyZ/phar-2.0.0/libtool --mode=compile cc -I. -I/tmp/pear/temp/phar -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootPgumyZ/phar-2.0.0/include -I/tmp/pear/temp/pear-build-rootPgumyZ/phar-2.0.0/main -I/tmp/pear/temp/phar -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/phar/util.c -o util.lo 
libtool: compile: cc -I. -I/tmp/pear/temp/phar -DPHP_ATOM_INC -I/tmp/pear/temp/pear-build-rootPgumyZ/phar-2.0.0/include -I/tmp/pear/temp/pear-build-rootPgumyZ/phar-2.0.0/main -I/tmp/pear/temp/phar -I/usr/include/php5 -I/usr/include/php5/main -I/usr/include/php5/TSRM -I/usr/include/php5/Zend -I/usr/include/php5/ext -I/usr/include/php5/ext/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/phar/util.c -fPIC -DPIC -o .libs/util.o 
In file included from /usr/include/php5/main/fopen_wrappers.h:25:0, 
       from /usr/include/php5/main/php.h:402, 
       from /tmp/pear/temp/phar/phar_internal.h:27, 
       from /tmp/pear/temp/phar/util.c:23: 
/tmp/pear/temp/phar/util.c: In function 'phar_mount_entry': 
/usr/include/php5/main/php_globals.h:32:29: error: 'struct _php_core_globals' has no member named 'safe_mode' 
# define PG(v) (core_globals.v) 
          ^
/tmp/pear/temp/phar/util.c:205:6: note: in expansion of macro 'PG' 
    if (PG(safe_mode) && !is_phar && (!php_checkuid(entry.tmp, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { 
    ^
/tmp/pear/temp/phar/util.c:205:67: error: 'CHECKUID_CHECK_FILE_AND_DIR' undeclared (first use in this function) 
    if (PG(safe_mode) && !is_phar && (!php_checkuid(entry.tmp, NULL, CHECKUID_CHECK_FILE_AND_DIR))) { 
                   ^
/tmp/pear/temp/phar/util.c:205:67: note: each undeclared identifier is reported only once for each function it appears in 
/tmp/pear/temp/phar/util.c: In function 'phar_find_in_include_path': 
/tmp/pear/temp/phar/util.c:274:8: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] 
    fname = zend_get_executed_filename(TSRMLS_C); 
     ^
In file included from /usr/include/php5/main/fopen_wrappers.h:25:0, 
       from /usr/include/php5/main/php.h:402, 
       from /tmp/pear/temp/phar/phar_internal.h:27, 
       from /tmp/pear/temp/phar/util.c:23: 
/tmp/pear/temp/phar/util.c: In function 'phar_open_archive_fp': 
/usr/include/php5/main/php_globals.h:32:29: error: 'struct _php_core_globals' has no member named 'safe_mode' 
# define PG(v) (core_globals.v) 
          ^
/tmp/pear/temp/phar/util.c:854:6: note: in expansion of macro 'PG' 
    if (PG(safe_mode) && (!php_checkuid(phar->fname, NULL, CHECKUID_ALLOW_ONLY_FILE))) { 
    ^
/tmp/pear/temp/phar/util.c:854:57: error: 'CHECKUID_ALLOW_ONLY_FILE' undeclared (first use in this function) 
    if (PG(safe_mode) && (!php_checkuid(phar->fname, NULL, CHECKUID_ALLOW_ONLY_FILE))) { 
                 ^
/tmp/pear/temp/phar/util.c: In function 'phar_add_virtual_dirs': 
/tmp/pear/temp/phar/util.c:2218:12: warning: assignment discards 'const' qualifier from pointer target type [enabled by default] 
    while ((s = zend_memrchr(filename, '/', filename_len))) { 
      ^
make: *** [util.lo] Error 1 
ERROR: `make' failed 

在beggining我得到這個消息:

Did not download optional dependencies: pecl/bz2, pecl/hash, use --alldeps to download automatically 

所以我試圖同時安裝依賴,但這些也給了錯誤:

對於PECL /散列:

/date/lib -DHAVE_CONFIG_H -g -O2 -c /tmp/pear/temp/hash/hash.c -fPIC -DPIC -o .libs/hash.o 
/tmp/pear/temp/hash/hash.c:785:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO_EX(arginfo_hash, 0, 0, 2) 
^ 
/tmp/pear/temp/hash/hash.c:792:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_file, 0, 0, 2) 
^ 
/tmp/pear/temp/hash/hash.c:799:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_hmac, 0, 0, 3) 
^ 
/tmp/pear/temp/hash/hash.c:807:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_hmac_file, 0, 0, 3) 
^ 
/tmp/pear/temp/hash/hash.c:815:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_init, 0, 0, 1) 
^ 
/tmp/pear/temp/hash/hash.c:822:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO(arginfo_hash_update, 0) 
^ 
/tmp/pear/temp/hash/hash.c:828:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_update_stream, 0, 0, 2) 
^ 
/tmp/pear/temp/hash/hash.c:835:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_update_file, 0, 0, 2) 
^ 
/tmp/pear/temp/hash/hash.c:842:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO_EX(arginfo_hash_final, 0, 0, 1) 
^ 
/tmp/pear/temp/hash/hash.c:848:1: error: duplicate 'static' 
ZEND_BEGIN_ARG_INFO(arginfo_hash_algos, 0) 
^ 
make: *** [hash.lo] Error 1 
ERROR: `make' failed 

而對於PECL/BZ2(這是有利於「頻道:// http://php.net/bzip2/ext/bz2」中使用):

running: phpize 
Cannot find config.m4. 
Make sure that you run '/usr/bin/phpize' in the top level source directory of the module 

ERROR: `phpize' failed 

我搜索了這個phpize錯誤,我發現,必須安裝PHP5-dev的(它是)。

任何人都可以幫我找出這一個嗎?

謝謝

+0

您是否嘗試過使用--alldeps參數?它會自行下載alledencys ...有時它也有助於重新安裝prev。組件像php5-dev – ThatMSG 2014-10-02 11:46:14

+0

是的,做到了。使用--alldeps與分別安裝兩個依賴關係完全相同,給出相同的錯誤。也已經清除了php5-dev,並再次嘗試沒有運氣...... :( – 2014-10-02 13:59:01

回答

0

您不必再使用pecl/phar; phar是幾年以來PHP核心的一部分。