Niedawno przeniosłem witrynę z hosta lokalnego do VPS. Udało mi się uczynić pliki publiczne i prywatne zapisywalnymi; nie jestem jednak pewien, gdzie znaleźć folder tymczasowy i jak zmienić uprawnienia. Ciągle otrzymuję ten komunikat:
Nie można skopiować podanego pliku tymczasowego: // plik3Hl91E, ponieważ katalog docelowy nie jest poprawnie skonfigurowany. Może to być spowodowane problemem z uprawnieniami do plików lub katalogów. Więcej informacji jest dostępnych w dzienniku systemu.
Używam Virtualmin, Drupal 7 i serwera Debian. Mój obecny katalog tymczasowy to /tmp
.
W twoich ustawieniach. Php
Będzie to działać na systemach uniksowych w 99% przypadków.
Zazwyczaj katalog / tmp istnieje w systemach UNIX z otwartymi uprawnieniami i istnieje specjalnie dla plików tymczasowych i często jest konfigurowany w celu poprawy wydajności.
Możesz sprawdzić uprawnienia, uruchamiając
ls -al /tmp
w wierszu polecenia.Jeśli chcesz przeczytać więcej na ten temat, zobacz https://en.wikipedia.org/wiki/Temporary_folder
źródło
/tmp
nie ma odpowiednich uprawnień. Jest to nawet sprzeczne z przyjętą odpowiedzią (która sama w sobie nie jest świetna).Ważne jest, aby zrozumieć, że problem uprawnień może występować ZARÓWNO w określonym katalogu tymczasowym (który jest zdefiniowany w admin / config / media / file-system) ORAZ w folderze, w którym ten plik tymczasowy zostanie skopiowany. Ten błąd widziałem kilka razy i zwykle nie jest to problem z folderem tymczasowym, ale z ostatecznym folderem, w którym plik ten jest kopiowany po zamieszkaniu w folderze tymczasowym.
Upewnij się również, że ścieżka publicznego systemu plików jest ustawiona poprawnie.
źródło
Miałem dokładnie ten problem i upewniłem się, że używam ścieżki względnej (witryny / domyślne / pliki / tmp) do lokalizacji folderu tmp zgodnie z sugestią, a także zmieniłem uprawnienia do folderu tmp, aby upewnić się, że jest zapisywalny przez apache, ale mój problem nadal istniał . więc postanowiłem sprawdzić komunikaty dziennika (Raporty >> Najnowsze komunikaty dziennika), aby zobaczyć, czy mogę lepiej zrozumieć, na czym polega problem. W ten sposób otrzymałem bardziej szczegółowy komunikat:
To skłoniło mnie do sprawdzenia uprawnień do folderu js w witrynach / default / files i jak się okazuje, Apache nie mógł do niego pisać, więc zmieniając uprawnienia na 775 w tym folderze, pozbyłem się mojego komunikatu o błędzie. Proponuję więc sprawdzić uprawnienia do wszystkich podfolderów w witrynach / default / files, a nie tylko do folderu tmp, jeśli problem nie został jeszcze rozwiązany. Pomyślałem, że podzielę się tymi informacjami.
źródło
sudo chgrp -R www-data /var/www/mysite
ze „zmianą uprawnień na 775” . To NIE jest potrzebne. Drupal nie musi pisać do każdego folderu. Tylko foldery publiczne, prywatne i foldery plików TMP.możesz znaleźć ustawienia systemu plików,
admin/config/media/file-system
zmień je na / tmpmożesz także sprawdzić admin / raporty / status pod kątem problemów z ustawieniami
o uprawnieniu / tmp możesz dać 755, a znajdziesz je w / public_html
źródło
Komunikat o błędzie może czasami wprowadzać w błąd
Jeśli mówi, że problem dotyczy katalogu docelowego, apache prawdopodobnie nie ma uprawnień do zapisu do podfolderu site / default / files, w którym Drupal chce umieścić plik.
Dobrym rozwiązaniem jest uczynienie użytkownika apache właścicielem wszystkich plików i katalogów w witrynach / default / files
Lub coś podobnego powinno rozwiązać problemy z katalogiem docelowym. Dokładnie sprawdź, czy właściciel ma uprawnienia do zapisu i wykonywania we wszystkich podkatalogach.
źródło
chown -R www-data:www-data /var/www/html/sites/default/files/
Katalog plików: Rozwiązywanie problemów z serwerami WWW opartymi na Apache
Jeśli pliki katalogu nie są „własnością” serwera WWW, można kontynuować na dwa sposoby. Te instrukcje zakładają, że masz dostęp do powłoki serwera WWW. Jeśli nie masz dostępu do powłoki, skontaktuj się z dostawcą usług hostingowych, aby uzyskać dodatkowe wsparcie.
Idealnie będzie można zmienić „właściciela” plików katalogu, aby pasował do nazwy serwera WWW. Na serwerze z systemem Unix lub Linux możesz zweryfikować, „kto” działa serwer sieci Web, wydając następujące polecenia:
W zależności od serwera WWW jedno z tych poleceń zwróci serię takich wierszy:
Pierwszą kolumną w zwróconym tekście jest „użytkownik”, na którym działa Twój serwer WWW. W tym przypadku użytkownik to dane www. Aby umożliwić zapisywanie katalogu plików przez serwer sieci Web, musisz ponownie przypisać jego własność za pomocą następującego polecenia:
Jeśli nie masz wystarczających uprawnień na serwerze, aby zmienić własność folderu, następną najlepszą opcją jest zapewnienie dostępu do zapisu grupowego do folderu za pomocą następującego polecenia:
Powinieneś także być w stanie dostosować uprawnienia do katalogu za pomocą programu FTP, jak opisano powyżej.
Po wykonaniu tych kroków potwierdź, że odpowiednie uprawnienia zostały przypisane, przechodząc do opcji Administruj -> Raporty -> Raport o stanie. Przewiń do sekcji „System plików” i potwierdź, że ustawienia są prawidłowe.
Źródło: katalog plików
źródło
Innym źródłem błędu jest to, że nie można zapisać do folderu plików. W moim przypadku rozwiązałem to za pomocą:
źródło
W niektórych sytuacjach można to łatwo naprawić, usuwając foldery „ctools” i „js” w domyślnych plikach /. W razie potrzeby foldery te są odtwarzane przez system. Czasami przy nowej instalacji istniejącej witryny istniejące foldery już powodują problemy. Również, jeśli Twój CSS nie działa po nowej instalacji istniejącej witryny, można to również naprawić, usuwając te pliki i umożliwiając Drupalowi ich odtworzenie.
źródło
Moja stara i problematyczna konfiguracja
Moja nowa i działająca konfiguracja
źródło
Prawidłowe uprawnienia do folderu tymczasowego zależą od konfiguracji serwera WWW.
W przypadku uruchamiania Drupala z PHP jako modułu serwera WWW, na przykład Apache, użytkownik zdefiniowany w głównym pliku konfiguracyjnym serwera WWW za pomocą dyrektywy użytkownika powinien mieć do niego dostęp do zapisu.
% grep -i „użytkownik” /etc/httpd/conf/httpd.conf
Apache użytkownika
źródło
Miałem ten sam problem po przejściu z jednego serwera na drugi.
Próbowałem wszystkiego sugerowanego tutaj, ustawiając foldery na 755 i tak dalej.
Mój folder tymczasowy został ustawiony na „” tmp7zXhVVCO ”i ładnie skopiował pliki instalacyjne, po każdej próbie widziałem, że plik tymczasowy jest tam kopiowany, ale instalacja nadal nie udała się.
Problemem jest jednak to, że właściciel nie ma uprawnień, dlatego 777 usuwa ten błąd, ale wszyscy wiemy, że nie jest to droga do przejścia na strony produkcyjne.
źródło
The directory ../temp2 does not exist and could not be created.
Nie podoba mi się żadna z istniejących odpowiedzi, więc po prostu zacznę jedną z nich, którą prawdopodobnie z czasem zaktualizuję. Głównie z poleceniami powłoki.
Na razie uruchom to z
sites/example.com
:źródło
Z konfiguracji -> Media -> System plików usunąłem / temp-catalog. Po tym nie miałem żadnych problemów.
źródło
Miałem ten sam problem podczas migracji. Mam chmod 777 wszystkie strony / domyślne / pliki, ale błąd nadal występuje. Zmieniam uprawnienia 775 na strony / domyślne / pliki i wiadomość zniknęła. Nie byłem problemem z prywatną ścieżką, mój to / var / tmp, ale pozwolenie 775.
źródło
Jeśli napotkasz ten problem za pomocą Pantheon i nadal będziesz otrzymywać błąd po ustawieniu ścieżek katalogu plików (temp), może być również konieczne przełączenie trybu połączenia na pulpicie nawigacyjnym instancji programisty z Git na SFTP.
Twoja witryna Drupal może próbować zapisać pliki w katalogu zarządzanym przez Git (np. Jeśli zmieniasz ustawienia układu itp. W temacie Motywy adaptacyjne). W tym celu przełącz się na SFTP. Po zapisaniu plików możesz przełączyć się z powrotem na Git, a pulpit poprosi o zatwierdzenie zmian, które zostały wprowadzone na serwerze.
źródło
Miałem ten sam problem.
Korzystałem z IIS w systemie Windows. Wreszcie problem dotyczył uprawnień w folderach witryn / domyślnych / plikach i, oczywiście, w witrynach / domyślny / pliki / tmp.
W końcu ponownie nadałem folderom „Pełne uprawnienia” i zadziałało.
pozdrowienia
źródło