Piszę pomocny panel do dodawania uzytkowników do sieci(udostępnianie internetu). Głównie skrypt ładuje z bazy danych dane (formułki iptables itd) do plików mac, htb, htb_dzien, htb_noc...
I teraz mój problem. Po zapisaniu tych plików na serwerze, trzeba je przeładować(odpalić), z konsoli robi sie to bardzo prosto, wpisujemy "./mac"(jeśli jestesmy w katalogu /etc/init.d) i tak z każdym plikiem. I wszystko działa, ale chciałem żeby ten pliki automatycznie się "przeładowywały" ze skryptu php.
Do tego użyłem funkcje exec:
Kod
exec('../../../etc/init.d/mac');
i tak z kolejnymi plikami pokoleji.
Niestety nie wykonuje mi tego pliku.
to napisałem mały prosty skrypt pod basha, żeby sprawdzić czy funkcja exec działa na serwerze:
Kod
#!/bin/sh
cd /etc/init.d;./mac
cd /etc/init.d;./htb_dzien
echo 'lol';
cd /etc/init.d;./mac
cd /etc/init.d;./htb_dzien
echo 'lol';
z php uruchamiam to funkcja exec:
Kod
exec('./panel.sh', $ans)
foreach($ans as $line)
{
echo $line;
}
foreach($ans as $line)
{
echo $line;
}
Na stronie wyświetla mi się tylko lol, niestety dalej nie odpala tych plików, a jak wykonuje ten skrypt z terminala
Kod
./panel.sh
to oczywiście działa.
Prawa dostepu na czas testu ustawiłem na 777, do katalogów, jak i plików, gdzie znajdują sie mac, htb... jak i cały katalgo www.
Mam nadzieję ze dobrze wytłumaczyłem, na czym polega problem.
Z góry dziękuje za zainteresowanie.