使用WAMP运行本地Yii2服务器

ijnw1ujt  于 2022-11-09  发布在  其他
关注(0)|答案(2)|浏览(192)

我是一个前端JS开发人员,我已经开始在一个项目上工作,这个项目有一个运行Yii 2框架的PHP后端。这个项目没有安装说明,所以我试着在我去的时候弄清楚它,但是来自Node.js...它相当混乱。
我下载并安装了WAMP,使用MyPHPAdmin为API创建了MySQL DB,并从转储文件中导入了数据。这样就可以看到表和数据了。现在,当我转到localhost时,我看到WAMP正在运行。我尝试了示例Yii项目,它也在localhost/yii-test/web下运行。
根据Yii,我将把整个API目录移动到WAMP安装的/www目录中来提供这个API。现在如果我转到localhost/fania-api,我会看到我的服务器的目录列表。对我来说,这意味着API可以在本地访问。
我已经将前端的.env配置为指向localhost/fania-api,但是当我发送任何请求时,我会得到一个CORS错误,我假设它掩盖了一些404或500错误。现在有趣的是,我得到的.env与URL http://fanintelligence.localhost一起提供,而不是Yii提供的localhost/fania-api
我的问题是,这两件事是如何结合在一起的?我安装了WAMP,并在默认端口设置了MySQL DB,但我的API如何知道它在那里?我如何知道它是否是正确的端口?这两个不同的URL是如何匹配的?
此外,API不包含/web文件夹,不确定这是否是一个问题,但我也不能用php yii serve提供它。如果这是一个Node.js服务器,我会克隆npm installnpm run start,它们可能会做类似buildserve的事情。我不敢相信相比之下,这是如此困难的设置。
任何建议或帮助都非常感谢!
编辑:当我尝试从前端访问服务器时,我得到的是:Access to fetch at 'http://localhost/fania-api/oauth2/token?accessToken=undefined' from origin 'http://localhost:3000' has been blocked by CORS policy: Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource. If an opaque response serves your needs, set the request's mode to 'no-cors' to fetch the resource with CORS disabled. /fania-api/oauth2/token?accessToken=undefined:1 Failed to load resource: net::ERR_FAILED但是我不相信这是一个实际的CORS错误,因为以前的开发人员也使用本地来测试,所以CORS策略将允许这一点。我的猜测是我指向的地址不正确或服务器实际上没有运行。
如果我尝试运行php yii serveDocument root "C:\Users\hesel\dev\repo\eartotheground\fania-api\console/web" doe s not exist.
但错误行为的关键是无法连接到一个理应是活的本地服务器(它甚至是活的吗?我怎么知道?)。

lg40wkob

lg40wkob1#

  • 如果yii是通过composer安装的,则转到项目,打开终端并运行./yii serve
  • 如果yii已经下载为存档文件:打开项目文件夹中的terminal/cmd prompt,然后键入composer install,以确保安装了vendor中的所有软件包。

转到config/web.php
'request' => [ 'cookieValidationKey' => 'put your random generated string', ],
通过http://localhost/basic/web/访问应用程序

  • 注意:尝试xammp的php本地开发,你不会后悔 *
mo49yndu

mo49yndu2#

我让它工作。为主机与WAMP:
1.将整个服务器代码文件夹放置在www/中(在WAMP安装目录中)
1.编辑wamp64\bin\apache\apache{version}\conf\httpd.conf

DocumentRoot "${INSTALL_DIR}/www/{your project}/{optional public folder}"
<Directory "${INSTALL_DIR}/www/{your project}/{optional public folder}">

1.编辑wamp64\bin\apache\apache{version}\conf\extra\httpd-vhosts.conf

<VirtualHost {project name}:80>
 ServerName {project name}.localhost
 ServerAlias {project name}.localhost
 DocumentRoot "${INSTALL_DIR}/www/{your project}/{optional pub"
 <Directory "${INSTALL_DIR}/www/">
   Options +Indexes +Includes +FollowSymLinks +MultiViews
   AllowOverride All
   Require local
 </Directory>
</VirtualHost>

您的服务器现在应该在{project name}.localhost上运行。

相关问题