Back

Install Specific Laravel Homestead Version and 502 Bad Gateway nginx solved


Hello everyone, quick questions here.

  1. How can I check my current laravel/homestead box version installed?

  2. How can I install an specific laravel/homestead box version? (I would like to install a laravel/homestead version with PHP5 installed)

I appreciate if you can help me out.

TerrePorter replied 2 years ago Solution

I had a similar need a bit ago, so here comes a lot of information:

You can specify a box version with the ‘vagrant box add’ statement.

vagrant box add laravel/homestead -–box-version 0.3.0

This will download the box version 0.3.0, other version numbers can be found at https://atlas.hashicorp.com/laravel/boxes/homestead, some of the older ones might not be downloadable.

If you have an older version already installed and you want to keep it, you can extract the box from vagrant like this:

vagrant box repackage laravel/homestead virtualbox 0.3.0

This will extract a package.box file in the current directory; it will overwrite any existing file. I renamed mine, homestead-0.3.0.box.

Then in the future you can add it by specifying the name, ‘vagrant add box path/to/homestead-0.3.0.box’

Now, to get it to load with the homestead package, you will need to add a config value to your homestead config file.

If your using the latest version of homestead (4.x), you can add a config option to the .homestead/homestead.yaml, perhaps under the provider line,

version = “0.3.0” 

… or whichever version you end up using. Be aware that some of the new features on the newest config may not work on the old version, so you might need to comment out or adjust the configs.

If you have an older homestead config, then you will need to add the full vagrant config line to the scripts/homestead.rb file, perhaps under the “#Configure The Box” section,

config.vm.box_version = “0.3.0”

I have version 0.3.0 and it has php version 5.6.17 installed, I was trying to get to 5.6.10 but .17 was close enough.

You can list the currently installed versions in vagrant with,

vagrant box list 

Returns something like this,

/>vagrant box list
laravel/homestead (virtualbox, 0.3.0)
laravel/homestead (virtualbox, 0.3.3)

Here are the available versions on atlas, that should download,

Box: laravel/homestead
Address: https://atlas.hashicorp.com/laravel/homestead
Available versions: 0.1.0, 0.1.1, 0.1.2, 0.1.3, 0.1.4, 0.1.5, 0.1.6, 0.1.7, 0.1.8, 0.1.9, 0.2.0, 0.2.1, 0.2.2, 0.2.4, 0.2.5, 0.2.6, 0.2.7, 0.3.0, 0.3.3, 0.4.0, 0.4.1

Hope that helps

Links: Virtual box versioning, https://www.vagrantup.com/docs/boxes/versioning.html Virtual box add and repackage command flags, https://www.vagrantup.com/docs/cli/box.html Homestead box versions, https://atlas.hashicorp.com/laravel/boxes/homestead

franckweb replied 2 years ago

Thank you for your help!!

azabraxas replied 2 years ago

Hi, I'm trying to follow the steps above in order to use the homestead box with PHP 5.6. I have a legacy code base that won't work in PHP 7 and I made the mistake up upgrading without looking :( - Anyhow, I need to get back up and running and can't seem to make it work!

I started from scratch (deleted Homestead, old boxes, etc):

Got the older box: vagrant box add laravel/homestead -–box-version 0.3.0

Got Homestead: git clone https://github.com/laravel/homestead.git Homestead

Fired it up: bash init.sh

Edited the YAML file to include: version: “0.3.0”

ran Vagrant Up and get this: default: php7.0-fpm: unrecognized service

What am I doing wrong!? Thank so much for any help!

TerrePorter replied 2 years ago

Right, I didn't use the most recent when I did this.

You need to update other homestead files as those are all pointing to php7 now.

In your scripts folder, you need to change all of the references to php7.0 to php5.

homestead.rb (a couple more changes here)
-> line 190,
change path "/etc/php/7.0/fpm/php-fpm.conf" to "/etc/php/php5-fpm.conf"
-> line 201,
change "service php7.0-fpm restart" to "service php5-fpm restart"

clear-variables.sh 
-> line 4, 
change path "/etc/php/7.0/fpm/php-fpm.conf" to "/etc/php/php5-fpm.conf"

backfire.sh 
-> line 26,
change "service php7.0-fpm restart" to "service php5-fpm restart"

serve-symfony2.sh 
-> line 35 and 47
change "php7.0-fpm.sock" to "php5-fpm.sock"
-> in line 69, 
change "service php7.0-fpm restart" to "service php5-fpm restart"

serve-laravel.sh
-> line 43
change "php7.0-fpm.sock" to "php5-fpm.sock"
-> in line 68, 
change "service php7.0-fpm restart" to "service php5-fpm restart"

serve-hhvm.sh
-> line 59,
change "service php7.0-fpm restart" to "service php5-fpm restart"

*edit: updated the php5-fpm.sock path

TerrePorter replied 2 years ago

Oh,

One more thing I do is change the init.sh (init.bat) file to make the config folder in the current homestead folder.

I also add these to the homestead.yaml

provider: virtualbox
// added after 

// change for each homestead machine
hostname: hsbx1 
name: testvm

// specify the box version
version: "0.3.0"

This allows me to run multiple homestead instances without overwriting the previous one.

I do not use the homestead php scripts as I run on windows and do not want to install php so I just use vagrant up, vagrant halt, etc. in the homestead folder.

I did all of the changes as a test and created a testvm homestead box, the php 5.6.13

azabraxas replied 2 years ago

Thank you so much for your help!! I finally got it up and going with the suggestion to edit the files in the scripts dir.

I had to modify the paths however to this:

// for the conf
/etc/php5/fpm/php-fpm.conf

//for the sock
/var/run/php5-fpm.sock

It's been days, so really, I can't thank you enough!

TerrePorter replied 2 years ago

I see that I left that path out when making the post.

I'm happy that it is working :)

franckweb replied 2 years ago

I also made same editions like azabraxas but I'm using version: "0.2.7" and still get:

502 Bad Gateway nginx/1.8.0

Still looking for the reason

TerrePorter replied 2 years ago

Is there any information in the nginx log file ?

/var/log/nginx/... (domain name).error
TerrePorter replied 2 years ago

I made a local install of version 2.7 and the only way i was able to get the same error was if the paths were wrong in the homestead config.

Example,

folders:
    - map: C:\local_devel\Code
      to: /home/vagrant/Code

sites:
    - map: phptesting.lan
      to: /home/vagrant/Code/phptesting/public

If either of these "to" values were incorrect I got the error you mentioned.

Using the 127.0.0.1:8000 or the phptesting.lan with a modified hosts file.

To fix, either ssh in and check the /etc/nginx/sites-enabled/ files, or fix in the config and do vagrant provision

franckweb replied 2 years ago

Thank you TerrePorter I could finally fix it. My Laravel app is back and running.

I had to edit sites available here

nano /etc/nginx/sites-available/myowndomain.app

and change this line

fastcgi_pass unix:/var/run/php/php5-fpm.sock;

to this line

fastcgi_pass unix:/var/run/php5-fpm.sock;

and that was it! :)

Looking to the logs here was very helpful

sudo nano /var/log/nginx/myowndomain.app-error.log
TerrePorter replied 2 years ago

Awesome! Gald you got it working.

stefanX201 replied 2 years ago

i think it will be helpful to fork the current homestead and reconfig for PHP version 5.6

aprex replied 2 years ago

Franckweb you saved my day! I have the same problem with running app on php 5.6, and fixing nginx config solve the problem


Sign in to participate in this thread!



We'd like to thank these amazing companies for supporting us