2013-03-09 19 views
7

Questo problema è stato risolto in precedenza e ho provato a offrire soluzioni e penso di fare qualcosa di sbagliato. Sto tentando di configurare PHP Codesniffer su un Mac usando Mountaion Lion. Non penso che importi, ma sto usando XAMMP. Sto ottenendo il seguente errore quando eseguo phpcs.include_path errato per Codesniffer

Warning: include_once(PHP/CodeSniffer/CLI.php): failed to open stream: No such file or directory in /usr/bin/phpcs on line 31 

Warning: include_once(): Failed opening 'PHP/CodeSniffer/CLI.php' for inclusion (include_path='.:') in /usr/bin/phpcs on line 31 

Fatal error: Class 'PHP_CodeSniffer_CLI' not found in /usr/bin/phpcs on line 34 

Questo errore, basato su tutta la ricerca, è a causa di un percorso_path errato in php.ini. Come ho capito, questo percorso dovrebbe essere la directory in cui risiede la pera. Quando corro pera config-get php_dir restituisce/usr/lib/php/pera mi aspettavo questo. Così ho modificato il file php.ini (questo file è l'unico php.ini sul sistema, in modo che non sta afferrando l'impostazione da un altro file) per leggere:

include_path = ".:/usr/lib/php/pear/" 

questo sembra giusto, ma io continuo ottenendo lo stesso errore Ho rimosso il comando.: E questo non aiuta ... e non dovrebbe funzionare. Ho rimosso anche il trailing/e lo stesso risultato. Si noti che phpcs si trova nella directory usr/bin. Di seguito è riportato il risultato dell'esecuzione di pera config-spettacolo

Configuration (channel pear.php.net): 
===================================== 
Auto-discover new Channels  auto_discover 1 
Default Channel    default_channel pear.php.net 
HTTP Proxy Server Address  http_proxy  <not set> 
PEAR server [DEPRECATED]  master_server pear.php.net 
Default Channel Mirror   preferred_mirror pear.php.net 
Remote Configuration File  remote_config <not set> 
PEAR executables directory  bin_dir   /usr/bin 
PEAR documentation directory doc_dir   /usr/lib/php/pear/docs 
PHP extension directory  ext_dir   /usr/lib/php/extensions/no-debug-non-zts-20090626 
PEAR directory     php_dir   /usr/lib/php/pear 
PEAR Installer cache directory cache_dir  /private/tmp/pear/cache 
PEAR configuration file  cfg_dir   /usr/lib/php/pear/cfg 
directory 
PEAR data directory   data_dir   /usr/lib/php/pear/data 
PEAR Installer download  download_dir  /private/tmp/pear/download 
directory 
PHP CLI/CGI binary    php_bin   /usr/bin/php 
php.ini location    php_ini   /private/etc/php.ini 
--program-prefix passed to  php_prefix  <not set> 
PHP's ./configure 
--program-suffix passed to  php_suffix  <not set> 
PHP's ./configure 
PEAR Installer temp directory temp_dir   /JimS/temp 
PEAR test directory   test_dir   /usr/lib/php/pear/tests 
PEAR www files directory  www_dir   /usr/lib/php/pear/www 
Cache TimeToLive    cache_ttl  3600 
Preferred Package State  preferred_state stable 
Unix file mask     umask   22 
Debug Log Level    verbose   1 
PEAR password (for    password   <not set> 
maintainers) 
Signature Handling Program  sig_bin   /usr/local/bin/gpg 
Signature Key Directory  sig_keydir  /private/etc/pearkeys 
Signature Key Id    sig_keyid  <not set> 
Package Signature Type   sig_type   gpg 
PEAR username (for    username   <not set> 
maintainers) 
User Configuration File  Filename   /Users/JimS/.pearrc 
System Configuration File  Filename   /private/etc/pear.conf 

Tutte le idee? Sono incline agli errori di battitura, quindi è sempre una possibilità, quindi tutto ciò che metto qui è taglia/incolla.

+1

Come si modifica il percorso include, il messaggio di errore viene modificato per mostrare il nuovo percorso? Altrimenti, lanciate 'php --ini' per vedere quale file ini (se esiste) sta usando. –

+0

Ciao Greg, grazie per la risposta. C'è solo un php.ini sul sistema. Quando eseguo php --ini restituisce: File di configurazione (php.ini) Percorso:/etc File di configurazione caricato: (nessuno) Cerca file .ini aggiuntivi in: (nessuno) Altri file .ini analizzati: (nessuno) – user1342600

+0

L'altro php.ini potrebbe essere utilizzato per Apache o un altro server Web, oppure potrebbe non essere ancora utilizzato. Prova a copiare php.ini in /etc/php.ini e quella che può essere la tua riga di comando quella che modifichi d'ora in poi. Vedi se funziona una volta posizionato lì. –

risposta

5

C'è un eccellente articolo su come ottenerlo up-and-running:

http://viastudio.com/configure-php-codesniffer-for-mac-os-x/

ho seguito le istruzioni semplici e aveva essa lavora in pochissimo tempo!

Il segreto è quello di fissare il percorso di inclusione con questi comandi:

sudo mkdir -p /Library/Server/Web/Config/php 

sudo touch /Library/Server/Web/Config/php/local.ini 

echo 'include_path = ".:'`pear config-get php_dir`'"' | sudo tee -a /Library/Server/Web/Config/php/local.ini 
+0

Pubblicato per il beneficio di coloro che sono alla ricerca di una soluzione e trovato questa domanda ... – dneimeier

+0

Questo l'ha risolto per me, grazie! – Gondrup

+0

Fantastico, ancora lavorando su El Captain :) – Mepps

1

su MacOS alta Sierrra 10.3.2 è 2 semplici passaggi:

sudo cp /etc/php.ini.default /etc/php.ini 
echo 'include_path = ".:'`pear config-get php_dir`'"' | sudo tee -a /etc/php.ini 

L'ultima riga imposta la include_path alla fine del file /etc/php.ini

Problemi correlati