dsdapobp26141 2018-08-16 15:08
浏览 80
已采纳

Laravel Artisan从错误的项目中加载

Sorry if this has been asked before but I can't seem to find the answer. I have a Laravel 5.5 application that lets users create their own project. What this does is it executes a shell script that performs a git clone to a new directory

  • cd to the new git directory
  • update the .env db details to new directory (db_dirname)
  • run composer install
  • php artisan key:generate
  • php artisan migrate --seed

The problem I'm having is that when I run this using...

sh project1/public/createproject.sh subdir 

It runs as expected however when running this from PHP the php artisan commands are running against the current project rather than the project that is being dynamically created.

 // 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());

The shell script is below for reference.

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

Any help is much appreciated.

  • 写回答

1条回答 默认 最新

  • dongxianghui3709 2018-08-16 16:07
    关注

    Seems like you have trouble selecting the right working directory.

    A couple if ideas come to mind:

    1. Edit the bash script to point directly to the artisan file you are targeting:

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

    2. Try changing the working directory before executing the script like this:

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

    3. Use chdir

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥50 导入文件到网吧的电脑并且在重启之后不会被恢复
  • ¥15 (希望可以解决问题)ma和mb文件无法正常打开,打开后是空白,但是有正常内存占用,但可以在打开Maya应用程序后打开场景ma和mb格式。
  • ¥20 ML307A在使用AT命令连接EMQX平台的MQTT时被拒绝
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能