What I'm Trying to Achieve
To access localhost from my local machine during the development of a Symfony web app.
My Environment
- WSL2 running on Windows 10
- Linux, Apache2, MySQL, PHP-7.4 stack (with Xdebug3 intalled)
- Debian 10
- Symfony 5.4 (although not sure on if relevant to this problem)
Steps I've Taken
- Set up WSL2 according to this Microsoft WSL2 tutorial
- Set up LAMP stack according to this Digital Ocean tutorial
- Set up Symfony according to this Symfony tutorial
- Run the following bash script on startup to start my services and set the host to the virtual WSL IP in my xdebug.ini file
#!/bin/sh
REMOTEIP=`cat /etc/resolv.conf | grep nameserver | sed 's/nameserver\s//'`
sed -i -E "s/client_host=[0-9\.]+/client_host=$REMOTEIP/g" /etc/php/7.4/mods-available/xdebug.ini
service php7.4-fpm start
service apache2 start
service mysql start
- Run my Symfony project on the development server using
symfony serve -d
(Symfony then tells me "The Web server is using PHP FPM 7.4.23 https://127.0.0.1:8000") - Go to https://localhost:8000/ in Chrome where the app is running
What I Expect to Happen
- My Symfony web app to be running on https://localhost:8000/ when I visit the URL in my Chrome browser
What Actually Happens
- I get "This site can't be reached localhost refused to connect." in the Chrome browser
What I've Tried
- This used to happen less frequently and I would give my laptop a restart, repeat the process above, and I could connect via https://localhost:8000/. However, it refuses to connect more regularly now (like 8/10 times I start up for the day)
- Connecting to https://127.0.0.1:8000 yields the same result.
- Connecting to the site using the internal WSL IP address, found using
hostname -I
and replacing localhost with this IP (still on port 8000). This is an adequate workaround to use my app, however I am unable to interact with my database via MySQL Workbench without having to set up a new connection, therefore a fix where I can use localhost would be very helpful! - (Based off comments) Only ran
symfony serve -d
without starting apache and PHP services separately - still sometimes allows connections to localhost but sometimes doesn't work.
Conclusion
The behaviour is odd as it works sometimes but other times it doesn't when the exact same steps are carried out. I am unsure where else to look for answers and I can't seem to find anything online with this same problem. Please let me know if any config files, etc would be helpful. Thank you so much for your help! :)
symfony serve
- or do you have any specific reason for configuring Apache when you didn't use it after all? – Doityourselfservice apache2 start
and only runningsymfony serve -d
? As I have tried stopping the apache service but I still get the same issue, however I'll also test this out with a restart. – Samoyedicsymfony serve
, but Apache – Doityourselfsymfony serve -d
and started mysql and it works now :) Like I mentioned though it was quite flukey before, I will try it again each day in the following week and update here whether that is a definite fix. You can create and answer at that point as well if you would like as well so I can accept it. – Samoyediclocalhost:9000
, and may cause issues with other services that also uses port 9000. – Catlikesymfony serve -d
orsymfony server:start
without also individually starting apache or PHP, for the first 2 days I connected to localhost:8000 with no problem. However, this morning I did this same and I got "This site can't be reached localhost refused to connect." again. I think it must be a Windows/WSL issue. – Samoyedic