2015-03-10 9 views
7

Sto eseguendo un server Amazon EC2 vaniglia. Ho installato PHP 5.5.21 da solo. La mia applicazione web è costruita su Laravel. Per settimane, tutto funzionava perfettamente. Ora, però, quando si esegue il comando laravel per aggiornare lo schema del database:Laravel: chiamata alla funzione non definita Symfony Component Console mb_convert_variables()?

php artisan migrate

ottengo il seguente errore:

PHP Fatal error: Call to undefined function Symfony\Component\Console\mb_convert_variables() in /var/www/mysite/vendor/symfony/console/Symfony/Component/Console/Application.php on line 1154

Stranamente, non ho fatto alcun aggiornamento o installati tutti i pacchetti tra il tempo stava funzionando e quando ha smesso di funzionare. (Almeno penso. Ho controllato la mia storia per essere sicuro.)

Non credo che questo sia un problema con Laravel, di per sé. La mia ricerca suggerisce che mb_convert_variables dovrebbe essere una funzione PHP integrata.

Ecco la linea 1154 di application.php che sta gettando l'errore:

mb_convert_variables($encoding, 'utf8', $lines); 

Ed ecco che nel contesto più ampio. E 'interessante il mb_convert_encoding (...) sembra funzionare bene:

private function splitStringByWidth($string, $width) 
{ 
    // str_split is not suitable for multi-byte characters, we should use preg_split to get char array properly. 
    // additionally, array_slice() is not enough as some character has doubled width. 
    // we need a function to split string not by character count but by string width 

    if (!function_exists('mb_strwidth')) { 
     return str_split($string, $width); 
    } 

    if (false === $encoding = mb_detect_encoding($string)) { 
     return str_split($string, $width); 
    } 

    $utf8String = mb_convert_encoding($string, 'utf8', $encoding); 
    $lines = array(); 
    $line = ''; 
    foreach (preg_split('//u', $utf8String) as $char) { 
     // test if $char could be appended to current line 
     if (mb_strwidth($line.$char, 'utf8') <= $width) { 
      $line .= $char; 
      continue; 
     } 
     // if not, push current line to array and make new line 
     $lines[] = str_pad($line, $width); 
     $line = $char; 
    } 
    if (strlen($line)) { 
     $lines[] = count($lines) ? str_pad($line, $width) : $line; 
    } 

    mb_convert_variables($encoding, 'utf8', $lines); 

    return $lines; 
} 

io non sono sicuro se questo è utile, ma ecco una lista di tutti i moduli PHP installati:

[PHP Modules] 
bz2 
calendar 
Core 
ctype 
curl 
date 
dom 
ereg 
exif 
fileinfo 
filter 
ftp 
gettext 
hash 
iconv 
json 
libxml 
mcrypt 
mhash 
mysql 
mysqli 
mysqlnd 
openssl 
pcntl 
pcre 
PDO 
pdo_mysql 
pdo_sqlite 
Phar 
posix 
readline 
Reflection 
session 
shmop 
SimpleXML 
sockets 
SPL 
sqlite3 
standard 
sysvmsg 
sysvsem 
sysvshm 
tokenizer 
wddx 
xml 
xmlreader 
xmlwriter 
xsl 
zip 
zlib 

E ecco alcuni della produzione di php -i:

phpinfo() 
PHP Version => 5.5.21 

