it-swarm-eu.dev

Konfigurace dočasného adresáře

Nedávno jsem přesunul web z localhost do VPS. Podařilo se mi zapisovat veřejné a soukromé soubory; Nejsem si však jistý, kde najít dočasnou složku a jak změnit oprávnění. Stále dostávám tuto zprávu:

Zadaný dočasný soubor: // file3Hl91E nelze zkopírovat, protože cílový adresář není správně nakonfigurován. To může být způsobeno problémem s oprávněními k souborům nebo adresářům. Další informace jsou k dispozici v systémovém protokolu.

Používám Virtualmin, Drupal 7 a server Debian.) Můj aktuální dočasný adresář je /tmp.

48
Jasmine Ahmed

Chcete-li přizpůsobit cestu k tmp, zaškrtněte políčko Správce -> Konfigurace -> Média -> Systém souborů. Nezapomeňte použít relativní cesty a mít správná oprávnění pro uživatele Apache.

Tento článek se mi osobně líbí nahrání souboru opravy . Má dobré postřehy. Fungovalo to pro mě.

Nedávno jsem stáhl svůj web do počítače Mac. Stává se, že v mém Macu jsem používal mod_userdir pro Apache a já jsme to zapomněli v /etc/Apache2/users/nameofuser.conf Musím nastavit AllowOverride All, jinak budu mít následující zprávu:

Zadaný dočasný soubor nelze zkopírovat, protože cílový adresář není správně nakonfigurován.

46
cayerdis

Ve vašem settings.php

$conf['file_temporary_path'] = '/tmp';

To bude fungovat na unixových systémech 99% času.

Adresář/tmp obvykle existuje v systémech UNIX s otevřenými oprávněními a existuje speciálně pro dočasné soubory a je často nastaven pro zlepšení výkonu.

Oprávnění můžete zkontrolovat spuštěním ls -al /tmp na příkazovém řádku.

Pokud vás zajímá další čtení, podívejte se na https://en.wikipedia.org/wiki/Temporary_folder

17
chim

Je důležité si uvědomit, že problém s oprávněními může BÝT v zadaném dočasném adresáři (který je definován v admin/config/media/file-system) A ve složce, do které bude tento dočasný soubor zkopírován. Tuto chybu jsem viděl několikrát a obvykle se nejedná o problém s dočasnou složkou, ale o konečnou složku, do které se tento soubor zkopíruje po žijící v dočasné složce.

Také se ujistěte, že cesta k veřejnému systému souborů je nastavena správně.

16
sheldonkreger

Měl jsem tento přesný problém a ujistil jsem se, že použiji relativní cestu (weby/default/files/tmp) pro umístění mé složky tmp, jak bylo navrženo, a také jsem změnil oprávnění ke složce tmp, aby bylo zajištěno, že je Apache zapisovatelný, ale můj problém stále existoval . tak jsem se rozhodl zkontrolovat protokolové zprávy (Zprávy >> Nedávné protokolové zprávy), abych zjistil, zda bych mohl lépe porozumět tomu, v čem byl problém. Tím jsem dostal konkrétnější zprávu:

Oprávnění pro soubor nelze nastavit na veřejné: // js.

To mě přimělo zkontrolovat oprávnění ve složce js na webech/default/files a jak se ukázalo, Apache nemohl do ní zapisovat, takže změnou oprávnění na 775 v této složce jsem se zbavil své chybové zprávy. Takže bych navrhl, abyste zkontrolovali oprávnění pro všechny podsložky na webech/default/files a nejen složku tmp, pokud jste váš problém dosud nevyřešili. Jen jsem si myslel, že budu sdílet tyto informace.

8
Andew

nastavení systému souborů najdete v admin/config/media/file-system změňte ji na/tmp

můžete také zkontrolovat, zda administrátor/sestava/stav nemá problém s nastavením

o oprávnění/tmp, můžete mu dát 755 a najdete jej v/public_html

5
Ahmed

Chybová zpráva může být někdy zavádějící

Pokud se říká, že problém souvisí s cílovým adresářem, Apache pravděpodobně nemá oprávnění k zápisu do podsložky webů/default/files, do které Drupal chce, aby soubor vložil).

Dobrým řešením je učinit uživatele Apache vlastníkem všech souborů a adresářů pod servery/default/files

cd /path/to/sites/default
Sudo chown -R _www:_www files

Nebo něco podobného by mělo znovu vyřešit problémy s cílovým adresářem. Znovu zkontrolujte, zda má vlastník oprávnění ke zápisu a spouštění ve všech podadresářích.

2
chim

Adresář souborů: Odstraňování problémů s webovými servery Apache

Pokud souborový adresář není webovým serverem „vlastněn“, existují dva způsoby. Tyto pokyny předpokládají, že máte Shell přístup k webovému serveru. Pokud nemáte přístup Shell, obraťte se na svého poskytovatele hostingu o další podporu.

V ideálním případě budete moci změnit „vlastníka“ adresářových souborů tak, aby odpovídal názvu webového serveru. Na serveru založeném na Unixu nebo Linuxu můžete ověřit, kdo webový server běží, vydáním následujících příkazů:

$ ps aux  |grep Apache # for Apache 2.x
$ ps aux  |grep httpd # for Apache 1.x

V závislosti na vašem webovém serveru vrátí jeden z těchto příkazů řadu takových řádků:

www-data 13612  0.1  0.9  50640 20340 ? S 12:29   0:08 /usr/sbin/Apache2 -k start

První sloupec vráceného textu je „uživatel“, na kterém váš webový server pracuje. V tomto případě je uživatelem www-data. Chcete-li, aby webový server zapisoval do adresáře souborů, musíte znovu přiřadit jeho vlastnictví pomocí následujícího příkazu:

