2014-04-29 3 views
0

PHP를 사용하여 서버를 만들었습니다. 또한 PHP 서버의 컨트롤 패널 역할을하는 html 페이지를 만들었습니다. 제어판 페이지를 방문해도 PHP 서버가 실행되고 있지 않으면 버튼을 눌러 PHP 서버를 시작하는 새로운 프로세스를 만듭니다. 여기 자바 스크립트를 사용하여 PHP 프로세스 실행

터미널 사용하여 PHP 서버 (launchserver.php) 시작하는 코드입니다! #을

<?php 
    error_reporting(E_ALL); 
    require_once 'lib/server.php'; 
    require_once 'lib/client.php'; 

    set_time_limit(0); 

    // Get the local ip address of the host machine (NOTE: Not the loop back address) 
    $command="/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'"; 
    $ipaddress = exec ($command); 
    $server = new Server($ipaddress, 15000); 
    $server->run(); 
?> 

서버를 실행하려면 -q는/usr/빈/php에, 난 그냥 터미널을 엽니 다 "php -q launchserver.php"를 실행하십시오.

그러나 터미널을 사용하여 PHP 스크립트를 실행하고 싶지는 않습니다. 버튼을 클릭 할 수있는 새로운 제어판 페이지를 사용하고 싶습니다. 버튼은 launchserver.php를 실행하는 별도의 프로세스를 만듭니다. 스크립트를 작성하고 서버를 세우며, 제어 페이지를 벗어나면 제어 페이지에 더 이상 있지 않기 때문에 서버가 죽지 않습니다.

+1

PHP 서버가 아직 실행 중이 아니고 JS 또는 html을 통해 이러한 작업을 수행 할 수없는 경우 PHP 파일을 실행할 수 없습니다. – Kypros

+0

그러나 PHP 스크립트를 실행하려면 PHP가 실행 중이어야합니다 .. –

+0

서버가 실행되고 있지 않으면 대화 할 수 없습니다. 'xinetd'를 설정하거나 아파치를 실행하고 웹 페이지를 사용하여 서버를 시작할 수 있다면 아마 이것을 할 수 있습니다. 대부분 서버 프로세스는 부팅 할 때 시작됩니다. –

답변

0

나는 HTML 버튼을 사용하여 다른 파일에서 일부 PHP 코드를 실행해야만 비슷한 비슷한 작업을 수행해야했습니다. 당신이 필요로하는 그런

<?php 
if($_POST) { 
    error_reporting(E_ALL); 
    require_once 'lib/server.php'; 
    require_once 'lib/client.php'; 

    set_time_limit(0); 

    // Get the local ip address of the host machine (NOTE: Not the loop back address) 
    $command="/sbin/ifconfig eth0 | grep 'inet addr:' | cut -d: -f2 | awk '{ print $1}'"; 
    $ipaddress = exec ($command); 
    $server = new Server($ipaddress, 15000); 
    $server->run(); 
    } 
?> 

이에

변경하여 launchserver.php 파일 :

내 제안 (I는 "주니어"나는, 그래서 아마 더 나은/간단한 해결책이있다)이다 "onclick"이있는 버튼입니다. 예 : <button onclick="startMyServer();">Start My Server</button>

그런 다음 JS 기능 : 파일에 양식을 보내처럼

function startMyServer() { 
    var startServer = 1; 
    $.post("<full url here>/launchserver.php", { 'startServer': startServer }, function(d){ 

    }); 
} 

이는 역할을합니다. $ .post에는 JQuery가 필요하므로 포함 시키십시오.

버튼을 클릭하면 $ _POST가 PHP 파일로 전송되고 $ _POST가 전송되면 PHP 파일의 코드가 실행됩니다.

도움이되기를 바랍니다. 이 JQuery 함수를 사용하여 PHP 코드 (다른 파일에있는 mysql 쿼리)를 실행하고 완벽하게 작동합니다.

"나는 PHP로 실행되는 apache2 httpd 웹 서버가 있습니다."라고 말했기 때문에 당신을 위해 속임수를 써야합니다.

+0

나는 귀하의 제안을 시도하고 다시보고 할 것입니다. 고맙습니다! – David

+0

작동 시키셨습니까? – MrVentzi

+0

이봐, 해봤지만 작동하지 않았다. 그것은 서버를 시작했고 서버는 실행을 수행했으나 다음은 죽었습니다. – David

관련 문제