«ошибка curl 7: не удалось подключиться к порту 127.0.0.1 8888: в соединении отказано» при использовании travis ci с laravel / codeception

Я использую Laravel 5.6 с Codeception для приемочного тестирования, и это продолжает происходить:

1) TestCest: Home
 Test  tests/acceptance/TestCest.php:home

  [GuzzleHttp\Exception\ConnectException] cURL error 7: Failed to connect to 127.0.0.1 port 8888: Connection refused (see http://curl.haxx.se/libcurl/c/libcurl-errors.html)  

Scenario Steps:
 1. $I->amOnPage("/") at tests/acceptance/TestCest.php:6

Редко кажется, что это работает случайным образом, но по большей части это ошибки. Я потратил на это некоторое время и хотел бы исправить это навсегда.

некоторые соответствующие файлы:

.travis.yml

language: php
sudo: false
dist: trusty
cache: false

php:
  - 7.2.3

services:
  - mysql

before_install:
  - mysql -e 'CREATE DATABASE IF NOT EXISTS test;'

install:
  - cp .env.travis .env
  - composer self-update
  - composer install --no-interaction
  - npm i -g npm
  - npm install

before_script:
  - php artisan key:generate
  - php artisan migrate --no-interaction -vvv
  - php artisan serve --env=testing --no-ansi --no-interaction --port=8888 --host=localhost &

script:
  - vendor/bin/codecept run acceptance --no-ansi --no-interaction

.env.travis

APP_NAME=Laravel
APP_ENV=testing
APP_KEY=base64:dHJA2G0xXnUEP82ota/J4WBnXSYGP9VHRBl6fvclfjk=
APP_DEBUG=true
APP_URL=http://localhost:8888

LOG_CHANNEL=stack

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=test
DB_USERNAME=root
DB_PASSWORD=

BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync

REDIS_HOST=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379

Пожалуйста, опубликуйте свое решение как самостоятельный ответ, а не как редактирование.

Cœur 22.04.2018 19:44

Я переместил ваше решение в ответ сообщества вики.

Cœur 30.04.2018 12:56
0
2
2 255
2

Ответы 2

Решение OP.

Я заменил

php artisan serve --env=testing --no-ansi --no-interaction --port=8888 --host=localhost &

с участием

php -S 0.0.0.0:8888 -t ./public/ &

У меня была аналогичная проблема с Vanilla (Core) PHP, когда я использовал CURL. Мой код подключался к другому компьютеру в локальной сети.

Код CURL был правильным, и с ним не было проблем.

Постоянно получал такую ​​ошибку: Не удалось подключиться к порту 127.0.0.1 8888: в подключении отказано

Решением этой проблемы было открытие порта 8888 на Apache на моем компьютере. Поскольку я использую Ubuntu 16.04, я сделал это в файле:

/etc/apache2/ports.conf

Здесь я добавил эту строку в файл портов:

Listen 8888

После этого я перезапустил Apache:

sudo service apache2 restart

Другие вопросы по теме