2013-03-09 3 views
7

Этот вопрос был рассмотрен раньше, и я попытался предложить решения и подумал, что я делаю что-то неправильно. Я пытаюсь настроить PHP Codesniffer на Mac с помощью Mountaion Lion. Я не думаю, что это важно, но я использую XAMMP. При запуске phpcs возникает следующая ошибка.Неверный include_path для 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 

Эта ошибка, основанная на всех результатах поиска, связана с неправильным include_path в php.ini. Как я понимаю, этот путь должен быть каталогом, в котором находится груша. Когда я запускаю pear config-get php_dir, он возвращает/usr/lib/php/pear. Я ожидал этого. Так что я изменил файл php.ini (этот файл является единственным php.ini в системе, так что это не захватывая настройки из другого файла) следующим образом:

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

Это выглядит правильно, но я держу получив ту же ошибку. Я удалил ведущий.: И это не помогает ... и он не должен работать. Я также удалил конечный/и тот же результат. Обратите внимание, что phpcs находится в каталоге usr/bin. Ниже приведен результат выполнения грушевого конфигурации-шоу

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 

Любые идеи? Я склонен к опечаткам, так что это всегда возможность, поэтому все, что я здесь помещаю, - вырезать/вставить.

+1

Как вы меняете include_path, появляется сообщение об ошибке, чтобы показать вам новый путь? Если нет, запустите 'php --ini', чтобы увидеть, какой файл ini (если есть) используется. –

+0

Привет, Грег, спасибо за ответ. В системе есть только один php.ini. Когда я запускаю php -ini, он возвращает: Файл конфигурации (php.ini) Путь:/etc Загруженный файл конфигурации: (нет) Сканирование дополнительных файлов .ini в: (none) Дополнительные файлы .ini, обработанные: (none) – user1342600

+0

Ваш другой php.ini может использоваться для Apache или другого веб-сервера, иначе он еще не может быть использован. Попробуйте скопировать этот php.ini в /etc/php.ini, и это может быть ваша строка командной строки, которую вы сейчас редактируете. Посмотрите, работает ли он после его размещения. –

ответ

5

Существует отличная статья о том, как получить его вверх и бег:

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

Я следовал простым инструкциям, и она была работает в кратчайшие сроки!

Секрет заключается в том, чтобы исправить включить путь с этими командами:

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

Опубликовано в интересах тех, кто ищет разрешение и нашел этот вопрос ... – dneimeier

+0

Это исправлено для меня, спасибо! – Gondrup

+0

Удивительный, все еще работающий над Эль-Капитаном :) – Mepps

1

На MacOS High Sierrra 10.3.2 это 2 простых шага:

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

Последняя строка устанавливает include_path в конце файла /etc/php.ini

Смежные вопросы