Không thể lưu các thay đổi cấu hình toàn cầu

 
Không thể lưu các thay đổi cấu hình toàn cầu

Vấn đề

Sau khi nhập khu vực cấu hình toàn cầu trên trang web quản trị viên "back-end" và sau đó nhấp vào "Lưu" hoặc "Áp dụng" nút để lưu lựa chọn hiện tại của cấu hình trang web, các thông báo lỗi sau đây xuất hiện: "một lỗi đã xảy ra! Không thể mở tập tin configuration.php viết! ", có thể đi kèm bởi:" JFTP::write: phản ứng xấu "nếu bạn đang làm việc trong chế độ FTP được kích hoạt.

Lý do cho lỗi này

Các kịch bản Cập Nhật cấu hình trong Joomla đã không thể thay đổi nội dung của các tập tin "configuration.php" để phản ánh bất kỳ thay đổi nào bạn thực hiện trên trang cấu hình toàn cầu. Joomla có thể được không thể ghi vào các tập tin và/hoặc không thể thực hiện các tập tin có thể ghi (tức là R/W). Từ Joomla 1.5.x cố gắng để làm cho "configuration.php" có thể ghi trước khi lưu cấu hình, sau đó là hơn thường là trường hợp. Lý do phổ biến nhất của việc này là tập tin "configuration.php" được sở hữu bởi một người sử dụng hợp lý khác nhau để một trong những cố gắng để làm cho sự thay đổi. Nếu bạn đang cố gắng để thay đổi các cấu hình toàn cầu với FTP được kích hoạt, sau này sẽ thường là ID đăng nhập FTP của bạn; với FTP vô hiệu hóa, nó sẽ có bản quá trình máy chủ web (thường đặt tên như là một cái gì đó như "apache" hoặc "www-data"). (Bạn có thể kiểm tra thường xem trên chi tiết quyền sở hữu tập tin bằng cách đăng nhập vào trang web của bạn với một chương trình FTP. Ngoài ra bạn có thể sử dụng eXtplorer-xem dưới đây). Thật không may, bạn sẽ bị khóa ra khỏi thay đổi sang chế độ thích hợp để cập nhật các cấu hình toàn cầu như các cho phép và vô hiệu hoá chế độ FTP (và do đó thay đổi danh tính hợp lý cố gắng để thay đổi cấu hình) được xác định bởi các dữ liệu cấu hình toàn cầu được tổ chức tại tập tin đó.

Đề xuất các giải pháp

