Autor Zpráva
iiic
Profil
Pěkný večer

Už pár dnů řeším divné chování require (include a dalších) funkcí v php.
Ve výsledku jsem přišel na to, že spousta souborů, které potřebuji, je pro php jaksi nedostupných.
Udělám si obyčejný soubor
<?php
require 'jmeno/vendor/nette/versions.txt';

a vypadnou jen chyby

Warning: require(/var/www/html/jmeno/vendor/nette/versions.txt): failed to open stream: Permission denied in /var/www/html/omg.php on line 3

Fatal error: require(): Failed opening required 'jmeno/vendor/nette/versions.txt' (include_path='.:/usr/share/pear:/usr/share/php') in /var/www/html/omg.php on line 3

Na příkaz '$ php /var/www/html/jmeno/vendor/nette/versions.txt' je soubor dostupný, jak má. Takže asi jen pro Apache (httpd) nějak není přístupný.

No nepochopitelné na tom je, že smazáním a novým vytvořením versions.txt najednou všechno funguje jak má.
Takže nějaký ten linuxový problém tipuji.
Přitom ale před i po smazání jsou skupina i vlastník i práva úplně stejné.

Je možné, že má někdo přístup k souborům uzamčený? Je na to nějaký příkaz, kterým to zjistím? (restart celého serveru ničemu nepomohl)
Tori
Profil
Podle tohoto reportu by to mohlo souviset s composerem. Zkuste změnit skupinu i vlastníka celé složky vendor (i když je zdánlivě stejný) chown -R vlastnik:skupina ./vendor
iiic
Profil
Tori:
Ne… nic takového bohužel nepomáhá, ale přes ten composer to šlo, tak možné to je, že problém bude někde s tím. Zkusím ještě přesunout všechno k sobě a pak to vrátit, to by teoreticky mělo fungovat.
iiic
Profil
Přesunout celý projekt k sobě a zase ho vrátit na server pomohlo… akorát teď nevím, na kterou z těch technologií mám být nasraný.
Tori
Profil
Na fóru Nette jste se neptal? Tam je imho větší pravděpodobnost, že se s tím problémem někdo už setkal.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: