Tùy chọn Config.php

Tất cả thông tin XenForo cần kết nối với máy chủ cơ sở dữ liệu của bạn nằm trong tệp library/config.php.

Tùy thuộc vào cách bạn đã cài đặt XenForo, config.php có thể đã tạo bằng cách sao chép nội dung của bản gốc tệp library/config.php.default, hoặc Trình cài đặt XenForo có thể đã tạo ra cho bạn.

Thông thường, tệp config chỉ chứa một số cài đặt, chỉ đủ để cho phép XenForo hoạt động, nhưng có nhiều tùy chọn bổ sung mà bạn có thể thêm để thay đổi cách mà XenForo hoạt động.

Cảnh báo

Các tùy chọn này kiểm soát chức năng cơ bản của cài đặt XenForo và cấu hình không chính xác có thể khiến trang web của bạn không thể hoạt động. Nếu bạn gặp sự cố, hãy hoàn tác các thay đổi config.php của bạn và thử lại.

Các biến trong config.php

Sau đây là danh sách tất cả các cài đặt có thể được kiểm soát thông qua config.php. Các tên biến này phải được nhập chính xác như được hiển thị ở đây hoặc cài đặt sẽ bị bỏ qua. Tên và giá trị biến là phân biệt chữ hoa chữ thường.

Trong mỗi trường hợp, tên biến được hiển thị với giá trị mặc định của nó, ví dụ:

$config['variableName'] = 'default-value';


Kết nối cơ sở dữ liệu

  • $config['db']['host'] = 'localhost';
  • $config['db']['port'] = 3306;
  • $config['db']['socket'] = null;

Tên hoặc địa chỉ IP, port và socket của máy chủ cơ sở dữ liệu lưu trữ cơ sở dữ liệu XenForo của bạn. Thông tin này sẽ được nhà cung cấp dịch vụ lưu trữ cung cấp cho bạn.

  • $config['db']['username'] = '';
  • $config['db']['password'] = '';
  • $config['db']['dbname'] = '';

Tên người dùng và mật khẩu bạn sử dụng để kết nối với máy chủ cơ sở dữ liệu của bạn và tên của cơ sở dữ liệu được lưu trữ trên máy chủ của bạn trong đó diễn đàn của bạn được cài đặt.

Tùy chọn nâng cao

Các tùy chọn này không được bao gồm như là tiêu chuẩn trong config.php, bởi vì đối với hầu hết các phần, XenForo sẽ sử dụng các giá trị mặc định. Nếu bạn quyết định sử dụng bất kỳ cài đặt nào trong số này, hãy đảm bảo kiểm tra đầy đủ hoạt động của diễn đàn của bạn trước khi rời khỏi hệ thống để chạy trong môi trường sản xuất.

Vô hiệu hóa tính năng trên toàn trang web

Một số hệ thống XenForo có thể vô hiệu hóa hoàn toàn từ tập tin config mà không cần phải đăng nhập vào Admin control panel. Thiết lập bất kỳ tùy chọn nào trong số các tùy chọn này thành false sẽ vô hiệu hóa chức năng tương ứng hoàn toàn.

Ghi chú

Nếu một hệ thống bị vô hiệu hóa thông qua tệp config.php, nó không thể được kích hoạt lại thông qua Admin control panel - chỉ một chỉnh sửa đối với tệp config sẽ khôi phục chức năng của hệ thống.

Các mô tả cho các cài đặt này mô tả những gì sẽ xảy ra nếu bạn đặt giá trị của chúng thành false.

  • $config['enableMail'] = true;
  • $config['enableListeners'] = true;
  • $config['enableTemplateModificationCallbacks'] = true;
  • $config['enableGzip'] = true;
  • $config['enableContentLength'] = true;
  • $config['enableTfa'] = true;
  • $config['enableClickjackingProtection'] = true;
  • $config['enableReverseTabnabbingProtection'] = true;

enableMail

Hoàn toàn vô hiệu hóa tất cả các tính năng gửi email trong XenForo. Sẽ không có email nào được gửi.

enableListeners

Tắt tất cả code event listeners trong XenForo. Điều này chủ yếu sẽ tắt tất cả các chức năng bổ trợ và có thể hữu ích cho việc khôi phục quyền truy cập vào hệ thống và control panel của bạn nếu một add-on bị lỗi và làm hỏng khả năng của bạn.

