Tải tệp cấu hình PHP .user.ini trên server sử dụng PHP 7.x

Khi sử dụng #wordpress sẽ có một số Plugin bảo mật yêu cầu sử dụng file cấu hình php.ini hoặc .user.ini để dùng được các chức năng nâng cao.

Lấy ví dụ như Plugin bảo mật NinjaFirewall (WP+ Edition) đề nghị bạn sử dụng .user.ini để kích hoạt chế độ Full WAF. Nếu gặp trường hợp bạn không thể kích hoạt chế độ này thì rất có thể bạn chưa cho phép PHP quét file .ini trong thư mục gốc.

Kể từ PHP 5.3.0, PHP bao gồm hỗ trợ cấu hình tệp INI trên cơ sở từng thư mục. Các tệp này chỉ được xử lý bởi CGI / FastCGI SAPI. Chức năng này không còn tiện ích mở rộng PECL htscanner. Nếu bạn đang chạy PHP dưới dạng mô-đun Apache, hãy sử dụng tệp .htaccess để có tác dụng tương tự.

Ngoài tệp php.ini chính , PHP quét các tệp INI trong mỗi thư mục, bắt đầu từ thư mục của tệp PHP được yêu cầu và hoạt động theo cách của nó tới gốc tài liệu hiện tại (như được đặt trong [$ _SERVER [‘DOCUMENT_ROOT’]). Trong trường hợp tệp PHP nằm ngoài thư mục gốc của tài liệu, chỉ có thư mục của nó được quét.

Cho phép PHP quét tệp .ini

Kiểm tra phiên bản php

php -v

Chỉnh sửa tệp php.ini trong thư mục /etc/php/7.x/fpm/ (thay 7.x bằng tên phiên bản php của bạn)
Tìm đến phần:

;;;;;;;;;;;;;;;;;;;;
; php.ini Options  ;
;;;;;;;;;;;;;;;;;;;;
; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
;user_ini.filename = ".user.ini"

; To disable this feature set this option to an empty value
;user_ini.filename =

; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
;user_ini.cache_ttl = 300

Xóa dấu chấm phẩy “;” ở trước 2 chỉ thị user_ini.filename = ".user.ini"user_ini.cache_ttl = 300

Tệp php.ini sau khi sửa đổi

;;;;;;;;;;;;;;;;;;;;
; php.ini Options  ;
;;;;;;;;;;;;;;;;;;;;
; Name for user-defined php.ini (.htaccess) files. Default is ".user.ini"
user_ini.filename = ".user.ini"

; To disable this feature set this option to an empty value
;user_ini.filename =

; TTL for user-defined php.ini files (time-to-live) in seconds. Default is 300 seconds (5 minutes)
user_ini.cache_ttl = 300

Giải thích:

  • Hai chỉ thị INI mới, user_ini.filenameuser_ini.cache_ttl kiểm soát việc sử dụng các tệp INI của người dùng.

  • user_ini.filename đặt tên của tệp mà PHP tìm kiếm trong mỗi thư mục; nếu được đặt thành một chuỗi trống, PHP hoàn toàn không quét. Mặc định là .user.ini .

  • user_ini.cache_ttl kiểm soát tần suất các tệp INI của người dùng được đọc lại. Mặc định là 300 giây (5 phút).

Sau khi lưu hãy đợi sau 5 phút để PHP tải các tệp .user.ini