Zaczynając pisać kod w PHP, który wykonuje pewne polecenia przez przez konsole należy zaznajomić się z prawami dostępu w linuxie. Jak wiadomo domyślnie wszelkie skrypty linuxa, które służą do edycji systemowych ustawień należą do właściciela i grupy root. Niestety (albo stety) nie możemy (nie chcemy) uruchomić serwera apachea jako root ponieważ jest to wysoce ryzykowne dla naszego serwera. W standardzie apache uruchamia wszelkie skrypty jako użytkownik www-data lub po prostu 33. Dlatego właśnie musimy zmienić właściciela oraz grupę wszystkich plików które będą przez nas używane na www-data.
Oto lista plików, których właścicieli musimy zmienić poleceniami:
chown www-data [plik]
oraz chgrp www-data [plik]
:1. /etc/network/interfaces
2. /etc/init.d/networking
3. /etc/network/run/ifstate
Ok, jeżeli mamy już zmienione uprawnienia możemy zabrać się za nasz panel, ale najpierw rzućmy okiem na nasz plik /etc/network/interfaces. U mnie wygląda on tak:
auto lo
iface lo inet loopback
up ip l s imq0 up && ip l s imq1 up
auto eth0
iface eth0 inet static
address 212.244.101.111
netmask 255.255.255.53
network 10.5.1.0
broadcast 10.5.1.10
gateway 10.5.1.1
up echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
auto eth1
iface eth1 inet static
address 212.244.101.129
netmask 255.255.255.128
network 212.244.101.128
broadcast 212.244.101.255
up route add -host 212.244.101.244 dev eth1
auto eth1:1
iface eth1:1 inet static
address 10.10.1.1
netmask 255.255.0.0
network 10.10.1.1
broadcast 10.10.1.255
auto eth1:0
iface eth1:0 inet static
address 172.16.171.1
netmask 255.255.255.0
network 172.16.171.0
broadcast 172.16.171.255
iface lo inet loopback
up ip l s imq0 up && ip l s imq1 up
auto eth0
iface eth0 inet static
address 212.244.101.111
netmask 255.255.255.53
network 10.5.1.0
broadcast 10.5.1.10
gateway 10.5.1.1
up echo 1 > /proc/sys/net/ipv4/conf/all/proxy_arp
auto eth1
iface eth1 inet static
address 212.244.101.129
netmask 255.255.255.128
network 212.244.101.128
broadcast 212.244.101.255
up route add -host 212.244.101.244 dev eth1
auto eth1:1
iface eth1:1 inet static
address 10.10.1.1
netmask 255.255.0.0
network 10.10.1.1
broadcast 10.10.1.255
auto eth1:0
iface eth1:0 inet static
address 172.16.171.1
netmask 255.255.255.0
network 172.16.171.0
broadcast 172.16.171.255
Tutaj każdy będzie musiał się wykazać inicjatywą i zbudować własny kod PHP pod swój plik interfaces.
Aby zbudować panel będziemy musieli utworzyć dla pliki PHP: panel.php i panel_edit.php.
Tak mniej więcej będzie wyglądał plik panel.php:
A tak będzie wyglądał nasz plik panel_edit.php:
Wszelkie szczegóły starałem się umieścić w kodzie w komentarzach. Kod nie jest skomplikowany, więc myślę że każdy sobie poradzi z jego zrozumieniem. W razie problemów proszę pisać w komentarzach - postaram się rozwiać wszelkie wątpliwości.
Brak komentarzy:
Prześlij komentarz