Run php artisan from one Laravel install to another

php artisan install
laravel run artisan command from controller
php artisan serve
install laravel
how to run laravel project in xampp
php artisan migrate
laravel run schedule manually
laravel artisan commands cheat sheet

We have a Laravel deployment website set up under deploy.mysite.com which handles deployments for a multitude of other websites.

One other website I'm trying to deploy which is also a Laravel site resides under site2.myothersite.com.

Both are on the same server. Deploy calls a script on site2, this deploy script runs various commands after cd'ing to the project directory. We use the following to update the database structure.

php artisan migrate --force

Ordinarily when this is run directly via SSH when in the project root, it runs just fine.

However when this is run via the deployment script (using php exec() to run these commands) the process does work - however, instead of updating the project that we've cd'd into, it updates the database structure of the deployment site!

It seems as if the php artisan migrate command ignores the fact I've cd'd into another project and it takes the database values from the current directory.

How can I go about changing this behaviour?

After playing around with multiple different solutions I eventually came to realise that the problem was the .env file from the project that I was in was setting the environment variables and then weren't being overwritten by anything therefore was then essentially running the code as the wrong site.

What I did to solve this

In my deploy script I manually loaded up the .env file and overwrote the environment variables with overload rather than just load;

$dotenv = Dotenv::create(__DIR__);
$dotenv->overload();

This was literally all I had to do to get my original script working.

NOTE: as this is a laravel install at all ends, the dotenv package was already installed. This could be used for any project by installing it separately.

Artisan CLI - Laravel, You may also view the current version of your Laravel installation using the Sometimes you may wish to execute an Artisan command outside of the CLI. Artisan comes with Laravel by default, if your php command works fine, then the only thing you need to do is to navigate to the project's root folder. The root folder is the parent folder of the app folder.

Rather than cd to the directory, you could change the command to something similar to this:

php /var/www/sitea/artisan migrate --force

That will run the artisan command for the provided directory.

Laravel Quickstart - Laravel, WARNING You're browsing the documentation for an old version of Laravel. Next run the composer install command in the root of your manually created like to use PHP's built-in development server, you may use the serve Artisan command: Installing the proper version of PHP, required extensions, and other needed  This command will download and install a fresh copy of Laravel in a new your-project-name folder within your current directory. If you prefer, you can alternatively download a copy of the Laravel repository from GitHub manually. Next run the composer install command in the root of your manually created project directory.

$log = shell_exec("unset DB_HOST &&
       unset DB_PORT && 
       unset DB_PASSWORD && 
       unset DB_USERNAME && 
       unset DB_DATABASE && 
       composer dump-autoload &&
       cd /var/www/yourproject/ && php /var/www/yourproject/artisan migrate:fresh &&
       php /var/www/yourproject/artisan db:seed &&
       php /var/www/yourproject/artisan seed:translation");

Artisan Console - Laravel, Command Whitelist. Tinker utilizes a white-list to determine which Artisan commands are allowed to be run within its shell. By default, you may run the  Run artisan commands on shared hosting server (Laravel) Laravel is a popular and excellent framework of php. It provides many functionalities out of the box like authentication, events, job queues, artisan commands and many more. A problem on shared hosting- When we deploy our laravel project on a shared hosting then we are unable to …

Migrations & Seeding - Laravel, WARNING You're browsing the documentation for an old version of Laravel. The path should be relative to the root directory of your installation: php artisan migrate:make foo --path=app/migrations From this class, you may use the call method to run other seed classes, allowing you to control the seeding order. Open the console and cd your project root directory. Run composer install or php composer.phar install. Run php artisan key:generate. Run php artisan migrate. Run php artisan db:seed to run seeders, if any. Run php artisan serve. #####You can now access your project at localhost:8000 :) If for some reason your project stop working do these:

I want to run my existing laravel project into my new windows system, I have copied laravel project from old windows system now i want to run this project into my new Posted 1 year ago by gurvindersingh php artisan config:​cl Did you install php, mysql or any other things you need? After downloading Composer.exe, run it, in the installation process, if you are prompted for the php.exe path, its address in your system is xampp/php by default. If the composer is installed correctly, you'll see below picture by entering composer command in cmd. Now to install Laravel on the localhost, type below command in cmd.

Run laravel project locally · GitHub, composer install; php artisan migrate. Copy link. @ghost. ghost 66, Array) #1 /​home/prakash/pivot_survey/vendor/composer/autoload_real.php(66): require() This usually doesn't last for more than a few minutes, so you can run php artisan backpack:install --timeout=600 to increase the timeout to 10 minutes. If this doesn't work either, take a look behind the scenes with php artisan backpack:install --timeout=600 --debug, and refer to this thread.

Comments
  • This is something I have actually tried - I also double checked it just now, unfortunately I get the same result. I wiped the database first, and instead of creating the tables, it failed, telling me that a users table already exists (which it does on the deploy site), so even running the command as above it's still trying to run it on a different install.
  • Did you check to make sure the .env file in the site contains the correct database credentials?