Portál AbcLinuxu, 19. července 2025 19:28


Dotaz: Sh soubor

19.2.2012 12:31 mlynas
Sh soubor
Přečteno: 631×
Odpovědět | Admin
Zdravím,

Měl bych prosbu, potřeboval bych, aby se pomocí php souboru, spustil sh soubor.

Třebas aby v souboru "start.php" byl nějaký script, a spustil soubor "start.sh"

Prosím poraďte, jak nato, nebo sem dejte kód.

Díky

Řešení dotazu:


Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

19.2.2012 13:02 Kit
Rozbalit Rozbalit vše Re: Sh soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
K tomuto účelu se dá využít funkce exec()
19.2.2012 13:07 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
abych pravdu řekl, jsem začátečník, proto zde píšu, moc těmto funkcím nerozumím...
19.2.2012 13:11 Kit
Rozbalit Rozbalit vše Re: Sh soubor
V tom PHP prostě jen zadáš:
exec('start.sh');
a ten skript se provede. Tedy pokud to není na nějakém webhostingu, tam je to standardně zakázáno.
19.2.2012 14:32 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
a když tam budu chtí třebas cestu jako je cd /home/servery/cs/016 ?
19.2.2012 14:45 Kit
Rozbalit Rozbalit vše Re: Sh soubor
A zkusil jsi to už? Normálně se to provede, tedy pokud pokud máš k tomu adresáři potřebná přístupová práva.

O co ti vlastně jde? PHP je interpretr jako každý jiný, může volat jiný interpretr a může být volán jiným interpretrem. Obvykle žádný shell není nutné volat, protože samotné PHP disponuje velmi slušným arzenálem, včetně manipulace se soubory a adresáři. Na to, aby sis v PHP otevřel a upravil nějaký soubor, shell ani příkaz cd nepotřebuješ.
19.2.2012 14:50 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
mi jde o to, že mám cs server, a když v administraci zmáčknu spistit, tak že to najede na cestu /home/servery/cs/016 a tam tu spustí start.sh soubor, o to mi jde , to je vše, a to nejsem schopen udělat.
26.2.2012 00:33 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Sh soubor
exec('cd/home/servery/cs/016 && start.sh');
existují i další metody s většími možnostmi
26.2.2012 00:37 Ash | skóre: 53
Rozbalit Rozbalit vše Re: Sh soubor
Nebo raději:
exec('cd /home/servery/cs/016 && /home/servery/cs/016/start.sh');
24.2.2012 17:56 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
? prosim poradte
Tarmaq avatar 24.2.2012 18:03 Tarmaq | skóre: 39
Rozbalit Rozbalit vše Re: Sh soubor
no a pise ti to nejakou chybu?
Don't panic!
24.2.2012 18:35 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
n ale nezapne se, jednoduše se mi jedná o toto :

nejde mi udělat, že když kliknu na start, tak že se mi zapne server. ControlPanel běží na stejne mašině (dedikovaný server).

Jak mám udělat, že když kliknu na start (start.php) tak mi to spustí server třeas v Home/servery/cs/27056/016 a zde start.sh ?
24.2.2012 19:51 l4m4
Rozbalit Rozbalit vše Re: Sh soubor
Máš to udělat, jak bylo napsáno.
exec("Home/servery/cs/27056/016/start.sh");
kde namísto toho Home/servery... je nějaká skutečná cesta. Tedy buď absolutní, začínající /, nebo relativní vůči umístění toho skritpu. Uvedená nevypadá jako ani jedno z toho.

Pak možná dostaneš nějakou chybu, ale tu je zapotřebí vědět, aby se dala řešit.
25.2.2012 14:10 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
Může ten příkaz vypadat takto ?

exec("Home/servery/cs/27056/016/sh start.sh");

a pls dal by mi tu někdo, jak to mám vložiz do php souboru ? (značky atd....)
T-T avatar 25.2.2012 15:09 T-T | skóre: 12
Rozbalit Rozbalit vše Re: Sh soubor
Např.:
<?php
	system("/Home/servery/cs/27056/016/sh\ start.sh");
