Как запустить Laravel Project из bash файла? - PullRequest
2 голосов
/ 22 января 2020

Я закончил свой проект, и мне нужен файл для запуска 3 команд в терминале.

php artisan serve
php artisan migrate
php artisan queue:work --daemon --timeout=

, и мне нужно получить имя базы данных, имя пользователя, пароль и изменить файл .env

Это моя bash оболочка на данный момент

#!/bin/bash
echo "Server Ready"
sudo php artisan serve;
echo "Migration Started";
sudo php artisan migrate;
echo "migration Finished Successfuly";
echo "Queue Started";
sudo php artisan queue:work --daemon --timeout=3000;

, но мне нужна помощь, чтобы она полностью заработала.

Я запускаю этот скрипт и после первой команды php artisan serve мой скрипт остановился

Ответы [ 3 ]

3 голосов
/ 22 января 2020

я нашел свой awnser

#!/bin/bash

cp .env.example .env

# config name database
sed -i -e 's/DB_DATABASE=laravel//g' .env
echo -n "Enter a database name > "
read database
sed  -i "12i  DB_DATABASE=$database" .env

# config username
sed -i -e 's/DB_USERNAME=root//g' .env
echo -n "Enter a  username > "
read username
sed  -i "12i  DB_DATABASE=$username" .env

# config password
sed -i -e 's/DB_PASSWORD=//g' .env
echo -n "Enter  password > "
read password
sed  -i "12i  DB_DATABASE=$password" .env

echo "Server Ready"
sudo php artisan serve &
echo "Migration Started" 
sudo php artisan migrate &
echo "migration Finished Successfuly" 
echo "Queue Started"
sudo php artisan queue:work --daemon --timeout=3000 &

я выкладываю его для нуждающихся в строке 1, переименовываем .env.example в .env, после этого переименовываем базу данных с выбранным пользователем именем и делаем это для имени пользователя и пароль и спасибо моему другу @Lajos Arpad, в последней строке мы можем запустить php команды ремесленника все вместе

2 голосов
/ 22 января 2020

Вам просто нужно поставить & в конце каждой строки, которая будет блокировать, и вы не собираетесь ждать этого:

#!/bin/bash
echo "Server Ready"
sudo php artisan serve &
echo "Migration Started" 
sudo php artisan migrate &
echo "migration Finished Successfuly" 
echo "Queue Started"
sudo php artisan queue:work --daemon --timeout=3000 &

Что касается вашего .env файла, вы можете реализовать скрипт в PHP он получает входные данные командной строки и соответственно изменяет .env, а затем вызывает его с любыми необходимыми входными данными.

2 голосов
/ 22 января 2020

Команда php artisan serve запускает внутренний веб-сервер php. Это означает, что для прослушивания ввода PHP необходимо заблокировать текущий поток. Вы можете просто запустить эту команду после всех остальных.

#!/bin/bash
echo "Migration Started";
sudo php artisan migrate;
echo "migration Finished Successfuly";
echo "Queue Started";
sudo php artisan queue:work --daemon --timeout=3000;
echo "Server Ready"
sudo php artisan serve;

Но, как уже упоминалось здесь , вы должны использовать эту команду, чтобы иметь работающую среду. Вы могли бы хотеть использовать сервер WAMP вместо этого. Или, может быть, docker, если вы испытываете приключения.

...