اجرا کردن کد php با fpm


اگر جایی لازم دارید که کاربر منتظر پردازش شما نباشد و کدتان را به اصطلاح در background اجرا کنید میتوانید با shell خود php را صدا بزنید و آدرس فایلتان را به آن بدهید تا فایلتان را در background اجرا کند. اما صدا زدن هر بار آن بار زیادی برای Cpu شما خواهد داشت. بهتر است که فایل php تان با بدهید به php-fpm تا آن را برایتان اجرا کند. برای اینکار ابتدا yum --enablerepo=epel install fcgi را نصب کنید و سپس از کد زیر استفاده کنید.

<?php
function runPhp( $path, $qs, $daemon = true ) {
    $cmd = 'SCRIPT_NAME=/'.basename( $path ).' \
    SCRIPT_FILENAME='.$path.' \
    QUERY_STRING='.$qs.' \
    DOCUMENT_ROOT='.__dir__.' \
    REQUEST_METHOD=GET \
    cgi-fcgi -bind -connect 127.0.0.1:9000 '.($daemon?'> /dev/null 2>/dev/null &':'').'';

    $ret = shell_exec( $cmd );
    if( ! $daemon )
        return explode("\r\n\r\n", $ret, 2)[1];];
}

echo runPhp( __dir__.'/test1.php', http_build_query([ 'id' => 10 ]), false );

?>
دیدگاه بگذارید

دیدگاه

دیدگاه ها بدون تایید میباشد.