Запуск локального сервера Yii2 с WAMP - PullRequest
0 голосов
/ 03 мая 2020

Я - веб-интерфейс JS dev, и я начал работать над проектом, который имеет PHP бэкэнд, работающий на платформе Yii2. Проект пришел без инструкций по установке, поэтому я пытаюсь определить его как I go, но исходя из Node.js ... это довольно странно.

Я скачал и установил WAMP, создал MySQL БД для API с использованием MyPHPAdmin и импорт данных из дампа. Это сработало, и я могу видеть таблицы и данные. Теперь, когда я go до localhost, я вижу, что WAMP работает. Я попробовал пример проекта Yii, который также работает на localhost/yii-test/web.

. В соответствии с Yii я должен обслуживать этот API, переместив весь этот каталог API в каталог /www установки WAMP. Теперь, если я go до 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 install и npm run start, который, вероятно, делал бы что-то вроде build и serve. Я не могу поверить, что это так сложно настроить в сравнении.

Любой совет или помощь очень важны!

РЕДАКТИРОВАТЬ: Когда я пытаюсь получить доступ к своему серверу из внешнего интерфейса по любому адресу, я get: 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 serve: Document root "C:\Users\hesel\dev\repo\eartotheground\fania-api\console/web" doe s not exist.

Но суть ошибочной Поведение - это невозможность подключения к предположительно работающему локальному серверу (он вообще работает? Как я могу определить?).

Ответы [ 2 ]

0 голосов
/ 04 мая 2020

Я получил это работает. Для хостинга с WAMP:

  1. Поместите всю папку с кодом сервера в www/ (в директории установки WAMP)

  2. Редактировать 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}">
Редактировать 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.

0 голосов
/ 03 мая 2020
  • Если yii установлен через проект composer, go, откройте терминал и запустите ./yii serve

  • Если загружен yii как файл архива: откройте строку терминала / cmd в папке проекта и введите composer install, чтобы убедиться, что все пакеты в вендоре установлены.

получил в config / web. php

'request' => [ 'cookieValidationKey' => 'put your random generated string', ],

Доступ к приложению через http://localhost/basic/web/

Примечание: попробуйте xammp для php локального развития, которое вы не хотите сожалеем

...