System => Linux ip-172-31-6-34 3.14.26-24.46.amzn1.x86_64 #1 SMP Wed Dec 10 10:02:43 UTC 2014 x86_64 
Build Date => Feb 11 2015 23:17:00 
Server API => Command Line Interface 
Virtual Directory Support => disabled 
Configuration File (php.ini) Path => /etc 
Loaded Configuration File => /etc/php.ini 
Scan this dir for additional .ini files => /etc/php-5.5.d 
Additional .ini files parsed => /etc/php-5.5.d/bz2.ini, 
/etc/php-5.5.d/calendar.ini, 
/etc/php-5.5.d/ctype.ini, 
/etc/php-5.5.d/curl.ini, 
/etc/php-5.5.d/dom.ini, 
/etc/php-5.5.d/exif.ini, 
/etc/php-5.5.d/fileinfo.ini, 
/etc/php-5.5.d/ftp.ini, 
/etc/php-5.5.d/gettext.ini, 
/etc/php-5.5.d/iconv.ini, 
/etc/php-5.5.d/json.ini, 
/etc/php-5.5.d/mcrypt.ini, 
/etc/php-5.5.d/mysqlnd.ini, 
/etc/php-5.5.d/mysqlnd_mysql.ini, 
/etc/php-5.5.d/mysqlnd_mysqli.ini, 
/etc/php-5.5.d/pdo.ini, 
/etc/php-5.5.d/pdo_mysqlnd.ini, 
/etc/php-5.5.d/pdo_sqlite.ini, 
/etc/php-5.5.d/phar.ini, 
/etc/php-5.5.d/php.ini, 
/etc/php-5.5.d/posix.ini, 
/etc/php-5.5.d/shmop.ini, 
/etc/php-5.5.d/simplexml.ini, 
/etc/php-5.5.d/sockets.ini, 
/etc/php-5.5.d/sqlite3.ini, 
/etc/php-5.5.d/sysvmsg.ini, 
/etc/php-5.5.d/sysvsem.ini, 
/etc/php-5.5.d/sysvshm.ini, 
/etc/php-5.5.d/tokenizer.ini, 
/etc/php-5.5.d/xml.ini, 
/etc/php-5.5.d/xml_wddx.ini, 
/etc/php-5.5.d/xmlreader.ini, 
/etc/php-5.5.d/xmlwriter.ini, 
/etc/php-5.5.d/xsl.ini, 
/etc/php-5.5.d/zip.ini 

PHP API => 20121113 
PHP Extension => 20121212 
Zend Extension => 220121212 
Zend Extension Build => API220121212,NTS 
PHP Extension Build => API20121212,NTS 
Debug Build => no 
Thread Safety => disabled 
Zend Signal Handling => disabled 
Zend Memory Manager => enabled 
Zend Multibyte Support => disabled 
IPv6 Support => enabled 
DTrace Support => enabled 

Registered PHP Streams => https, ftps, compress.zlib, php, file, glob, data, http, ftp, compress.bzip2, phar, zip 
Registered Stream Socket Transports => tcp, udp, unix, udg, ssl, sslv3, sslv2, tls 
Registered Stream Filters => zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, bzip2.*, convert.iconv.*, mcrypt.*, mdecrypt.* 



Core 

PHP Version => 5.5.21 

Directive => Local Value => Master Value 
allow_url_fopen => On => On 
allow_url_include => Off => Off 
always_populate_raw_post_data => Off => Off 
arg_separator.input => & => & 
arg_separator.output => & => & 
asp_tags => Off => Off 
auto_append_file => no value => no value 
auto_globals_jit => On => On 
auto_prepend_file => no value => no value 
browscap => no value => no value 
default_charset => no value => no value 
default_mimetype => text/html => text/html 
disable_classes => no value => no value 
disable_functions => no value => no value 
display_errors => Off => Off 
display_startup_errors => Off => Off 
doc_root => no value => no value 
docref_ext => no value => no value 
docref_root => no value => no value 
enable_dl => Off => Off 
enable_post_data_reading => On => On 
error_append_string => no value => no value 
error_log => no value => no value 
error_prepend_string => no value => no value 
error_reporting => 22527 => 22527 
exit_on_timeout => Off => Off 
expose_php => On => On 
extension_dir => /usr/lib64/php/5.5/modules => /usr/lib64/php/5.5/modules 
file_uploads => On => On 
highlight.comment => <font style="color: #FF8000">#FF8000</font> => <font style="color: #FF8000">#FF8000</font> 
highlight.default => <font style="color: #0000BB">#0000BB</font> => <font style="color: #0000BB">#0000BB</font> 
highlight.html => <font style="color: #000000">#000000</font> => <font style="color: #000000">#000000</font> 
highlight.keyword => <font style="color: #007700">#007700</font> => <font style="color: #007700">#007700</font> 
highlight.string => <font style="color: #DD0000">#DD0000</font> => <font style="color: #DD0000">#DD0000</font> 
html_errors => Off => Off 
ignore_repeated_errors => Off => Off 
ignore_repeated_source => Off => Off 
ignore_user_abort => Off => Off 
implicit_flush => On => On 
include_path => .:/usr/share/pear:/usr/share/php => .:/usr/share/pear:/usr/share/php 
log_errors => On => On 
log_errors_max_len => 1024 => 1024 
mail.add_x_header => On => On 
mail.force_extra_parameters => no value => no value 
mail.log => no value => no value 
max_execution_time => 0 => 0 
max_file_uploads => 20 => 20 
max_input_nesting_level => 64 => 64 
max_input_time => -1 => -1 
max_input_vars => 1000 => 1000 
memory_limit => 128M => 128M 
open_basedir => no value => no value 
output_buffering => 0 => 0 
output_handler => no value => no value 
post_max_size => 8M => 8M 
precision => 14 => 14 
realpath_cache_size => 16K => 16K 
realpath_cache_ttl => 120 => 120 
register_argc_argv => On => On 
report_memleaks => On => On 
report_zend_debug => Off => Off 
request_order => GP => GP 
sendmail_from => no value => no value 
sendmail_path => /usr/sbin/sendmail -t -i => /usr/sbin/sendmail -t -i 
serialize_precision => 17 => 17 
short_open_tag => Off => Off 
SMTP => localhost => localhost 
smtp_port => 25 => 25 
sql.safe_mode => Off => Off 
sys_temp_dir => no value => no value 
track_errors => Off => Off 
unserialize_callback_func => no value => no value 
upload_max_filesize => 2M => 2M 
upload_tmp_dir => no value => no value 
user_dir => no value => no value 
user_ini.cache_ttl => 300 => 300 
user_ini.filename => .user.ini => .user.ini 
variables_order => GPCS => GPCS 
xmlrpc_error_number => 0 => 0 
xmlrpc_errors => Off => Off 
zend.detect_unicode => On => On 
zend.enable_gc => On => On 
zend.multibyte => Off => Off 
zend.script_encoding => no value => no value 

