2013-03-09 22 views
7

Vấn đề này đã được giải quyết trước đó và tôi đã thử các giải pháp được cung cấp và nghĩ rằng tôi đang làm điều gì đó sai. Tôi đang cố gắng để cấu hình PHP Codesniffer trên một máy Mac sử dụng Mountaion Lion. Tôi không nghĩ rằng nó quan trọng, nhưng tôi ma sử dụng XAMMP. Tôi nhận được lỗi sau khi tôi chạy phpcs.Sai_ include_path cho 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 

Lỗi này, dựa trên tất cả tìm kiếm, là do include_path không chính xác trong php.ini. Như tôi đã hiểu, đường dẫn này được cho là thư mục chứa lê. Khi tôi chạy cấu hình quả lê-get php_dir nó trả về/usr/lib/php/lê tôi mong đợi điều này. Vì vậy, tôi chỉnh sửa file php.ini (tập tin này là php.ini chỉ trên hệ thống, do đó nó không được lấy bối cảnh từ tập tin khác) để đọc:

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

này có vẻ đúng, nhưng tôi giữ nhận được cùng một lỗi. Tôi đã loại bỏ hàng đầu.: Và điều đó không giúp ích gì ... và nó không hoạt động. Tôi cũng đã xóa kết quả theo dõi/và cùng một kết quả. Lưu ý rằng phpcs nằm trong thư mục usr/bin. Dưới đây là kết quả chạy lê config-show

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 

Bất kỳ ý tưởng nào? Tôi dễ bị lỗi chính tả, vì vậy đó luôn là một khả năng, vì vậy mọi thứ tôi đặt ở đây là cắt/dán.

+1

Khi bạn thay đổi include_path, thông báo lỗi có thay đổi để hiển thị cho bạn đường dẫn mới không? Nếu không, hãy chạy 'php --ini' để xem tệp ini nào (nếu có) đang sử dụng. –

+0

Xin chào Greg, Cảm ơn bạn đã trả lời. Chỉ có một php.ini trên hệ thống. Khi tôi chạy php --ini nó trả về: Configuration File (php.ini) Đường dẫn:/etc Loaded Configuration File: (none) Quét để tìm các tệp .ini bổ sung trong: (none) Các tệp .ini được phân tích cú pháp: (none) – user1342600

+0

php.ini khác của bạn có thể đang được sử dụng cho Apache hoặc máy chủ web khác hoặc có thể chưa được sử dụng. Hãy thử sao chép php.ini đó vào /etc/php.ini và đó có thể là dòng lệnh bạn chỉnh sửa từ bây giờ. Xem nếu nó hoạt động một lần được đặt ở đó. –

Trả lời

5

Có một bài viết tuyệt vời về cách để có được nó lên và chạy:

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

Tôi làm theo các hướng dẫn dễ dàng và đã có nó làm việc trong thời gian không!

Bí quyết là để sửa chữa bao gồm đường dẫn với các lệnh:

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

Được đăng vì lợi ích của những người đang tìm kiếm giải pháp và tìm thấy câu hỏi này ... – dneimeier

+0

Điều này đã khắc phục sự cố cho tôi, cảm ơn! – Gondrup

+0

Tuyệt vời, vẫn đang làm việc trên El Captain :) – Mepps

1

On MacOS cao Sierrra 10.3.2 nó được 2 bước đơn giản:

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

Dòng cuối cùng đặt include_path ở cuối của /etc/php.ini tệp