我正在按照提供的说明,使用XAMPP在Windows开发服务器上安装Laconica,这是一个开放源代码微博应用程序。
该网站找不到PEAR,并引发以下错误:
Warning: require_once(PEAR.php) [function.require-once]: failed to open stream: No such file or directory in C:\\xampplite\\htdocs\\laconica\\lib\\common.php on line 31
Fatal error: require_once() [function.require]: Failed opening required 'PEAR.php' (include_path='.;\\xampplite\\php\\pear\\PEAR') in C:\\xampplite\\htdocs\\laconica\\lib\\common.php on line 31
PEAR位于C:\\xampplite\\php\\pear
phpinfo()向我显示包含路径为.;\\xampplite\\php\\pear
我究竟做错了什么? 为什么不包含PEAR文件夹?
您需要修复您的include_path系统变量以指向正确的位置。
要修复它,请编辑php.ini文件。在该文件中,您将找到一行" include_path = ..."。 (您可以通过在页面上运行phpinfo()来查找php.ini的位置。)修复行中显示" \\xampplite\\php\\pear\\PEAR"的部分以读取" C:\\xampplite\\php\\pear"。确保在行之前和/或之后保留分号。
重新启动PHP,您应该一切顺利。要在IIS中重新启动PHP,您可以重新启动分配给站点的应用程序池,或者更好的是一起重新启动IIS。
如果您使用的是便携式XAMPP安装和Windows 7,并且像我一样,则从控制面板中删除了XAMPP shell之后,便有了该版本,此处没有建议的答案将对您有好处,因为这些软件包将不会安装。
问题出在配置文件上。经过大量的尝试和错误后,我发现正确的设置。
只需在\ xampp \ php目录中拉出一个命令窗口并运行
1 2 3 4 5
| pear config-set doc_dir :\\xampp\\php\\docs\\PEAR
pear config-set cfg_dir :\\xampp\\php\\cfg
pear config-set data_dir :\\xampp\\php\\data\\PEAR
pear config-set test_dir :\\xampp\\php\\tests
pear config-set www_dir :\\xampp\\php\\www |
您将要用便携式驱动器当前正在运行的实际驱动器号替换":"。不幸的是,只要此驱动器号发生变化,都需要执行此操作,但是它确实安装了我需要的模块。
我首先尝试了所有其他答案,但它们似乎都不起作用,因此我在梨配置文件中静态设置了梨路径。
C:\ xampp \ php \ pear \ Config.php
找到此代码:
1 2 3 4 5 6
| if (!defined('PEAR_INSTALL_DIR') || !PEAR_INSTALL_DIR) {
$PEAR_INSTALL_DIR = PHP_LIBDIR . DIRECTORY_SEPARATOR . 'pear';
}
else {
$PEAR_INSTALL_DIR = PEAR_INSTALL_DIR;
} |
并替换为:
1
| $PEAR_INSTALL_DIR ="C:\\\\xampp\\\\php\\\\pear"; |
我重新启动了apache并使用了以下命令:
确保所有路径不再以C:\ php \ pear开头
在Windows上,请使用Xampp Shell(XAMPP控制面板中有一个" Shell"按钮)
然后
转到" C:\ xampp \ php \ pear"
然后输入
以每1点为例,您的PEAR路径为c:\ xampplite \ php \ pear \
但是,您的路径指向\ xampplite \ php \ pear \ PEAR
将两个放在另一个之上,您可以清楚地看到一个太长:
c:\ xampplite \ php \ pear \
\ xampplite \ php \ pear \ PEAR
您的包含路径设置为将一个梨子深入梨树。 pear文件夹的PEAR子文件夹包含PEAR组件。您需要将包含路径上调一级。
(您不需要c:顺便说一句,您的路径很好,只是太深了)
我解决了
avast删除目录中的server.php
所以禁用防病毒
检查您的laravel文件夹中的(server.php)文件
server.php
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| <?php
/**
* Laravel - A PHP Framework For Web Artisans
*
* @package Laravel
* @author Taylor Otwell <taylor@laravel.com>
*/
$uri = urldecode(
parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)
);
// This file allows us to emulate Apache's"mod_rewrite" functionality from the
// built-in PHP web server. This provides a convenient way to test a Laravel
// application without having installed a"real" web server software here.
if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) {
return false;
}
require_once __DIR__.'/public/index.php'; |
此类问题的另一个陷阱:避免在Windows计算机上的Unix shell(例如Git Bash或Cygwin)中运行pear。我遇到了同样的问题,上面建议的路径修复没有帮助。切换到Windows Shell,pear命令按预期工作。
尝试添加驱动器号:
1
| include_path='.;c:\\xampplite\\php\\pear\\PEAR' |
还请验证PEAR.php是否确实存在,它可能位于\ php \中:
1
| include_path='.;c:\\xampplite\\php' |