ctype 

ctype functions => enabled 



ereg 

Regex Library => Bundled library enabled 

exif 

EXIF Support => enabled 
EXIF Version => 1.4 $Id: 7f95ff43ea7cc9a2c41a912863ed70069c0e34c5 $ 
Supported EXIF Version => 0220 
Supported filetypes => JPEG,TIFF 

Directive => Local Value => Master Value 
exif.decode_jis_intel => JIS => JIS 
exif.decode_jis_motorola => JIS => JIS 
exif.decode_unicode_intel => UCS-2LE => UCS-2LE 
exif.decode_unicode_motorola => UCS-2BE => UCS-2BE 
exif.encode_jis => no value => no value 
exif.encode_unicode => ISO-8859-15 => ISO-8859-15 

fileinfo 

fileinfo support => enabled 
version => 1.0.5 

filter 

Input Validation and Filtering => enabled 
Revision => $Id: 4d3899e089e6e45b157975ceef2ac7deb6e9d762 $ 

Directive => Local Value => Master Value 
filter.default => unsafe_raw => unsafe_raw 
filter.default_flags => no value => no value 

ftp 

FTP support => enabled 

gettext 

GetText Support => enabled 

hash 

hash support => enabled 
Hashing Engines => md2 md4 md5 sha1 sha224 sha256 sha384 sha512 ripemd128 ripemd160 ripemd256 ripemd320 whirlpool tiger128,3 tiger160,3 tiger192,3 tiger128,4 tiger160,4 tiger192,4 snefru snefru256 gost adler32 crc32 crc32b fnv132 fnv164 joaat haval128,3 haval160,3 haval192,3 haval224,3 haval256,3 haval128,4 haval160,4 haval192,4 haval224,4 haval256,4 haval128,5 haval160,5 haval192,5 haval224,5 haval256,5 

iconv 

iconv support => enabled 
iconv implementation => glibc 
iconv library version => 2.17 

Directive => Local Value => Master Value 
iconv.input_encoding => ISO-8859-1 => ISO-8859-1 
iconv.internal_encoding => ISO-8859-1 => ISO-8859-1 
iconv.output_encoding => ISO-8859-1 => ISO-8859-1 

json 

json support => enabled 
json version => 1.3.6 
JSON-C headers version => 0.11 
JSON-C library version => 0.11 

libxml 

libXML support => active 
libXML Compiled Version => 2.9.1 
libXML Loaded Version => 20901 
libXML streams => enabled 

mcrypt 

mcrypt support => enabled 
mcrypt_filter support => enabled 
Version => 2.5.8 
Api No => 20021217 
Supported ciphers => cast-128 gost rijndael-128 twofish arcfour cast-256 loki97 rijndael-192 saferplus wake blowfish-compat des rijndael-256 serpent xtea blowfish enigma rc2 tripledes 
Supported modes => cbc cfb ctr ecb ncfb nofb ofb stream 

Directive => Local Value => Master Value 
mcrypt.algorithms_dir => no value => no value 
mcrypt.modes_dir => no value => no value 

