php bedzie dzialal z prawami jakie ma apache, lepiej ich nie zmieniac.
lepiej rozbic to wszystko na poszczegolne banalnie proste elementy i zrobic tak:
piszesz sobie w php skrypcik ktory tworzy plik, np.: /tmp/plik (tam kazdy ma prawo pisac) czy ~/public_html/plik (woj katalog domowy). nawet nie musisz tworzyc przycisku:
<?PHP
touch("/tmp/plik");
chmod("/tmp/plik",0666); // wlascielem jest apache, wiec niech kazdy moze go skasowac.
echo "/tmp/plik utworzony";
?>
wrzuczasz go do jakiegokolwiek podkatalogu strony jako index.php
ograniczas dostep do tego tego katalogu poprzez autoryzacje w .htaccess:
Deny from All
AuthName "Powiedz przyjacielu i wejdz"
AuthType Basic
# authuserfile tworzysz za pomoca htpasswd2 - masz centosa, masz rowniez mana do tego polecenia
AuthUserFile /home/twoj katalog/.htpass
require valid-user
Satisfy Any
# dodatkowo mozesz wydzielic adresy z ktorych usytkownicy nie beda pytani o haslo
Allow from 127.0.0.1/255.0.0.0
Allow from 192.168.3.2/255.255.255.0
piszesz skrypt w sh/bashu (/sciezka/skrypt.sh):
#!/bin/bash
if [ -f /tmp/plik ] ; then
rm -f /tmp/plik # po to byl potrzebny na wszelakij sluczaj chmod 666
pkill gra
sleep 2 # dajesz czas na zamkniecie procesu np. 2 sek
/sciezka/gra # odpalasz gre ponownie
fi
potem do crontaba uzytkownika z ktorego odpalana jest gra dopisujesz (crontab -e -u uzytkownik_z_ktorego_odpalasz_gre)
* * * * * /sciezka/skrypt.sh 1>/dev/null 2>&1
bonusy:
- masz 4 elementy banalnie proste
- mozesz tworzyc pliczek nie tylko poprzez skrypt php
antybonus:
- skrytp jest odpalany co minute, wiec mozesz czekac nawet 59 sekund na przeladowanie. mozesz pominac to rezygnujac z crona i skryptu na rzecz czegos w stylu:
#!/bin/bash
while true ; do
if [ -f /tmp/plik ] ; then
rm -f /tmp/plik # po to byl potrzebny na wszelakij sluczaj chmod 666
pkill gra
sleep 2 # dajesz czas na zamkniecie procesu np. 2 sek
/sciezka/gra # odpalasz gre ponownie
fi
sleep 3 # czesttliwosc z jaka skrypt sprawdza istnienie pliku
done
to odpalasz albo poprzez polecenie screen albo poprzez nohup