enableTemplateModificationCallbacks

Vô hiệu hóa khả năng template modifications để thực hiện thao tác của chúng bằng cách sử dụng callback PHP. Tương tự như enableListeners, chuyển đổi này có thể được sử dụng để lấy lại quyền truy cập vào hệ thống được hiển thị không thể hoạt động bằng callback.

enableGzip

Theo mặc định, XenForo sẽ nén output HTML và CSS cuối cùng của các trang mà nó tạo ra bằng cách sử dụng hệ thống nén gzip, sau đó được giải nén ẩn bằng trình duyệt của khách truy cập khi dữ liệu được nhận. Điều này có thể tăng tốc đáng kể thời gian tải trang, nhưng nếu bạn muốn tắt tính năng này và có HTML và CSS được gửi dưới dạng văn bản thuần không nén, hãy tắt cài đặt này.

enableContentLength

Thông thường, XenForo sẽ gửi Content-Length HTTP header. Trong một số cấu hình máy chủ, nội dung có thể được sửa đổi giữa XenForo gửi nó và nó được nhận bởi người dùng cuối. Trong trường hợp này, Content-Length header có thể không được cập nhật chính xác nên nó sẽ bị vô hiệu hóa.

enableTfa

Vô hiệu hóa two-factor authentication (xác thực hai yếu tố) (2FA), hệ thống khiến người dùng cần phải đăng nhập bằng tên người dùng và mật khẩu và một phần thông tin bổ sung, chẳng hạn như code từ điện thoại của họ. Hữu ích nếu bạn mất quyền truy cập vào admin control panel của mình hoặc nếu bạn muốn ngăn chặn bất kỳ người dùng nào sử dụng 2FA ở tất cả.

enableClickjackingProtection

Thông thường, XenForo gửi X-Frame-Options HTTP header với một giá trị SAMEORIGIN như một phương tiện để ngăn chặn nhấp chuột từ các tập lệnh độc hại.

Khi được bật, tùy chọn này ngăn chặn các cuộc tấn công nhấp chuột bằng cách đặt diễn đàn của bạn vào iframe và lừa người dùng nhấp vào nội dung nào đó. Tuy nhiên, điều này cũng có thể vô hiệu hóa việc sử dụng hợp lệ các iframe nhúng. Chỉ tắt tính năng này nếu bạn hiểu ý nghĩa.

enableReverseTabnabbingProtection

Khi được bật, tùy chọn này ngăn chặn các cuộc tấn công lừa đảo dựa trên tabnabbing được kích hoạt khi người dùng của bạn nhấp vào liên kết đến các trang web bên ngoài. Tuy nhiên, việc bảo vệ này có thể ảnh hưởng đến các dịch vụ bên ngoài dựa vào việc thay đổi cách các nhấp chuột liên kết được xử lý (chẳng hạn như bao gồm các liên kết affiliate). Chỉ tắt tính năng này nếu bạn hiểu ý nghĩa.

Nếu bạn cần định cấu hình cài đặt về cách cookie được đặt trên trình duyệt của khách truy cập, bạn có thể sử dụng các cài đặt sau nhưng bị cảnh báo, giá trị không chính xác hoặc không hợp lệ cho các cài đặt này có thể khiến bạn và khách truy cập không thể đăng nhập vào tài khoản người dùng XenForo của bạn , bao gồm cả admin control panel.

Lý do chính để thay đổi các giá trị này là để chứa nhiều cài đặt XenForo trên cùng một tên miền. Nếu bạn chỉ có một cài đặt XenForo trên tên miền của mình, bạn không cần phải thay đổi các cài đặt này.

Chỉ thay đổi các giá trị này nếu bạn thật sự cần, và bạn biết bạn đang làm gì. Nếu bạn gặp sự cố, hãy đặt lại các giá trị này về giá trị mặc định của chúng.

  • $config['cookie']['prefix'] = 'xf_';

Tất cả các cookie được xác định theo tên, và tên của các tập tin cookie được thiết lập bởi XenForo thường có tiền tố với xf_ để cho phép chúng được phân biệt với các cookie được thiết lập bởi các hệ thống khác. Một hệ quả của việc thay đổi giá trị này là nó sẽ đặt lại thiết lập Remember me cho tất cả khách truy cập đã đăng nhập của bạn, những người sẽ cần đăng nhập lại vào lần truy cập tiếp theo vào trang web của bạn.

