1. Vô hiệu hóa mã safemode PHP
Để vô hiệu hóa mã an toàn PHP, hãy đăng nhập bằng SSH vào máy chủ DirectAdmin của bạn với người dùng "root" và chỉnh sửa tệp sau:
nano /usr/local/directadmin/custombuild/options.conf
Tệp này sẽ giống như sau:
#PHP Settings
php1_release=7.4
php1_mode=php-fpm
php2_release=no
php2_mode=php-fpm
php3_release=no
php3_mode=php-fpm
php4_release=no
php4_mode=php-fpm
secure_php=yes
php_ini=no
php_timezone=America/New_York
php_ini_type=production
x_mail_header=yes
Trong tệp này, hãy tìm kiếm dòng sau:
secure_php=yes
Thay đổi giá trị của dòng này từ “có” thành “không”:
secure_php=no
Tiến hành lưu tệp (bằng nano với ctrl + x, theo sau là “y” + <enter>).
2. Xây dựng lại PHP
Sau khi thay đổi cấu hình, bạn cần xây dựng lại PHP bằng lệnh sau. Lưu ý rằng quá trình này có thể mất vài phút.
cd /usr/local/directadmin/custombuild/
./build secure_php
Nếu mọi thứ suôn sẻ, bạn sẽ được trình bày với tuyên bố sau:
2021/11/17 14:17:34 info starting queues
dataskq: command: action=rewrite&value=httpd
PHP 7.4.25 Installed.
3. Thay đổi cấu hình PHP.ini
Bước cuối cùng là thay đổi tệp cấu hình PHP.ini mặc định, tệp này chứa danh sách các chức năng bị vô hiệu hóa. Mở tệp sau
nano /usr/local/php74/lib/php.ini
Và tìm kiếm dòng:
disable_functions = exec,system,passthru,shell_exec,proc_close,proc_open,dl,popen,show_source,posix_kill,posix_mkfifo,posix_getpwuid,posix_setpgid,posix_setsid,posix_setuid,posix_setgid,posix_seteuid,posix_setegid,posix_uname
Bạn có xóa proc_close và proc_open để bật các lệnh đó hoặc bạn có thể xóa toàn bộ dòng để bật tất cả các chức năng này.
4. Khởi động lại httpd
Sau đó, chỉ cần khởi động lại các dịch vụ Apache / PHP để kích hoạt các thay đổi.
service php-fpm74 restart
service httpd restart
Bây giờ lệnh proc_open sẽ hoạt động!