$ chown -R www-data sites/default/files
$ chmod -R 0700 sites/default/files

Pokud na svém serveru nemáte dostatečná oprávnění ke změně vlastnictví složky, další nejlepší možností je poskytnout přístup ke skupině ke skupině pomocí následujícího příkazu:

$ chmod -R 0770 sites/default/files

Také byste měli být schopni upravit oprávnění adresáře pomocí programu FTP, jak je uvedeno výše.

Po dokončení těchto kroků potvrďte, že byla příslušná oprávnění přiřazena přejděte do nabídky Správa -> Zprávy -> Stav. Přejděte do části označené „Systém souborů“ a potvrďte, že jsou vaše nastavení nyní správná.

Zdroj: Adresář souborů

2
Sukhjinder Singh

Dalším zdrojem chyby je, že nemůže zapisovat do složky souborů. V mém případě jsem to vyřešil pomocí:

$chmod 777 sites/default/files/pictures/
1
freeman

V některých situacích to lze snadno opravit odstraněním složek „ctools“ a „js“ ve výchozím nastavení/souborů. V případě potřeby systém tyto složky znovu vytvoří. Někdy při nové instalaci existujícího webu tyto složky již způsobují problémy. Také pokud váš CSS nefunguje po provedení nové instalace existujícího webu, lze to také opravit odstraněním těchto souborů a necháním drupal) je znovu vytvořit.

1
Paul Trotter

Opravdu se mi nelíbí žádná ze stávajících odpovědí, takže si jen začnu jednu, kterou budu pravděpodobně časem aktualizovat. Hlavně s příkazy Shell.

Prozatím to spusťte z sites/example.com:

MYSITE=example.com
FILES=sites/$MYSITE/files  
# CSS and JS might also cause trouble and advagg has its own dirs
TMPDIRS=$FILES/tmp $FILES/js $FILES/css $FILES/advagg_*
drush vset file_temporary_path $FILES/tmp # seems better than using /tmp
drush vset file_directory_temp $FILES/tmp
cd $(drush drupal-directory)   
chown www-data -R $TMPDIRS
chmod 755 -R $TMPDIRS
0
fifi finance

Můj starý a problematická konfigurace

chmod 664 -R /var/drupal-bc/sites/default/files
chmod 664 -R /var/drupal-bc/sites/default/private

drw-rw-r-- 2 www-data www-data  4096 Jul 31 12:35 files
drw-rw-r-- 3 www-data www-data  4096 Jul  5 15:08 private

Moje nová a fungují dobře konfigurace

chmod 774 -R /var/drupal-bc/sites/default/files
chmod 774 -R /var/drupal-bc/sites/default/private

drwxrwxr-- 2 www-data www-data  4096 Jul 31 12:35 files
drwxrwxr-- 3 www-data www-data  4096 Jul  5 15:08 private
0
Claudio Lente

Po přechodu z jednoho serveru na druhý jsem měl stejný problém.

Vyzkoušel jsem vše navržené zde, nastavení složek na 755 a tak dále.

Moje dočasná složka byla nastavena na "" tmp7zXhVVCO "a ve skutečnosti to pěkně zkopírovalo instalační soubory, po každém opakování jsem viděl kopírování dočasného souboru, ale instalace stále selhala.

Problém je však v tom, že vlastník není práva, což je důvod, proč 777 tuto chybu odstraňuje, ale všichni víme, že to není způsob, jak jít na produkční weby.

Co byste měli udělat, je změnit dočasnou složku na cokoli jiného, ​​například „temp“ nebo cokoli, co vám vyhovuje, pokud to zatím neexistuje, drupal vytvoří tuto novou složku s Apache právy, ne živatel právy a váš problém bude vyřešeno.

0
Kevin G

Pokud se setkáte s tímto problémem pomocí Pantheonu a budete pokračovat v získávání chyby i po nastavení cesty (adresářů) k adresářům souborů (temp), možná bude také nutné přepnout režim připojení na hlavním panelu vaší dev devizy z Git na SFTP.

Váš Drupal web se možná pokouší uložit soubory do adresáře spravovaného Gitem (např. Pokud měníte nastavení rozvržení a podobně v motivu Adaptivní témata). Za tímto účelem přepněte na Jakmile jsou soubory uloženy, můžete se přepnout zpět na Git a řídicí panel vás vyzve k potvrzení změn, které byly provedeny na serveru.

0
Kay V

Stejný problém jsem měl při migraci. Mám chmod 777 všechny weby/výchozí/soubory, ale chyba se stále děje. Změním oprávnění 775 na webech/výchozí/soubory a zpráva zmizela. Nebyl jsem problém se soukromou cestou, moje je/var/tmp, ale povolení 775.

0
Wood

Z konfigurace -> Média -> Souborový systém jsem odstranil/temp-catalog. Poté jsem neměl žádné problémy.

0
Filip

Měl jsem stejný problém.

V systému Windows jsem používal IIS). Nakonec byl problém s oprávněními ve složkách sites/default/files a samozřejmě v sites/default/files/tmp.

Nakonec jsem dal znovu "Plná oprávnění" ke složkám a fungovalo to.

Pozdravy

0
jorge_vicente

Správná oprávnění pro dočasnou složku závisí na konfiguraci webového serveru.

Pokud je spuštěn Drupal s PHP jako modul webového serveru), například Apache, měl by uživatel, který je definován v hlavním konfiguračním souboru webového serveru pomocí direktivy User, měl napsat přístup k tomu.

% grep -i "user" /etc/httpd/conf/httpd.conf

Uživatel Apache

0
Taras