Autor | Zpráva | ||
---|---|---|---|
ForestCZE Profil |
#1 · Zasláno: 28. 12. 2013, 03:08:46
Zdravím, vytvořil jsem si shell script restartovat.sh:
#!/bin/bash /etc/init.d/apache2 reload Nastavil jsem práva: chmod 755 ./restartovat.sh Pokud v příkazovém řádku zadám: bash ./restartovat.sh tak se Apache v pohodě znovu načte. Já bych ten příkaz potřeboval pustit v PHP, tak mám funkci: exec("cd /var/www/cesta; bash ./restartovat.sh"); Problém je, že se to prostě nepošle a Apache se znovu nenačte. Zkoušel jsem si to nechat vypsat: echo exec("cd /var/www/cesta; bash ./restartovat.sh"); a vrátí se mi: * Dokázal by mi někdo poradit prosím? Už se s tím peru 7 hodin. Díky. |
||
Rfilip Profil |
#2 · Zasláno: 28. 12. 2013, 11:02:23
Nejpravděpodobnější příčina jsou oprávnění uživatelů - služby může restartovat jen root a php dědí práva apache - tedy vetšinou účet nobody/www-data..., který téměř žádný práva v systému nemá.
K tomu výpisu, exec vrací jen poslední řádek výstupu (celý vrací v nepoviném druhém parametru ), použij radši funkci system |
||
ForestCZE Profil |
#3 · Zasláno: 28. 12. 2013, 14:07:12
Rfilip:
„Nejpravděpodobnější příčina jsou oprávnění uživatelů - služby může restartovat jen root a php dědí práva apache - tedy vetšinou účet nobody/www-data..., který téměř žádný práva v systému nemá.“ Zkoušel jsem: chown root ./restartovat.sh ale to bohužel nepomohlo |
||
Davex Profil |
#4 · Zasláno: 28. 12. 2013, 14:51:23
|
||
Časová prodleva: 10 let
|
0