Giá trị của tiền tố chỉ nên sử dụng chữ cái, số và dấu gạch dưới, và phân biệt chữ hoa chữ thường.

  • $config['cookie']['path'] = '/';

Sử dụng giá trị mặc định của /, cookie do XenForo đặt sẽ có sẵn trong tất cả các khu vực trên trang web của bạn. Nếu bạn cần thay đổi điều này để các cookie XenForo chỉ có sẵn trong một phần cụ thể của trang web, hãy thay đổi giá trị để bao gồm đường dẫn thư mục đến khu vực chính xác của trang web, bắt đầu với vị trí gốc của trang web, /.

Giá trị mẫu

  • '/' Cookie XenForo có sẵn cho tất cả các khu vực trên trang web của bạn.
  • '/forum/' Cookie XenForo chỉ có thể được đọc bởi các trang nằm trong thư mục forum, cư trú tại 'http://example.com/forum', nơi example.com là địa chỉ trang web của bạn.
  • '/path/to/other/folder/' Cookie XenForo chỉ có thể được đọc bởi các trang nằm trong thư mục path/to/other/folder, Đặt vị trí tại http://example.com/path/to/other/folder.
    • Cookie có thể không được đọc bởi các trang nằm trong các thư mục phía trên vị trí này, tức là:
    • http://example.com/path
    • http://example.com/path/to
    • http://example.com/path/to/other

Cảnh báo

Nếu bạn chỉ định đường dẫn cookie không cho phép cookie được đặt trong thư mục gốc XenForo, XenForo sẽ không thể đọc cookie được thiết lập và các hoạt động quan trọng như đăng nhập sẽ không thành công.

  • $config['cookie']['domain'] = '';

Tương tự như cài đặt đường dẫn cookie, điều này cho phép bạn chỉ định tên miền mà cookie của bạn có thể đọc được. Việc đặt giá trị này thành bất kỳ giá trị nào khác với giá trị mặc định, nhưng với đường dẫn cookie, bạn nên cẩn thận nếu thay đổi nó, vì nhập giá trị ngăn XenForo đọc cookie của riêng nó sẽ phá vỡ chức năng quan trọng, như khả năng đăng nhập.

Lý do để đặt giá trị này sẽ cho phép cookie được chia sẻ trên nhiều tên miền phụ, ví dụ: cài đặt .example.com sẽ cho phép cookie được truy cập trên tất cả các tên miền phụ của example.com, như là www.example.comother.example.com. Trong hầu hết các trường hợp, cài đặt này có thể được để lại với cài đặt mặc định.

Giá trị mẫu

  • '' chỉ cho phép đọc cookie trên tên miền đã thiết lập
  • '.example.com' cho phép đọc cookie trên example.com và bất kỳ tên miền phụ nào của chúng
  • 'subdomain.example.com' cho phép chỉ đọc cookie trên subdomain.example.com

Vị trí dữ liệu và tập lệnh

Nếu bạn muốn thay đổi vị trí mà XenForo lưu trữ dữ liệu và tập lệnh mà nó lưu giữ trong các tệp, chẳng hạn như avatar, tệp đính kèm và tệp javascript, bạn có thể làm như vậy bằng cách thay đổi các cài đặt này.

  • $config['externalDataPath'] = 'data';
  • $config['externalDataUrl'] = 'data';
  • $config['internalDataPath'] = 'internal_data';
  • $config['javaScriptUrl'] = 'js';

Path variables (Biến đường dẫn)

Trong mỗi trường hợp này, một tên biến kết thúc bằng Path (Đường dẫn) đề cập vào đường dẫn hệ thống tệp nội bộ trên máy chủ, liên quan đến thư mục trong đó XenForo được cài đặt. Đường dẫn tương đối bắt đầu từ thư mục cài đặt XenForo. Điều này có thể được đặt bên ngoài web root.

Nếu cài đặt XenForo của bạn tồn tại /users/yourname/htdocs/xenforo, thì các ví dụ sau cho thấy các giá trị khác nhau có liên quan như thế nào đến đường dẫn này:

  • data - /users/yourname/htdocs/xenforo/data
  • ../another-folder - /users/yourname/htdocs/another-folder

