在WAMP 2.2上使用Laravel的OpenSSL问题

时间:2014-08-07 07:55:27

标签: php openssl wamp

我已经有几天这个问题而且它真的开始惹恼我,因为我无法弄清楚我做错了什么。无论如何,我正在尝试在laravel上设置localhost项目。我做的第一件事是:

composer create-project laravel/larvel test-project

这为框架组织了各种组件,并在web root中创建了一个项目。在此之后,我导航到此URL

http://localhost/test-project/public/

正如预期的那样,我得到laravel欢迎页面,以显示我的项目已成功设置。但是,当我刷新页面时,我得到以下错误,该错误与openSSL模块有关:

RuntimeException thrown with message "OpenSSL extension is required."

Stacktrace:
#8 RuntimeException in C:\wamp\www\test-project\bootstrap\compiled.php:8375
#7 Illuminate\Encryption\Encrypter:validMac in C:\wamp\www\test-project\bootstrap\compiled.php:8367
#6 Illuminate\Encryption\Encrypter:getJsonPayload in C:\wamp\www\test-project\bootstrap\compiled.php:8348
#5 Illuminate\Encryption\Encrypter:decrypt in C:\wamp\www\test-project\bootstrap\compiled.php:8271
#4 Illuminate\Cookie\Guard:decryptCookie in C:\wamp\www\test-project\bootstrap\compiled.php:8262
#3 Illuminate\Cookie\Guard:decrypt in C:\wamp\www\test-project\bootstrap\compiled.php:8256
#2 Illuminate\Cookie\Guard:handle in C:\wamp\www\test-project\bootstrap\compiled.php:10895
#1 Stack\StackedHttpKernel:handle in C:\wamp\www\test-project\bootstrap\compiled.php:659
#0 Illuminate\Foundation\Application:run in C:\wamp\www\test-project\public\index.php:49

现在我遇到的问题是这个。我确保openSSL被激活了。我通过运行以下命令php --ini来完成此操作,该命令向我展示了php.ini文件的路径composer将用于创建项目。它位于以下目录中:

C:/wamp/bin/php/php5.4.3/

我取消注释了这一行:

extension=php_openssl.dll

并重新启动WAMP,但问题仍然存在。我想知道是否有人可以对这种令人难以置信的恼人情况有所了解,因为我相信在创建项目之前我已经小心确保安装了必要的组件。

我知道apache使用了一个不同的php.ini文件,只是为了确保这不是问题,我也没有触及同一行(上图)。但是,根据我在使用composer创建项目时的理解,它不使用此php.ini

如果您需要更多信息,我很乐意提供。我似乎已经用尽所有选项,除了WAMP的全新安装,我宁愿不必这样做。我很感激任何帮助。

1 个答案:

答案 0 :(得分:1)

好的,首先你需要知道的是WampServer中有2个php.ini文件。

C:/wamp/bin/php/php5.4.3/php.ini中的

ONE ,当您使用PHPCLI(命令行界面)时,即运行时使用此

composer create-project laravel/larvel test-project

因此,如果php.exe CLI需要访问特定扩展,则必须编辑此扩展名。

TWO \wamp\bin\apache\apachex.y.z\bin文件夹中还有一个。这是Apache使用的,当您使用wampmanager菜单时进行编辑,您应该使用菜单来访问它,因为这可以确保您编辑正确的文件。

left click wampmanager -> PHP -> php.ini 

因此,如果网站需要访问特定扩展程序,则必须对此进行编辑

所以我成像你编辑了错误的文件,但很容易修复。

一旦编辑了正确的文件以激活openssl,您的下一个问题可能是这两个文件可能需要从PHP文件夹复制到apachex.y.z/bin文件夹。确保您复制而不是移动,因为CLI的PHP文件夹中也需要它们。

libeay32.dll
ssleay32.dll

一旦完成,你应该好好去。