Fórum Ubuntu CZ/SK
Ubuntu pro osobní počítače => Obecná podpora => Téma založeno: Fastmancz 21 Května 2014, 10:23:29
-
Dobrý den,
Mám tenhle kód
#!/bin/bash
cd /var/www/html
mkdir $1
chmod -R 0777 $1
Cíl: Přesune se na adresář /var/www/html a vytvoří složku.
Do konzole zadáno:
root@ubuntuserver:/administrace/script# sh userftp.sh mojeslozka
userftp.sh: 2: cd: can't cd to /var/www/html
chmod: nelze přistoupit k „mojeslozka“: Adresář nebo soubor neexistuje
v PHP bude spouštět kód
<?php
$old_path = getcwd();
chdir('/administrace/script/');
$output = shell_exec("./userftp.sh $ftpusr");
chdir($old_path);
?>
Složka se bohužel nevytvoří ani se neudělí práva na danou složku.
Děkuji všem za odpovědi.
-
samozrejme ze bash funguje spravne, kde ale nic neni ani smrt nebere, viz:
userftp.sh: 2: cd: can't cd to /var/www/html
chmod: nelze přistoupit k „mojeslozka“: Adresář nebo soubor neexistuje
a take bych doporucoval naucit se php pokud ho chces pouzivat, protoze delat shell_exec() misto phpoveho mkdir() or ftp_mkdir() je *cunarna:
http://www.php.net/manual/en/function.mkdir.php
-
to nastavení práv je taky něco ošklivého nepěkná zlá věc
-
ty složky ale existují...
-
Já prostě nevím. Prý u ubuntu nefunguje "cd" myšleno v bash .sh. Je tu někdo rozumný, kdo by mi to mohl napsat, protože já s bashem fakt neumím.
-
cd funguje i ve skriptu.
_cokoli_ muzes udelat v comand line, bude fungovat i ve skriptu. Pokud to nefunguje na command line, nepojede to ani ve skriptu...
-
Jen upozornění. bash != sh, v Ubuntu sh -> /bin/dash. Nikdy nespouštěj bash skripty přes příkaz sh, protože pak už je jedno, že je na prvním řádku správný interpret uveden, místo Bashe to zpracuje Dash, jako systémový shell. Ne že by to bylo relevantní k tomuto problému, protože použité příkazy nepatří mezi rozšíření Bashe.