it-swarm-vi.com

Cấu hình thư mục tạm thời

Gần đây tôi đã chuyển một trang web từ localhost sang VPS. Tôi đã quản lý để làm cho các tập tin công cộng và riêng tư có thể ghi được; tuy nhiên, tôi không chắc chắn nơi tìm thư mục tạm thời và cách thay đổi quyền. Tôi tiếp tục nhận được tin nhắn này:

Tệp được chỉ định tạm thời: // file3Hl91E không thể được sao chép, vì thư mục đích không được cấu hình đúng. Điều này có thể được gây ra bởi một vấn đề với quyền truy cập tập tin hoặc thư mục. Thêm thông tin có sẵn trong nhật ký hệ thống.

Tôi đang sử dụng Virtualmin, Drupal 7 và máy chủ Debian. Thư mục tạm thời hiện tại của tôi là /tmp.

49
Jasmine Ahmed

Kiểm tra Quản trị viên -> Cấu hình -> Phương tiện -> Hệ thống tệp để cá nhân hóa đường dẫn tmp của bạn. Đảm bảo sử dụng các đường dẫn tương đối và có các đặc quyền phù hợp cho người dùng Apache.

Cá nhân tôi thích bài viết này sửa tệp tải lên . Anh ấy có những quan sát tốt. Nó làm việc cho tôi.

Gần đây, tôi đã tải trang web của mình xuống máy tính Mac. Nó xảy ra rằng trong máy Mac của tôi, tôi đã sử dụng mod_userdir cho Apache và tôi đã quên điều đó trong /etc/Apache2/users/nameofuser.conf Tôi cần đặt AllowOverride All, nếu không tôi sẽ có thông báo sau:

Không thể sao chép tệp tạm thời do thư mục đích không được cấu hình đúng.

47
cayerdis

Trong cài đặt của bạn.php

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

Điều này sẽ làm việc trên các hệ thống unix 99% thời gian.

Thông thường thư mục/tmp tồn tại trên các hệ thống UNIX có quyền mở và nó tồn tại đặc biệt cho các tệp tạm thời và thường được thiết lập để cải thiện hiệu suất.

Bạn có thể kiểm tra quyền bằng cách chạy ls -al /tmp trên dòng lệnh.

Nếu bạn muốn đọc thêm về điều này, hãy xem https://en.wikipedia.org/wiki/T tạm_folder

18
chim

Điều quan trọng là phải hiểu rằng vấn đề về quyền có thể tồn tại trong CẢ HAI thư mục tạm thời được chỉ định của bạn (được xác định tại admin/config/media/file-system) VÀ tại thư mục nơi tệp tạm thời sẽ được sao chép. Tôi đã gặp lỗi này một vài lần và nó thường không phải là vấn đề với thư mục tạm thời, nhưng thư mục cuối cùng nơi tệp đó được sao chép sa sống trong thư mục tạm thời.

Cũng đảm bảo rằng đường dẫn hệ thống tệp công khai được đặt chính xác.

17
sheldonkreger

Tôi đã gặp sự cố chính xác này và đảm bảo sử dụng đường dẫn tương đối (trang web/mặc định/tệp/tmp) cho vị trí thư mục tmp của tôi như được đề xuất và tôi cũng đã thay đổi quyền trên thư mục tmp để đảm bảo rằng nó có thể ghi được bởi Apache nhưng vấn đề của tôi vẫn tồn tại . vì vậy tôi quyết định kiểm tra các thông điệp tường trình (Báo cáo >> Thông điệp nhật ký gần đây) để xem liệu tôi có thể hiểu rõ hơn về vấn đề này không. Bằng cách này, tôi nhận được một tin nhắn cụ thể hơn:

Không thể đặt quyền truy cập tệp ở chế độ công khai: // js.