Lưu ý: nó là không đủ để chỉ cần thực hiện "configuration.php" tập tin có thể ghi cho tất cả người dùng. Như sau đó bạn sẽ có thể để cập nhật các cấu hình toàn cầu chỉ một lần, sau đó Joomla 1.5.x sẽ làm cho các tập tin chỉ-đọc cho tất cả người dùng và do đó giới thiệu các vấn đề.

  1. Thay đổi quyền sở hữu của các tập tin "configuration.php" để phù hợp với một ID đăng nhập FTP của bạn nếu sử dụng "FTP cho phép" cho các trang web, hoặc nhận dạng quá trình máy chủ web, nếu bạn đang sử dụng "FTP bị vô hiệu hoá".
    Lưu ý: Đây không phải là một cái gì đó mà bạn có thể làm trong Joomla.
    Nếu bạn có toàn quyền kiểm soát của các máy chủ (ví dụ như máy chủ địa phương hoặc các máy chủ ảo) sau đó bạn có thể để làm điều này bằng cách sử dụng một tiện ích thích hợp (ví dụ như "chown" cho một máy chủ Linux). Trên một máy chủ chia sẻ, bạn nên liên hệ với hỗ trợ kỹ thuật cho tổ chức của bạn hoặc ISP của bạn, giải thích các vấn đề và yêu cầu họ thay đổi quyền sở hữu tập tin một cách thích hợp.
  2. Cài đặt các thành phần eXtplorer (nhận được từ các thư mục phần mở rộng Joomla- extensions.joomla.org)-nếu không được ở vị trí. Điều này sẽ cho phép bạn xem và thao tác các tập tin trong cả hai chế độ "tập tin" (sử dụng nhận dạng người dùng web máy chủ quá trình) hoặc "ftp" chế độ sử dụng nhận dạng người sử dụng đăng nhập FTP của bạn. Mặc dù bạn sẽ có lẽ không thể thay đổi quyền sở hữu tập tin với công cụ này, bạn có thể sử dụng một trong các chế độ để làm cho "configuration.php" có thể ghi cho tất cả người dùng. Điều này sẽ cho phép bạn thay đổi cấu hình toàn cầu một lần- hoặc nhiều hơn nếu bạn bao gồm trong đó một sự thay đổi chế độ FTP để nó phù hợp với quyền sở hữu tập tin "configuration.php" của bạn (nhưng xem lưu ý dưới đây).
    Lưu ý: thay đổi chế độ FTP sẽ ảnh hưởng đến các quyền sở hữu được áp dụng cho các tập tin tải lên các trang web trong các thiết lập mới (ví dụ như khi cài đặt tiện ích mở rộng).
  3. Xem cụ thể sửa chữa người này phát hiện trên trang thảo luận của tài liệu này. Tôi đã tìm thấy rằng điều này hoạt động với các cài đặt của tôi của v. 1.5.23.
  4. Nhận được các máy chủ web của bạn để chạy PHP là CGI hoặc FastCGI. Điều này đảm bảo rằng mã PHP được thực hiện bằng cách sử dụng cùng một người dùng ID như được sử dụng khi tải lên mã Joomla sử dụng FTP. Vì vậy, có là không có xung đột là ID của trình PHP thay đổi "configuration.php" tập tin giống như chủ sở hữu của tập tin. Nếu bạn không biết làm thế nào để đặt CGI hoặc nhanh chóng CGI, liên hệ với người quản trị hệ phục vụ hoặc nhà cung cấp dịch vụ hosting của bạn để được tư vấn.

Nền tảng

Trên đây là một lời giải thích đơn giản, nhưng những điều sau đây có thể quan tâm và giá trị cho tất cả, và cũng giúp người sử dụng chuyên gia xây dựng giải pháp riêng của họ cho vấn đề này.

  • Các tập tin "configuration.php" được tạo ra tự động trong thư mục gốc của trang web (từ "configuration.php-q.") trong khi cài đặt trang web và kết hợp trong đó các thông tin trang được đưa ra trong quá trình cài đặt. Thay đổi của vùng cấu hình toàn cầu, các trang web quản trị "back-end" được viết để "configuration.php" khi nút "Lưu" hoặc "Áp dụng" được sử dụng.
  • Bất cứ khi nào Joomla cố gắng Cập Nhật "configuration.php" khiếu nại các nỗ lực đầu tiên để làm cho nó có thể ghi, và sau khi cập nhật các tập tin làm cho nó unwriteable (tức là chỉ-đọc) như là một đề phòng an ninh.
  • Các tập tin trên máy chủ web lưu trữ trang web Joomla của bạn sẽ được sở hữu bởi một trong một số tổ chức, tùy thuộc vào cách họ đã được đặt hoặc tạo ra trên máy chủ. Nói chung, các tập tin trên một trang web Joomla sẽ được sở hữu bởi một trong hai nhận dạng người dùng:
    1. Các tập tin bạn tải lên bằng FTP hoặc cài đặt với chế độ FTP hoạt động sẽ thường được phân bổ quyền sở hữu của một người dùng ID tương ứng với ID đăng nhập FTP của bạn cho trang web đó,
    2. Tập tin cài đặt từ bên trong Joomla và với chế độ FTP thụ động sẽ thường được phân bổ quyền sở hữu bởi ID người dùng "ma" được sử dụng để chạy trình phục vụ web chính cũng như kịch bản Joomla của bạn (thường đặt tên như là một cái gì đó như "apache" hoặc "www-data").