2016-09-10 24 views
0

ここからhtmlからbashスクリプトを実行する方法をいくつか質問しました。彼らのほとんどは私にPHPを紹介しました。 I followed everything in hereしかし、行かない。 私はhtmlやPHPの経験がありません。 だから私はすべてのものを設定する必要があります(私は思う...)。 nginx(と正常に動作しています)をインストールしました。 私はphpとphp-fpmをインストールしました。htmlからbashスクリプトを実行

私の簡単なWebページがある:

<!DOCTYPE html> 
<html> 
<head> 
<title>My page</title> 
</head> 
<body> 
<button type="button" onclick="run.php">Click Me!</button> 
</body> 
</html> 

私のデフォルトのnginxのサーバーの設定は次のとおりです。

server { 
    listen 80 default_server; 
    listen [::]:80 default_server ipv6only=on; 

    root /usr/share/nginx/html; 
    index index.html index.htm; 

    # Make site accessible from http://localhost/ 
    server_name localhost; 

    location/{ 
     # First attempt to serve request as file, then 
     # as directory, then fall back to displaying a 404. 
     #try_files $uri $uri/ =404; 
     try_files $uri $uri/ /index.html; 
     # Uncomment to enable naxsi on this location 
     # include /etc/nginx/naxsi.rules 
    } 

    # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests 
    #location /RequestDenied { 
    # proxy_pass http://127.0.0.1:8080;  
    #} 

    #error_page 404 /404.html; 

    # redirect server error pages to the static page /50x.html 
    # 
    #error_page 500 502 503 504 /50x.html; 
    #location = /50x.html { 
    # root /usr/share/nginx/html; 
    #} 

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 
    # 
    location ~ \.php$ { 
     fastcgi_split_path_info ^(.+\.php)(/.+)$; 
    # # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini 
    # 
    # # With php5-cgi alone: 
     fastcgi_pass 127.0.0.1:9000; 
    # # With php5-fpm: 
    # fastcgi_pass unix:/var/run/php5-fpm.sock; 
    # fastcgi_index index.php; 
    # include fastcgi_params; 
    } 

    # deny access to .htaccess files, if Apache's document root 
    # concurs with nginx's one 
    # 
    #location ~ /\.ht { 
    # deny all; 
    #} 
} 

私は両方のオプションを試してみました:単体のphp5-cgiの付/ PHP5-FPM

私でボタンクリックでトリガーするPHPスクリプト:

<?php 
shell_exec("ls"); 
header('Location: https://www.google.com'); 
?> 

何も起こりません(今のところ、私は単純なlsを実行します。これがうまくいくと/path/script.shに変更されます)

どうしたのですか?

答えて

0

私が前に述べたように、私はhtmlやPHPの経験はありません。

問題は、htmlファイルとphpファイルを分けたことです。組み合わされると、すべてがうまくいった。

<?php 
if ($_GET['run']) { 
    # This code will run if ?run=true is set. 
    exec("ls"); 
    header('Location: https://www.google.com'); 
} 
?> 

<html> 
<head> 
<title>My page</title> 
</head> 
<body> 
<!-- This link will add ?run=true to your URL, myfilename.php?run=true --> 
<a href="?run=true">Click Me!</a> 

</body> 
</html> 
関連する問題