Điều này đã nhắc tôi kiểm tra các quyền trên thư mục js trong các trang web/default/files và vì hóa ra Apache không thể ghi vào nó vì vậy bằng cách thay đổi các quyền thành 775 trên thư mục đó tôi đã thoát khỏi thông báo lỗi của mình. Vì vậy, tôi sẽ đề nghị bạn kiểm tra quyền cho tất cả các thư mục con trong trang web/default/files và không chỉ thư mục tmp nếu bạn chưa giải quyết vấn đề của mình. Chỉ cần nghĩ rằng tôi sẽ chia sẻ thông tin này.

7
Andew

bạn có thể tìm thấy cài đặt hệ thống tệp trong admin/config/media/file-system thay đổi nó thành/tmp

bạn cũng có thể kiểm tra quản trị/báo cáo/trạng thái cho bất kỳ vấn đề cài đặt nào

về quyền/tmp bạn có thể cung cấp cho nó 755 và bạn sẽ tìm thấy nó trong/public_html

5
Ahmed

Thông báo lỗi có thể bị sai lệch

Nếu nó nói rằng vấn đề là do thư mục đích, thì Apache có thể không có quyền ghi vào thư mục con/default/files mà Drupal muốn tot đặt tệp vào.

Một giải pháp tốt là làm cho người dùng Apache trở thành chủ sở hữu của tất cả các tệp và thư mục trong các trang web/default/files

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

Hoặc một cái gì đó tương tự nên reslove vấn đề thư mục đích. Kiểm tra kỹ xem chủ sở hữu có quyền ghi và thực thi quyền trên tất cả các thư mục con không.

2
chim

Thư mục tệp: Khắc phục sự cố Máy chủ web dựa trên Apache

Nếu các tệp thư mục không được "sở hữu" bởi máy chủ Web, có hai cách để tiến hành. Các hướng dẫn này giả sử bạn có quyền truy cập Shell vào máy chủ Web. Nếu bạn không có quyền truy cập Shell, vui lòng liên hệ với nhà cung cấp dịch vụ lưu trữ của bạn để được hỗ trợ thêm.

Lý tưởng nhất là bạn sẽ có thể thay đổi "chủ sở hữu" của các tệp thư mục để khớp với tên của máy chủ Web. Trên máy chủ dựa trên Unix hoặc Linux, bạn có thể xác minh "ai" máy chủ Web đang chạy bằng cách ban hành các lệnh sau:

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

Tùy thuộc vào máy chủ Web của bạn, một trong các lệnh này sẽ trả về một loạt các dòng như thế này:

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

Cột đầu tiên trong văn bản trả về là "người dùng" mà máy chủ Web của bạn đang hoạt động. Trong trường hợp này, người dùng là dữ liệu www. Để làm cho thư mục tệp của bạn có thể ghi được bởi máy chủ Web, bạn cần gán lại quyền sở hữu của nó bằng lệnh sau:

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

Nếu bạn không có đủ quyền trên máy chủ của mình để thay đổi quyền sở hữu thư mục, tùy chọn tốt nhất tiếp theo là cung cấp quyền truy cập ghi nhóm vào thư mục bằng lệnh sau:

$ chmod -R 0770 sites/default/files

Bạn cũng có thể điều chỉnh các quyền của thư mục bằng chương trình FTP như đã nêu ở trên.

Khi bạn đã hoàn thành các bước này, hãy xác nhận các quyền phù hợp đã được chỉ định bằng cách điều hướng đến Quản trị -> Báo cáo -> Báo cáo trạng thái. Cuộn đến phần được gắn nhãn, "Hệ thống tệp" và xác nhận cài đặt của bạn hiện chính xác.

Nguồn: Thư mục tệp

2
Sukhjinder Singh

Trong một số trường hợp, điều này có thể dễ dàng khắc phục bằng cách xóa các thư mục 'ctools' và 'js' trong mặc định/tệp. Các thư mục này được hệ thống tạo lại nếu cần. Đôi khi, khi thực hiện cài đặt mới của một trang web hiện có, các thư mục này đã gây ra sự cố. Ngoài ra, nếu CSS của bạn không hoạt động sau khi thực hiện cài đặt mới của một trang web hiện tại thì điều này cũng có thể được khắc phục bằng cách xóa các tệp này và để drupal tạo lại chúng.

2
Paul Trotter