Các biến này cũng có thể sử dụng đường dẫn tuyệt đối từ máy chủ gốc, chẳng hạn như /users/yourname/htdocs/xenforo/data.

URL variables (Biến URL)

Các biến có tên kết thúc bằng Url đề cập một đường dẫn tương đối so với thư mục XenForo của bạn như được hiển thị từ web root của bạn. Các URL tương đối bắt đầu từ thư mục cài đặt XenForo của bạn. Nếu cài đặt XenForo của bạn nằm tại http://example.com/xenforo, các ví dụ sau cho thấy các giá trị khác nhau sẽ được đánh giá như thế nào:

  • data - http://example.com/xenforo/data
  • ../another-folder - http://example.com/another-folder
  • /a-root-folder - http://example.com/a-root-folder
  • /xenforo/my-folder - http://example.com/xenforo/my-folder

Có thể là URL đầy đủ, bao gồm tên miền, chẳng hạn như:

  • http://example.com/xenforo/data
  • //example.com/xenforo/data

Cảnh báo

Các thư mục được chỉ định làm đường dẫn phải có thể ghi bởi máy chủ web (chmod 777) hoặc dữ liệu sẽ không thể được lưu trữ trong các vị trí này bởi XenForo.

Nếu bất kỳ đường dẫn và URL nào được đặt không chính xác, chức năng XenForo quan trọng sẽ bị hỏng. Chỉ thay đổi chúng nếu bạn biết chính xác mình đang làm gì.

externalDataPath

Điều này định nghĩa đường dẫn đến thư mục 'data', trong đó XenForo giữ các tệp được phân phối trực tiếp tới trình duyệt thông qua máy chủ web, chẳng hạn như hình ảnh avatar và hình thu nhỏ tệp đính kèm. Thư mục này phải nằm trong web root.

externalDataUrl

Xác định vị trí của thư mục 'data', trong đó XenForo giữ avatar và hình thu nhỏ đính kèm, như được hiển thị từ máy chủ web của bạn.

internalDataPath

Xác định đường dẫn đến thư mục 'internal_data', chứa các tệp không được phân phát trực tiếp cho các trình duyệt web, chẳng hạn như tệp đính kèm.

javaScriptUrl

Xác định vị trí của thư mục 'js', trong đó XenForo hy vọng sẽ tìm thấy các tệp JavaScript cần thiết cho chức năng của nó, như một đường dẫn trên máy chủ web công cộng. Thư mục này phải nằm trong web root.

Bộ chuyển đổi cơ sở dữ liệu

  • $config['db']['adapterNamespace'] = 'Zend_Db_Adapter';

Điều khiển class adapter kết nối cơ sở dữ liệu sẽ được sử dụng.

Cài đặt bộ nhớ cache

Đối với các trang web XenForo lớn, có thể thuận lợi khi sử dụng cơ chế bộ nhớ cache để tăng tốc độ tạo trang.

Các cài đặt cho bộ nhớ đệm ẩn tất cả nằm trong phần $config['cache'], và được thảo luận chi tiết hơn trong phần Cache của hướng dẫn này.

Nếu bạn định cấu hình bộ nhớ cache, bạn có thể tắt bộ nhớ cache bất kỳ lúc nào bằng cách đặt giá trị của tùy chọn này thành false:

  • $config['cache']['enabled'] = false;

Cài đặt bộ nhớ cache

Các biến khác

  • $config['superAdmins'] = 1;

Đây là danh sách ID người dùng được phân cách bằng dấu phẩy được coi là Super Administrator. Super Administrator có thể tạo/xóa các Administrator khác và luôn truy cập được tất cả các phần của control panel.

  • $config['rebuildMaxExecution'] = 8;

Khi thực hiện tái tạo dữ liệu hoặc các quy trình chạy dài, chúng sẽ chỉ chạy trong số giây này trước khi trang được tải lại. Tăng số lượng này có thể cải thiện hiệu suất xây dựng lại một cách nhẹ nhàng, nhưng một số máy chủ có thể buộc phải giết quá trình PHP.

  • $config['globalSalt'] = '[%GLOBAL_SALT%]';

Biến này xác định một giá trị bí mật được sử dụng để salt giá trị của nhiều bộ nhớ cache, cookie và dữ liệu khác nhằm mục đích ngăn chặn dữ liệu bị đánh cắp hoặc giả mạo bởi các tác nhân độc hại. Không bao giờ tiết lộ giá trị global salt cho bất kỳ ai vì điều này sẽ làm tổn hại đến tính bảo mật của cài đặt XenForo.

