Laravel Artisan 从错误的项目加载

Posted

技术标签:

【中文标题】Laravel Artisan 从错误的项目加载【英文标题】:Laravel Artisan Loading from Wrong project 【发布时间】: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

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

您似乎无法选择正确的工作目录。

如果想到一些想法:

    编辑 bash 脚本以直接指向您要定位的 artisan 文件:

    php /home/user/project.../artisan key:generate

    尝试在执行脚本之前更改工作目录,如下所示:

    $process = new Process('cd new/working/directory && sh ./createproject.sh '.$this->url);

    使用chdir

【讨论】:

以上是关于Laravel Artisan 从错误的项目加载的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录 [重复]

在 Mac 上设置 Laravel php artisan migrate 错误:没有这样的文件或目录 [重复]

laravel artisan错误处理集合

Laravel php artisan 产生错误

我的 laravel 5.6 项目在 localhost 上打开,但不在 php artisan serve cmd 上打开

php laravel artisan 迁移模型中的错误?