Can't start one project but can start another one

I have two Phoenix projects in the same directory and when I run 'mix phx.server ’ for one of them and go to my localhost:4000 the browser doesn’t connect. But when I start the other one it does connect.

Does anyone know why this might be?

I assume you mean you have two projects in their own directories within the same directory?

In any event, it’s almost certainly because they are both trying to run on port 4000. Look for port: 4000 in config/dev.exs and change it to port: System.get_env("PORT") || 4000 then you can specify different ports like so $ PORT=4010 mix phx.server.

Yes I do mean that.

I just tried that but it didn’t work.

I didn’t mention that I am running a virtual machine and connecting to it through ssh. So the projects are on the VM and I’m running the browser on my machine. But that shouldn’t matter because I can connect to one

(when I said I go to localhost I actually go to the vm’s IP)

Ah, well that changes things. I never use VMs so not sure I can be of much help. Are you getting any errors though? Or are both servers starting and you just can’t connect to one of them? If you are getting an error, share it here as maybe others can help.

I’m not getting any errors, both servers just start right up but I can only connect through one from the browser

If that’s the case then how did you connect with localhost:4000?

You can run netstat -ln on the VM to see if it is listening on the IP/port (0.0.0.0:4000) that you think it is:

tcp        0      0 0.0.0.0:4000            0.0.0.0:*               LISTEN     

I didn’t ACTUALLY connect through localhost:4000, i connected through {vm_ipaddress}:4000
I just said localhost to simplify the question and because i don’t think it’s got anything to do with that