Thông thường, XenForo sẽ tạo ra global salt an toàn của riêng mình và bạn sẽ chỉ cần thay đổi nó nếu bạn muốn xác định.

  • $config['checkVersion'] = true;

Nếu được bật, hệ thống sẽ kiểm tra số phiên bản được lưu trữ trong các tập lệnh PHP XenForo khớp với số phiên bản được lưu trữ trong cơ sở dữ liệu XenForo của bạn và sẽ ngăn truy cập vào diễn đàn theo các khách truy cập thường xuyên nếu các con số không khớp, như trường hợp khi bạn vừa tải lên các tệp sẵn sàng để chạy nâng cấp, nhưng chưa thực sự chạy quá trình nâng cấp.

  • $config['passwordIterations'] = 10;

Định cấu hình sức mạnh của hệ thống lưu trữ mật khẩu dựa trên bcrypt. Số cao hơn an toàn hơn nhưng mỗi lần tăng giá trị của cài đặt này sẽ tăng gấp đôi lượng thời gian cần thiết để tạo hoặc xác thực mật khẩu, dẫn đến việc sử dụng máy chủ cao hơn.

  • $config['maxImageResizePixelCount'] = 20000000;

Kích thước tối đa của một hình ảnh (trong tổng số điểm ảnh) mà XenForo sẽ cố gắng thay đổi kích thước. Hình ảnh lớn hơn sẽ không được thay đổi kích thước và do đó có thể bị từ chối. Điều này được tính bằng cách sử dụng width × height.

  • $config['adminLogLength'] = 60;

Số ngày để lưu nhật ký của tất cả hoạt động của Administrator trong admin control panel. Sau khi số ngày này đã trôi qua kể từ khi một hành động được ghi lại, nó sẽ bị lược bớt khỏi cơ sở dữ liệu.

  • $config['chmodWritableValue'] = 0;

Nếu giá trị này khác 0, tất cả các tệp được tạo bởi XenForo sẽ được tự động chmodd thành giá trị này. Các thư mục cũng sẽ được chuyển thành giá trị này, mặc dù chúng cũng sẽ luôn luôn là user-, group-, và world-executable. Trong hầu hết các trường hợp, XenForo sẽ tự động xác định giá trị chmod chính xác.

  • $config['jsVersion'] = ''; Giá trị này có thể được thay đổi để buộc làm mới tất cả các tệp JS. Đối với nhà phát triển, điều này đã bị thay thế bởi tùy chọn jsLastUpdate.

  • $config['untrustedHttpClient'] = 'array()'; Khi XenForo thực hiện gọi HTTP đến một máy chủ bên ngoài không đáng tin cậy, bạn có thể chỉ định cấu hình adapter cụ thể. Ví dụ, điều này cho phép bạn sử dụng một dịch vụ proxy HTTP để ngăn IP của máy chủ ứng dụng của bạn không bị rò rỉ. Giá trị phải là mảng cấu hình adapter như được đưa ra trong ví dụ Zend_Http_Client_Adapter_Proxy này.

Debug mode (Chế độ gỡ lỗi)

Debug mode (Chế độ gỡ lỗi) là một trạng thái đặc biệt trong đó XenForo sẽ chạy cho mục đích gỡ lỗi hoặc phát triển.

  • $config['debug'] = false;

Đặt điều này thành true là cần thiết cho một số chức năng nhất định để hoạt động, bao gồm chế độ Designer và cế độ Developer.

Cảnh báo

Không bao giờ, không bao giờ kích hoạt chế độ gỡ lỗi trên một trang web sản xuất trực tiếp tiếp xúc với Internet.

Không chỉ thực thi và tạo trang chạy chậm hơn đáng kể so với chế độ gỡ lỗi bị vô hiệu hóa, những thông tin quan trọng như trạng thái truy vấn SQL nội bộ có thể được tiết lộ cho người dùng truy cập. Chỉ kích hoạt chế độ gỡ lỗi nếu bạn đang làm việc trên một cài đặt XenForo riêng được bảo vệ khỏi bất kỳ khách truy cập tiềm ẩn độc hại nào.