транспортир — Как мне запустить встроенный веб-сервер PHP в фоновом режиме?

Я написал сценарий PHP CLI, который выполняется в среде непрерывной интеграции. Одна из вещей, которую он делает, это то, что он выполняет тесты транспортира.

Мой план состоял в том, чтобы получить встроенный PHP 5.4 встроенный веб-сервер бежать в фоновом режиме:

php -S localhost:9000 -t foo/ bar.php &

А затем запустите тесты транспортира, которые будут использовать localhost:9000:

protractor ./test/protractor.config.js

Однако встроенный веб-сервер PHP не работает в качестве фоновой службы. Я не могу найти ничего, что позволило бы мне сделать это с помощью PHP.

Можно ли это сделать? Если так, то как?
Если это абсолютно невозможно, я открыт для альтернативных решений.

7

Решение

Вы можете сделать это так же, как и любое приложение в фоновом режиме.

nohup php -S localhost:9000 -t foo/ bar.php > phpd.log 2>&1 &

Здесь nohup используется для предотвращения блокировки вашего терминала. Затем вам нужно перенаправить стандартный вывод (>) и stderr (2>).

голосует «data-shortcut =» V

Другие решения

Также вот способ остановить работу встроенного php сервера в фоновом режиме:

# Run in the background as Devon advised
nohup php -S localhost:9000 -t foo/ bar.php > phpd.log 2>&1 &
# Get last background process PID
PHP_SERVER_PID=$!

# rinning tests and everything...
protractor ./test/protractor.config.js

# Send SIGQUIT to php built-in server running in background to stop it
kill -3 $PHP_SERVER_PID

Это полезно, когда вам нужно запустить тесты на некоторой стадии CI и т. Д.

19

7
По вопросам рекламы [email protected]