我目前正在尝试在Windows上获得一个工作的PHP环境,但由于某种原因Apache无法执行例如print_r(SQLite3::version());
,但说Fatal error: Class 'SQLite3' not found in C:Program Files (x86)Apache2.2htdocsindex.php on line 8
,而 PHP .exe打印完全正确的输出。
在php.ini我只加载extension=php_sqlite3.dll
,没有别的。在httpd.conf我得到了PHPIniDir "C:/Program Files (x86)/PHP/"
,使Apache能够处理正常的php命令,如echo phpinfo();
。
有人知道我要做什么,所以SQLite3通过Apache工作了吗?
提前感谢!
编辑:我自己解决了这个问题:Windows安装的默认行extension_dir = "ext"
必须更改为绝对路径,在我的例子中是extension_dir = "c:Program Files (x86)PHPext"
。这一切都成功了! 运行phpinfo()
并检查扩展是否加载,如果没有,检查Configuration File (php.ini) Path
和Loaded Configuration File
,看看它在哪里寻找php.ini
以及加载了哪个文件。如果正确,将ini中的display_startup_errors
设置为on,并查看apache错误日志,查看加载某些扩展是否有问题。我猜在加载sqlite之前,你需要加载php_mbstring.dll