【发布时间】:2019-01-23 14:28:08
【问题描述】:
对不起,如果以前有人问过这个问题,但我似乎找不到答案。我有一个 Laravel 5.5 应用程序,可以让用户创建自己的项目。它的作用是执行一个 shell 脚本,该脚本执行 git clone 到一个新目录
- cd 到新的 git 目录
- 将 .env db 详细信息更新到新目录 (db_dirname)
- 运行作曲家安装
- php 工匠密钥:生成
- php artisan 迁移 --seed
我遇到的问题是,当我使用...运行它时...
sh project1/public/createproject.sh subdir
它按预期运行,但是当从 PHP 运行时,php artisan 命令是针对当前项目而不是正在动态创建的项目运行。
// Create the Git pull migration script
$process = new Process('sh ./createproject.sh '.$this->url);
$process->setTimeout(300);
$process->run();
// Executes after the command finishes
if (!$process->isSuccessful()) {
throw new ProcessFailedException($process3);
}
\Log::Debug($process->getOutput());
shell脚本如下供参考。
SUBDOMAIN="$1.domain.com"
git clone git@bitbucket.org:user/project.git
cd /home/cloudspr/$SUBDOMAIN
export COMPOSER_HOME="/opt/cpanel/composer/bin/composer"
composer install -d /home/user/$SUBDOMAIN
pwd
php artisan key:generate
php artisan migrate --seed --database=mysql
grep APP_KEY .env
非常感谢任何帮助。
【问题讨论】:
标签: php laravel laravel-5.5