Bit of an odd one. Any changes I make to Job classes are ignored. Regardless of if I run composer dump-autoload and artisan clear-compiled etc. Going by this answer, I've double checked that OPcache is disabled.
The only way I can get homestead to acknowledge the changes is to halt and up the box, which is obviously very time consuming.
Does anyone know how to get around this?
For completeness. I'm running homestead 0.2.6 on Windows 10. But it's never been a problem, until yesterday.
Related
I have a strange one here, I have been learning Laravel with Laracasts from scratch 8 for the last couple of weeks, everything in my environment (Ubuntu WSL2, Docker and Laravel 8) was running smooth all week with no issue. I returned to work this morning and following the same boot up I always do, now any browser I use can't open the local host port that I launch from php artisan serve.
The CLI tells me that the development server is active but the browser won't connect. I've tried changing it across different networks, dropped firewalls and cleared caches. I've checked logs and nothing gives an indication of a problem. Usually when I run the command php artisan serve --host=127.0.0.1 --port=8080&
the ampersand keeps it alive and every refresh or connection is returned to the CLI, it's like artisan serve has stalled?
I think I found a solution and if somebody comes across this and can explain why it would be of great help in the future.
https://stackoverflow.com/a/40167414/2128089
composer dump-autoload
php artisan clear-compiled
composer clear-cache
This answer gave me some commands to run, which were the last I ran before a computer shutdown, once I re-ran my usual boot up I got all systems go
As expected:
I don't know if this is why it worked but it's working..
I'm facing a wired issue with Laravel where routes with multiple parameters (both mandatory/optional) aren't working.
Environment Information
Local: Windows, XAMPP, PHP 7.3
Production: Ubuntu 18.04, PHP 7.4
Initially, I suspected issue with .htaccess file but that seems not to be an issue.
This works perfectly on my Local, but for some reason, that doesn't work on Ubuntu Server.
The following code works perfectly.
Route::any('route/me/','Tst#routeme');
However, any of the following doesn't work:
Route::any('route/me/here/','Tst#routeme');
Route::any('route/me/here/{id?}','Tst#routeme');
Route::any('route/me/here/and/here','Tst#routeme');
Any suggestions where I can look up to fix this out, please?
My first suggestion would be to place the route with most params at the top like:
Route::any('route/me/here/and/here','Tst#routeme');
Route::any('route/me/here/{id?}','Tst#routeme');
Route::any('route/me/here/','Tst#routeme');
It's more like which ever route matches first gets executed first so from top to bottom the least param route matches last.
Second thing i would suggest you to group the routes like:
Route::prefix('route/me')->group(function () {
Route::get('here/and/here', 'Tst#routeme');
Route::get('here/{id?}', 'Tst#routeme');
Route::get('here', 'Tst#routeme');
});
for better readability...
I can't give you specifics on why this particular scenario is happening but, matching your development and production environments should elimate these problems in future.
Homestead Docs
The Homestead vagrant box provided by the Laravel team is a solid choice and well documented. It is an Ubuntu 18.04 / 20.04 machine and can be configured with many add-ons. You can easily configure which version of PHP any given project is using with a single line in the Homestead.yaml file.
Docker Docs
Docker is a little more advanced but very flexible in how it can be configured. It's container design allows you to isolate the dependencies of one project from the next.
These aren't that difficult to setup (easily done within a day or two) and allow you to replicate your production environments almost perfectly.
It will help massively in those "but it works on my machine" moments!
updating my own question so that might be of some help for others.
I would say probably this is the last thing that someone (or at least me) failed to check. I tried to list the routes in my server and found my newly added route was not found.
php artisan route:list
Earlier, I cleared cache, restarted apache but didn't help. Finally found the following commands to be a lifesaver when routes are cache & aren't working.
So the thing that worked for me - clearing the "route" cache.
php artisan route:cache
php artisan route:clear
My hearty thanks to #Spholt,#Akbar khan, #Spholt, #Gzai Kun for helping out.
This happened to me a couple of months ago. It might have happened in the process of a composer update, but I'm far from sure on that one. I've even updated my project to Laravel 5.3 and it still I can not get make:migration to work through Artisan. No the project it updated to 5.4 and it still do not work.
I've checked out this thread and I have the exact same problem. The symptoms were exactly the same, however the OPs solutions did not work for me.
I get no error or result in the terminal when running make:migrate.
I can generate any other file through Artisan it seems.
I tried to create a new model and pass the -m along with it. Didn't work.
I've checked permissions (and even changed migration folder), but didn't
help.
If I create my own migration-file the rest of the process through artisan works fine (migrate, DB-manipulation etc).
I've tried with different terminals and computers.
Since project were upgraded and even reinstalled I fear it has
nothing to do with the deep kernal. However maybe some sort of conflict from the higher level.
And in the last phase of my quest I tried to figure out what user interacting elements that can possibly effect the make:migration. Nothing worked.
I searched the web without any solution, then I gave up on that project and started to make my own migration files. However I now got some new hope when I saw that other thread.
After some troubleshooting I finaly managed to figure out the problem.
I narrowed it down to have something to do with the config/app.php-file.
Seems I in this project had typed in:
'timezone' => 'UTC+2'
This made creation of migration-files come to a halt without error messages. And it effected only the creation of migration-files (at least what I noticed).
I changed it to 'UTC' and it worked liked a charm again.
Note: the 'UTC+2' worked in the application and I never saw any other indications of errors regarding the rest of the app.php-file, or in the application in general.
Solution: When I instead used the parameters from this site it all worked perfectly again.
running mac Yosemite 10.10.5
A couple of days ago I installed Laravel for the first time. That part went pretty smooth! Once it was time to install composer I was able to find some help here! This command on bash Profile made it work for me: PATH="$PATH:~/.composer/vendor/bin"
Fast-Forward to today when I am attempting to install XAMPP and Bitnami.. The Apache server and all that. So I think I am ready to roll and as I tried to create a project I was told that I did not have the mcrypt file? So down THAT rabbit hole I went. That was a tough one but I managed to get it to work.
Now forgive me but I don't remember what happened next that led me to re-install composer and that turned out to be an other huge issue as it wouldn't allow me to do so.. I would get this message
Some settings on your machine make Composer unable to work properly.
Make sure that you fix the issues listed below and run this script again:
The detect_unicode setting must be disabled.
Add the following to the end of your `php.ini`:
detect_unicode = Off
After doing some research I was able to download Composer again by running this command..
curl -s getcomposer.org/installer | php -d detect_unicode=Off
I thought I was on my way.. 2 hours have gone by! Boy was I wrong! :(
What once used to work.. composer commands in my terminal.. all of the sudden are not recognized..
Commands like this worked before.. composer create-project laravel/laravel=5.0 TestApp
but now it returns this.. ??+?abelista /Applications/XAMPP/htdocs Question Marks along my machines name..
Nothing with composer runs.. I have tried changing my PATH in my Bash Profile too..
PATH="$PATH:$HOME/.composer/vendor/bin"
PATH="~/.composer/vendor/bin/laravel:$PATH"
and remember this one below used to work..
PATH="$PATH:~/.composer/vendor/bin"
From my understanding.. If I can recall correctly.. I think the problem began when I ran homebrew to install mcrypt.. I could be wrong. Does anyone here have the slightest idea what could be my issue?
BTW, according to my command line.. composer is installed..
All settings correct for using Composer
Downloading...
Composer successfully installed to: /Applications/XAMPP/xamppfiles/htdocs/composer.phar
Use it: php composer.phar
Thanks for reading and trying to help me out.
I think you've messed up with PHP installing XAMPP or other tools...
Nothing to do with composer. If you want something to work, try using Homestead, everything is setup for you in there.
In general, I would recommend you to not install stuff directly on your development machine. Try using virtual machines instead, that way you can do all the mess you want and reset everything easily.
I have an annoyance with Laravel at the moment. Running 4.1.27. After almost every command I issue in the terminal involving php artisan, it ends with writing generating optimized class loader taking 20-40 seconds, making me wait a lot every time.
Does anyone know why this is?
In my case problem was in PHP core. Updated it from 5.5.13 to 5.5.16 (current latest) and all problems are gone.
Here a detailed description.