mhash 

MHASH support => Enabled 
MHASH API Version => Emulated Support 


openssl 

OpenSSL support => enabled 
OpenSSL Library Version => OpenSSL 1.0.1k-fips 8 Jan 2015 
OpenSSL Header Version => OpenSSL 1.0.1k-fips 8 Jan 2015 

pcntl 

pcntl support => enabled 

pcre 

PCRE (Perl Compatible Regular Expressions) Support => enabled 
PCRE Library Version => 8.21 2011-12-12 

Directive => Local Value => Master Value 
pcre.backtrack_limit => 1000000 => 1000000 
pcre.recursion_limit => 100000 => 100000 

PDO 

PDO support => enabled 
PDO drivers => mysql, sqlite 

pdo_mysql 

PDO Driver for MySQL => enabled 
Client API version => mysqlnd 5.0.11-dev - 20120503 - $Id: bf9ad53b11c9a57efdb1057292d73b928b8c5c77 $ 

Directive => Local Value => Master Value 
pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock 

pdo_sqlite 

PDO Driver for SQLite 3.x => enabled 
SQLite Library => 3.7.17 

Phar 

Phar: PHP Archive support => enabled 
Phar EXT version => 2.0.2 
Phar API version => 1.1.1 
SVN revision => $Id: cc0fad28eb9ea42466f756c3b5fc22c764e32690 $ 
Phar-based phar archives => enabled 
Tar-based phar archives => enabled 
ZIP-based phar archives => enabled 
gzip compression => enabled 
bzip2 compression => enabled 
Native OpenSSL support => enabled 


Phar based on pear/PHP_Archive, original concept by Davey Shafik. 
Phar fully realized by Gregory Beaver and Marcus Boerger. 
Portions of tar implementation Copyright (c) 2003-2009 Tim Kientzle. 
Directive => Local Value => Master Value 
phar.cache_list => no value => no value 
phar.readonly => On => On 
phar.require_hash => On => On 

posix 

Revision => $Id: 1dfa9997ed76804e53c91e0ce862f3707617b6ed $ 

readline 

Readline Support => enabled 
Readline library => EditLine wrapper 

Directive => Local Value => Master Value 
cli.pager => no value => no value 
cli.prompt => \b \> => \b \> 

Reflection 

Reflection => enabled 
Version => $Id: 95b780d3f0d017feba96a5c35cca9541186114ad $ 

session 

Session Support => enabled 
Registered save handlers => files user 
Registered serializer handlers => php_serialize php php_binary wddx 

Directive => Local Value => Master Value 
session.auto_start => Off => Off 
session.cache_expire => 180 => 180 
session.cache_limiter => nocache => nocache 
session.cookie_domain => no value => no value 
session.cookie_httponly => Off => Off 
session.cookie_lifetime => 0 => 0 
session.cookie_path =>/=>/
session.cookie_secure => Off => Off 
session.entropy_file => /dev/urandom => /dev/urandom 
session.entropy_length => 32 => 32 
session.gc_divisor => 1000 => 1000 
session.gc_maxlifetime => 1440 => 1440 
session.gc_probability => 1 => 1 
session.hash_bits_per_character => 5 => 5 
session.hash_function => 0 => 0 
session.name => PHPSESSID => PHPSESSID 
session.referer_check => no value => no value 
session.save_handler => files => files 
session.save_path => no value => no value 
session.serialize_handler => php => php 
session.upload_progress.cleanup => On => On 
session.upload_progress.enabled => On => On 
session.upload_progress.freq => 1% => 1% 
session.upload_progress.min_freq => 1 => 1 
session.upload_progress.name => PHP_SESSION_UPLOAD_PROGRESS => PHP_SESSION_UPLOAD_PROGRESS 
session.upload_progress.prefix => upload_progress_ => upload_progress_ 
session.use_cookies => On => On 
session.use_only_cookies => On => On 
session.use_strict_mode => Off => Off 
session.use_trans_sid => 0 => 0 

shmop 

shmop support => enabled 

SimpleXML 

Simplexml support => enabled 
Revision => $Id: a915862ec47f9589309acc4996ca8f6179788746 $ 
Schema support => enabled 

sockets 

Sockets Support => enabled 

SPL 

