Le fichier sh ne fonctionne pas sur le serveur Web nginx

0

J'utilise nginx web server dans openwrt et made page en utilisant un script shell et html. Le problème est que les commandes du shell ne sont pas en cours d'exécution mais que les balises HTML sont en cours d'exécution. Ci-dessous mon code.

#!/bin/sh

echo "Content-type: text/html"
echo ""
echo '<html>'
echo '<head>'
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">'
echo '<img src="../image.png" alt="Lakshmi Tours and Travels" style="width:435px;height:312px;">'
echo '</head>'
echo '<title>Jaydeep Tours and Travels</title>'
echo '<center><h1 align='center'>Welcome To Jaydeep Tours and Travels</h1></center>'
echo '<body><center><h1 align='center'>Movies</h1></center>'
echo '
<style type="text/css">
h1 {
color: #2B2301;
margin-top: 0.9cm;
background-color: #DDD4BC;
}
#movie:before {
content: url('../bullet.png');
padding-right: 7px;
}
#movie {
font-size: 25px; 
text-decoration: none;
color: #6E6E6E; 
margin-left: 0.8cm;
}
p {
font-size: 20px;
color: #6E6E6E;
text-align:center;
}
</style>'
list=$(ls -l /mnt/sda2 | grep "^d" | awk -F" " '{print $9}' | sed 's/Songs//g')
list1=$(echo $list | wc -w)
if [ $list1 = 0 ]; then
files=$(ls -p /mnt/sda2 | grep -v / | sed 's/index.html//g')
files1=$(echo $files | wc -w)
j=1
while [ $j -le $files1 ]
do
videofile=$(echo $files | cut -d' ' -f$j)
video = "/$videofile"
ext=$(echo $videofile | sed 's/.*\.//')
videoname=$(echo $videofile | cut -f1 -d".")
if [ $ext = "mp4" ]; then
    echo ' 
    <div style="text-align:center">
    <video width="400" height="260" controls>
        <source src="'$video'" type="video/mp4">
        </video></div>'
    echo '<p>'$videoname'</p>'
elif [ $ext = "webm" ]; then
    echo ' 
    <div style="text-align:center">
    <video width="400" height="260" controls>
        <source src="'$video'" type="video/webm">
        </video></div>'
    echo '<p>'$videoname'</p>'
elif [ $ext = "ogv" ] || [ $ext = "ogg" ]; then
    echo ' 
    <div style="text-align:center">
    <video width="400" height="260" controls>
        <source src="'$video'" type="video/ogg">
        </video></div>'
    echo '<p>'$videoname'</p>'
fi
j=$((j+1))
done
fi
i=1
while [ $i -le $list1 ]
do
folder=$(echo $list | cut -d' ' -f$i)
echo '<a href="#" onclick="myFunction(this); return false;"             
id="movie">'$folder'</a></font><br><br>'
i=$((i+1))
done
echo '
<script type="text/javascript">
function myFunction (movieElement) {
var mtype = movieElement.text
window.location.href = "luci2.sh?"+mtype;
}
</script>'
echo '<br><br><p1><center>For more movies and songs download the </p1><a             
href="/TvBus.apk" style="text-decoration:none">apk</a></font>'
echo '</body></html>'
exit 0

et ceci est mon fichier nginx.conf

user nobody nogroup;
worker_processes  1;
events {
worker_connections  1024;
}


http {
include mime.types;
index index.php index.html index.htm;
default_type text/html;

sendfile on;
keepalive_timeout 65;
gzip on;

gzip_min_length  1k;
gzip_buffers     4 16k;
gzip_http_version 1.0;
gzip_comp_level 2;
gzip_types       text/plain application/x-javascript text/css application/xml;
gzip_vary on;
server {
    listen       80;        # Port, make sure it is not in conflict with another http daemon.
    server_name  tvbus.xyz; # Change this, reference -> http://nginx.org/en/docs/http/server_names.html
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 32k;
fastcgi_buffers 4 32k;
fastcgi_busy_buffers_size 32k;
fastcgi_temp_file_write_size 32k;
client_body_timeout 10;
client_header_timeout 10;
send_timeout 60;        # 60 sec should be enough, if experiencing a lot of timeouts, increase this.
output_buffers 1 32k;
postpone_output 1460;

root   /mnt/sda2;       # Your document root, where all public material is.

location ~ \.php$ {
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

    if (-f $request_filename) {
        # Only throw it at PHP-FPM if the file exists (prevents some PHP exploits)
        fastcgi_pass    127.0.0.1:1026;     # The upstream determined above
    }
}
}
}

S'il vous plaît aidez-moi dans ce domaine, ce sera une grande appréciation. this is my output of sh file

Vishal Rabadiya
la source
Vous essayez de charger un script shell en tant que page Web? comme index.sh?
Nalaurien
Vous n'avez aucune configuration en place pour lui dire d'exécuter le script. Cela n'exécutera pas simplement le script shell que vous avez mis dans le répertoire web.
Seth
Btw, le code HTML n'est pas non plus "en marche", c'est simplement que votre navigateur essaie de comprendre ce qui lui est envoyé (le script total) et qu'il fera de son mieux pour en faire une page Web.
mtak
Oui, j'essaie de charger un script shell sous forme de page Web.
Vishal Rabadiya
Quand j’utilisais uhttpd au lieu de nginx, cela fonctionnait à merveille. Mais pour certaines raisons, j'utilise nginx
Vishal Rabadiya

Réponses:

0

J'ai résolu ce problème en utilisant nginx et uhttpd sur un port différent.

Vishal Rabadiya
la source