Tôi thực sự không thích bất kỳ câu trả lời hiện có nào vì vậy tôi sẽ tự mình bắt đầu một câu trả lời mà có lẽ tôi sẽ cập nhật theo thời gian. Chủ yếu với các lệnh Shell.

Hiện tại, hãy chạy nó từ 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
1
kqw

Cái cũ của tôi và cấu hình có vấn đề

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

Cấu hình mới của tôi và hoạt động tốt

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
1
Claudio Lente

Một nguồn lỗi khác là nó không thể ghi vào thư mục tập tin. Trong trường hợp của tôi, tôi đã giải quyết nó bằng cách sử dụng:

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

Tôi gặp vấn đề tương tự sau khi chuyển từ máy chủ này sang máy chủ khác.

Tôi đã thử mọi thứ được đề xuất ở đây, đặt thư mục thành 755, v.v.

Thư mục tạm thời của tôi được đặt thành "" tmp7zXhVVCO "và nó thực sự sao chép các tệp cài đặt một cách độc đáo, sau mỗi lần thử lại tôi thấy tệp tạm thời được sao chép ở đó, nhưng cài đặt không thành công.

Tuy nhiên, vấn đề là chủ sở hữu không phải là quyền, vì lý do tại sao 777 loại bỏ lỗi này, nhưng tất cả chúng ta đều biết rằng đây không phải là một cách để đi vào các trang web sản xuất.

Những gì bạn nên làm là thay đổi thư mục tạm thời của bạn thành bất kỳ thứ gì khác, chẳng hạn như "temp" hoặc bất cứ thứ gì phù hợp với bạn, miễn là nó chưa tồn tại, drupal sẽ tạo thư mục mới này với Apache quyền, không người dùng quyền và vấn đề của bạn sẽ là giải quyết.

1
Kevin G

Nếu bạn gặp phải sự cố này khi sử dụng Pantheon và tiếp tục gặp lỗi sau khi đặt (các) đường dẫn thư mục tệp (temp), bạn cũng có thể cần phải chuyển chế độ Kết nối trên bảng điều khiển dev của bạn từ Git sang SFTP.

Trang web Drupal của bạn có thể đang cố lưu tệp vào thư mục do Git quản lý (ví dụ: nếu bạn đang thay đổi cài đặt bố cục và tương tự trong chủ đề Thích ứng). Để làm như vậy, hãy chuyển sang SFTP. Khi các tệp đã được lưu, bạn có thể chuyển về Git và bảng điều khiển sẽ nhắc bạn thực hiện các thay đổi đã được thực hiện trên máy chủ.

1
Kay V

Tôi đã có cùng một vấn đề về di cư. Tôi có chmod 777 tất cả các trang web/mặc định/tập tin nhưng lỗi vẫn xảy ra. Tôi thay đổi quyền 775 trên các trang web/mặc định/tập tin và tin nhắn biến mất. Tôi không phải là một vấn đề đường dẫn riêng tư, của tôi là/var/tmp nhưng là sự cho phép 775.

1
Wood

Từ Cấu hình -> Phương tiện -> Hệ thống tệp Tôi đã xóa/temp-catalog. Sau đó tôi không có vấn đề gì.

1
Filip

Tôi đã từng gặp vấn đề tương tự.

Tôi đã sử dụng IIS trong Windows. Cuối cùng, vấn đề là về quyền trong thư mục site/default/files và, rõ ràng, trong các trang web/default/files/tmp.

Cuối cùng tôi đã đưa lại "Toàn quyền" cho các thư mục, và nó đã hoạt động.

Trân trọng

1
jorge_vicente

Quyền chính xác cho thư mục tạm thời phụ thuộc vào cấu hình máy chủ web của bạn.

Nếu đang chạy Drupal với PHP là mô-đun của máy chủ web, ví dụ: Apache, khi người dùng được xác định trong tệp cấu hình máy chủ web chính sử dụng Chỉ thị người dùng sẽ phải ghi tiếp cận nó.

% grep -i "người dùng" /etc/httpd/conf/httpd.conf

Người dùng Apache

1
Taras