Chức năng php exec() không được kích hoạt

proc_open is probably a better solution for most use cases as of PHP 7.4.  There is better control and platform independence.  If you still want to use shell_exec(), I like to wrap it with a function that allows better control.

Something like below solves some problems with background process issues on apache/php.  It also

public function sh_exec(string $cmd, string $outputfile = "", string $pidfile = "", bool $mergestderror = true, bool $bg = false) {
  $fullcmd = $cmd;
  if(strlen($outputfile) > 0) $fullcmd .= " >> " . $outputfile;
  if($mergestderror) $fullcmd .= " 2>&1";
  if($bg) {
    $fullcmd = "nohup " . $fullcmd . " &";
    if(strlen($pidfile)) $fullcmd .= " echo $! > " . $pidfile;
  } else {
    if(strlen($pidfile) > 0) $fullcmd .= "; echo $$ > " . $pidfile;
  }
  shell_exec($fullcmd);
}

Tại Bobcares, chúng tôi thường nhận được yêu cầu kích hoạt các chức năng PHP, như một phần của Dịch vụ quản lý máy chủ của chúng tôi

Hôm nay, hãy xem các Kỹ sư hỗ trợ của chúng tôi kích hoạt chức năng này như thế nào. Chúng ta cũng sẽ thảo luận về rủi ro bảo mật liên quan đến hàm exec

Hàm exec là gì?

exec là một hàm PHP sẵn có. Nó thay thế một quy trình hiện đang chạy bằng chương trình mới. PHP sử dụng hàm để thực thi chương trình và nó trả về dòng cuối cùng của kết quả

Nhiều plugin tối ưu hóa hình ảnh WordPress sử dụng chức năng này. Do đó người dùng WordPress thường tiếp cận chúng tôi để kích hoạt chức năng này

Rủi ro bảo mật khi kích hoạt chức năng exec

PHP có một số chức năng nguy hiểm có thể khiến máy chủ dễ bị tấn công. Các hàm này bao gồm system, passthru, shell_exec, exec, v.v.

Do đó, các Kỹ sư hỗ trợ của chúng tôi luôn khuyến nghị khách hàng tắt các chức năng này trong máy chủ. Và các hàm này sẽ được liệt kê trong chỉ thị disable_functions trong tệp php. tập tin ini

Chức năng php exec() không được kích hoạt

  • Nhấp vào menu Trình quản lý MultiPHP

    Chức năng php exec() không được kích hoạt

  • Sau đó vào menu System PHP-FPM Configuration như hình bên dưới

    Chức năng php exec() không được kích hoạt

  • Trong menu System PHP-FPM Configuration bạn tìm mục “Disable Function” rồi click vào mũi tên nhỏ như hình bên dưới

    Chức năng php exec() không được kích hoạt

  • Khi bạn đã bấm vào mũi tên, menu phần sẽ xuất hiện như hình bên dưới
    Chức năng php exec() không được kích hoạt

    Xóa “exec” trên menu để kích hoạt nó
    Sau đó lưu cấu hình

  • Cách vô hiệu hóa

    1. Lặp lại các bước như trên cho đến khi vào menu System PHP-FPM Configuration, bạn tìm lại menu “Disable Functions” như hình bên dưới

      Chức năng php exec() không được kích hoạt

    2. Phần điền thêm từ “exec” rồi nhấn Add. để hiển thị dưới đây

      Chức năng php exec() không được kích hoạt

      Sau đó lưu cấu hình

    Phần kết luận

    Xem xét chức năng này rất quan trọng để bảo vệ khỏi các cuộc tấn công của tin tặc, bạn có thể kích hoạt chức năng này nếu bạn muốn cài đặt các plugin mới trong OJS, OMP và OPS và sau khi các plugin được cài đặt, bạn có thể hủy kích hoạt lại chúng. Vì vậy, có thể giảm thiểu rủi ro của những kẻ xâm nhập (Hacker)

    Chúng tôi cung cấp các dịch vụ OJS, OMP và OPS Fix để xem chi tiết, vui lòng bấm vào đây để xem thông tin chi tiết sau

    Thông tin về các Tác giả

    Chức năng php exec() không được kích hoạt

    Muhammad Al Madani

    Xin chào. Tôi là Almadani, OJS hỗ trợ khách hàng từ Openjournaltheme. Có niềm đam mê giúp giải quyết các vấn đề của nhà xuất bản, có kiến ​​thức và kinh nghiệm liên quan đến việc sử dụng OJS, OMP và Eprints

    Làm cách nào để bật chức năng PHP exec trong Cpanel?

    Vì vậy, bạn cần làm theo các bước để kích hoạt hàm exec() trong PHP-FPM. .
    Đăng nhập vào máy chủ qua SSH
    Kiểm tra phiên bản PHP của máy chủ bằng lệnh bên dưới. .
    Sau đó mở tệp cấu hình PHP-FPM. .
    Sau đó, bạn sẽ tìm thấy hàm exec() trong danh sách hàm bị vô hiệu hóa. .
    Xóa nó khỏi dòng trên

    Chức năng thực thi PHP là gì?

    Hàm exec() là một hàm có sẵn trong PHP được sử dụng để thực thi một chương trình bên ngoài và trả về dòng cuối cùng của kết quả . Nó cũng trả về NULL nếu không có lệnh nào chạy đúng. cú pháp. chuỗi exec( $command, $output, $return_var )