اگر جایی لازم دارید که کاربر منتظر پردازش شما نباشد و کدتان را به اصطلاح در 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 );
?>
دیدگاه بگذارید