SPL support => enabled 
Interfaces => Countable, OuterIterator, RecursiveIterator, SeekableIterator, SplObserver, SplSubject 
Classes => AppendIterator, ArrayIterator, ArrayObject, BadFunctionCallException, BadMethodCallException, CachingIterator, CallbackFilterIterator, DirectoryIterator, DomainException, EmptyIterator, FilesystemIterator, FilterIterator, GlobIterator, InfiniteIterator, InvalidArgumentException, IteratorIterator, LengthException, LimitIterator, LogicException, MultipleIterator, NoRewindIterator, OutOfBoundsException, OutOfRangeException, OverflowException, ParentIterator, RangeException, RecursiveArrayIterator, RecursiveCachingIterator, RecursiveCallbackFilterIterator, RecursiveDirectoryIterator, RecursiveFilterIterator, RecursiveIteratorIterator, RecursiveRegexIterator, RecursiveTreeIterator, RegexIterator, RuntimeException, SplDoublyLinkedList, SplFileInfo, SplFileObject, SplFixedArray, SplHeap, SplMinHeap, SplMaxHeap, SplObjectStorage, SplPriorityQueue, SplQueue, SplStack, SplTempFileObject, UnderflowException, UnexpectedValueException 


standard 

Dynamic Library Support => enabled 
Path to sendmail => /usr/sbin/sendmail -t -i 

Directive => Local Value => Master Value 
assert.active => 1 => 1 
assert.bail => 0 => 0 
assert.callback => no value => no value 
assert.quiet_eval => 0 => 0 
assert.warning => 1 => 1 
auto_detect_line_endings => 0 => 0 
default_socket_timeout => 60 => 60 
from => no value => no value 
url_rewriter.tags => a=href,area=href,frame=src,input=src,form=fakeentry => a=href,area=href,frame=src,input=src,form=fakeentry 
user_agent => no value => no value 

sysvmsg 

sysvmsg support => enabled 
Revision => $Id: adf1d2d6be849c46eed3c3ee6f1cbebd1448d6e5 $ 

tokenizer 

Tokenizer Support => enabled 

wddx 

WDDX Support => enabled 
WDDX Session Serializer => enabled 

xml 

XML Support => active 
XML Namespace Support => active 
libxml2 Version => 2.9.1 

xmlreader 

XMLReader => enabled 

xmlwriter 

XMLWriter => enabled 

xsl 

XSL => enabled 
libxslt Version => 1.1.28 
libxslt compiled against libxml Version => 2.9.1 
EXSLT => enabled 
libexslt Version => 1.1.28 

zip 

Zip => enabled 
Extension Version => $Id: 05dd1ecc211075107543b0ef8cee488dd229fccf $ 
Zip version => 1.11.0 
Compiled against libzip version => 0.10.1 

zlib 

ZLib Support => enabled 
Stream Wrapper => compress.zlib:// 
Stream Filter => zlib.inflate, zlib.deflate 
Compiled Version => 1.2.7 
Linked Version => 1.2.7 

Directive => Local Value => Master Value 
zlib.output_compression => Off => Off 
zlib.output_compression_level => -1 => -1 
zlib.output_handler => no value => no value 

Additional Modules 

Module Name 
sysvsem 
sysvshm 

ho alcune domande riguardo a questa:

  • Come posso risolvere il problema?
  • Cosa potrei aver fatto di sbagliato che lo ha incasinato?

Grazie!

+1

nota che è possibile caricare un'estensione PHP a runtime di utilizzare questa funzione ' 'così verifica nel tuo codice se stai usando questa funzione e se non viene chiamata in alcuni casi .... –

+0

Non sono sicuro se questo sia di aiuto, ma quando esegui dl ('php_mbstring.dll') , Ottengo il seguente: PHP Attenzione: dl(): impossibile caricare la libreria dinamica '/usr/lib64/php/5.5/modules/php_mbstring.dll' - /usr/lib64/php/5.5/modules/php_mbstring.dll: impossibile aprire il file oggetto condiviso: Nessun file o directory in /root/test.php sulla riga 2 – clone45

+3

Manca l'estensione mbstring. Tuttavia il commento precedente ti ha dato il codice per caricarlo su Windows che non funzionerà. È necessario installare un pacchetto chiamato qualcosa come "php-mbstring'. Il nome può variare a seconda della versione extatta di Linux. – datasage

risposta

4

Da datasage commento:

You need to install a package named something like php-mbstring. Name may vary depending on the exact version of linux.

Esempio:?

sudo yum install php55-mbstring 
+0

Questa risposta mi ha aiutato a installare drush sotto Cygwin che attualmente sta dando un errore simile. 'apt-cyg install php-mbstring' – mattbell87