?>
^_^
25.2.2012 22:53 l4m4
Rozbalit Rozbalit vše Re: Sh soubor
Příkaz tak může vypadat, pokud existuje něco, co by se spustilo příkazem
Home/servery/cs/27056/016/sh start.sh
kdybys byl v adresáři, kde je ten PHP skript. Předpokládám, že nic takového není, protože jednak ta cesta Home/servery/cs/27056/016/ nejspíš neexistuje (vůči umístění skriptu), druhak v ní v tom místě, kde doopravdy existuje, nejspíš není žádné sh, ale akorát skirpt start.sh.

Rozumíš tomu, že Home/servery/cs/27056/016/... má být plná cesta k nějakému existujicímu souboru? Rozumíš, co to je cesta? Rozumíš, co to je spustit nějaký příkaz?
26.2.2012 00:39 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Sh soubor
Také bych se divil, pokud by tam byl adresář Home s VELKÝM H.
T-T avatar 24.2.2012 19:14 T-T | skóre: 12
Rozbalit Rozbalit vše Re: Sh soubor
Odpovědět | | Sbalit | Link | Blokovat | Admin
Taky je možné to otevřít přímo.
^_^
24.2.2012 19:49 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
je, ale já to potřebuju udělat přes web
T-T avatar 24.2.2012 19:57 T-T | skóre: 12
Rozbalit Rozbalit vše Re: Sh soubor
To jde taky. Např. konfigurace pro lighttpd:
cgi.assign = ( ".sh" => "/bin/bash" )
Pak už stačí jen zadat cestu k souboru v prohlížeči.
^_^
24.2.2012 20:06 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
a tu cestu mám dát místo toho /bin/bash?
24.2.2012 23:01 l4m4
Rozbalit Rozbalit vše Re: Sh soubor
Ne.
T-T avatar 24.2.2012 23:41 T-T | skóre: 12
Rozbalit Rozbalit vše Re: Sh soubor
Tohle je nastavení které má být bez úprav v konfiguraci lighttpd a způsobí že všechny soubory končícími na '.sh' budou spuštěny bashem. Funguje to naprosto stejně jako php script, jen je to v jiném jazyce.
^_^
24.2.2012 23:00 l4m4
Rozbalit Rozbalit vše Re: Sh soubor
To jednak znamená mít ten skript ve www prostoru (tj. musí mít URL), druhak je to mizerné UI, protože co člověk pak uvidí v prohlížeči?
25.2.2012 11:46 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
A NEMOHL BY MI TO NĚKDO UDĚLAT PŘES TeamViever? JAK VIDÍM ,TAK MI NIKDO NEVĚŘÍ, ŽE TO NEFUNGUJE......... PLS....
25.2.2012 11:56 l4m4
Rozbalit Rozbalit vše Re: Sh soubor
Nikdy jsi nenapsal, co přesně děláš (kód v PHP, etc.) a co přesně se stane (chyba v logu, etc.). Tudíž se tomu opravdu obtížně věří. Nejpravděpodobnější vysvětlení za takových okolností je, že jsi to nikdy skutečně nezkusil, protože to bys to sem mohl popsat.

A nekřič.
25.2.2012 12:07 mlynas
Rozbalit Rozbalit vše Re: Sh soubor
ale to nic nepíše, prostě to vložím, kliknu a nic se neděje, takže nwm co tu mám napsat, můžu dát TW? podíváš se sám....
T-T avatar 25.2.2012 12:38 T-T | skóre: 12
Rozbalit Rozbalit vše Re: Sh soubor
Zveřejni script a server který používáš. Pokud máš hosting u nějaké firmy tak si pravděpodobně script v bashi nespustíš.
^_^
25.2.2012 16:55 lertimir | skóre: 64 | blog: Par_slov
Rozbalit Rozbalit vše Re: Sh soubor
No pokud bych provozoval server s PHP pro uživatele, tak nenechám uživatele spouštět nějaké skripty. To znamená funkci exec() bych uživatelům blokoval. Zjistit co se děje, je pak samozřejmě na vás je standardní programátorská práce.
  1. Nastudovat potřebné funkce.
  2. Pokud program nic nepíše tak si výpisy udělat. Tedy vypsat si výsledek funkce exec a nastudovat, co výsledek znamená.
26.2.2012 20:44 kolcon | skóre: 15 | blog: kolcon
Rozbalit Rozbalit vše Re: Sh soubor
pod jakym uzivatelem bezi ten php? ma ten uzivatel prava na ten .sh skript? je ten .sh skript spustitelny?

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.