Jump to content
php.lv forumi

Recommended Posts

Ir problēma ar laravel uz windows. Ja ir daudz secīgu pieprasījumu, tad vienā mirklī nenolasās config no .env un attiecīgi errors. 

Tas notiek pilnīgā randomā

 

Pats izdebugoju līdz Dotenv bilbliotēkai un sapratu, ka pats php/windows gļuko. Precīzāk funkcija getenv vienā mirklī neatgriež vērtību.

Kaut kāds fakaps

 

Internetā arī visi vaimanā par šo, bet normāls risinājums nav.

Produkcijā, protams, ir linux un tur šādi gļuki nav novērtoti

 

Ir kādam kāds ieteikums?

Link to post
Share on other sites

Kas tas ir par erroru? Fails nav lasāms?

Kas ir daudz secīgi pieprasījumi? 10, 20, 100 ? No viena usera vai vairākiem?

Uztaisi divus, trīs .env failus, kur configs load'o randomā vienu :D DotEnv->load('.env_' . rand(1,3)) :D

Link to post
Share on other sites

Virtuālā mašīna palīdz, bet gribās atrast risinājumu win mašīnai

 

Briedi, tu nelasi?!

 

1) funkcija getenv vienā mirklī neatgriež vērtību.

2) getenv netagriež vērtību, tātad netiek nolasīts pareizais config parametrs, piemēram, DB_USER

3) netiek nolasīts DB_USER, nevar pieslēgties pie DB

4) rezultātā pieprasījums beidzas ar neko neizsakošo "Whoops something went wrong". Log failā, protams, kļūda ir, ka nevar pieslēgties pie db

 

Man tas izpaužas šādi

1) Ielādējas lapa

2) Lapa uztaisa 4 ajax requestus

3) viens no šiem request beidzas ar klūdu (nevar pieslēgties pie db)

4) Tas notiek pilnīgā randomā. Ja refreshot lapu, tad kādā 5. reizē būs error (nevar pieslēgties pie db)

 

 

Te viens links. Ir arī patchi, bet man vairāk interesē ko pašam windows izdarīt, lai negļuko

http://stackoverflow.com/questions/31295126/laravel-5-losing-sessions-and-env-configuration-values-in-ajax-intensive-applic

Link to post
Share on other sites

Tev varbūt applikācija netaisa daudzus secīgus ajax pieprasījumus, tāpēc arī šī problēma neuzpeld

 

Pamēģini uztaisīt kādus 20 ajax req vienu pēc otra, kurā tiek nolasīta sesijas vērtība. Vismaz vienam no pieprasījumiem būtu jānofeilo - tobiš neatgriezīs sesijas vērtību

<script>
for (var i = 0; i < 20; i++) {
    $.get('/testsessionvariable', function(r){console.log(r)})
}
</script>
Link to post
Share on other sites

Man gan ir Yii2 + phpdotenv (lietojums tāds pats, kā laravel, un nekādas problēmas nav ar getenv(DB_USER) (arī vērtībai no sesijas, kas ir failu draiveris)

 

0CSnNkZ.png

 

Piezīmēšu, ka es izmantoju PHP iebūvēto web serveri.

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...