Bu php kullanarak pc yeniden mümkün mü?
Bu exec()
veya system()
kullanabilirsiniz ama PHP apache
çalıştırmak kullanıcı çalıştırılan gibi izin sorun olacağı doğrudur.
Hızlı bir çözüm olarak, kullanıcı apache yeniden izin verilebilir. Bu oldukça zor olabilir ayarı, sisteminize bağlı.
Yapabileceğiniz diğer bir yolu Cron görevi (root ait olduğu) bazı dosyası her dakika (veya saniye) kontrol ve PHP programı tarafından düzenlenebilir bu dosyayı sahip olmaktır. Dosya sadece Apache tarafından düzenlenebilir olarak ayarlanır. Bu yapmak çok daha kolaydır.
Umarım bu yardımcı olur.
Bizim sistemimizde, Paul tarafından söylendi birini yapın.
Ben Debian / Lenny çalışan CarPC kurulumu için aynı ihtiyacı vardı. Ben bir bağlantı olduğu hizmet için limana yapıldığı zaman / sbin / reboot çalıştırmak için inetd yapılandırılmış.
Ben daha sonra bir PHP komut dosyası localhost / bağlantı noktasına bir fsockopen () yapmak ve anında yeniden gerçekleştirir vardı.
Hızlı kurulum (debian - sisteminiz için değiştirin):
In /etc/services
add a line "reboot 88/tcp"
(or whatever port you want)
In /etc/inetd.conf
add a line "reboot stream tcp nowait root /sbin/reboot"
Restart inetd using /etc/init.d/openbsd-inetd restart
Şimdi localhost bağlanmak: 88 ve sistem yeniden başlayacaktır.
Eğer güvenlik biraz sıkın localhost'tan sadece bağlantılarını kabul edecek şekilde yapılandırabilirsiniz xinetd'nin sistem çalışıyorsa. Her durumda, bu hala kesmek.
Genellikle bir bilgisayarı yeniden başlatmanız süper hakları gerekir. Ama yetkili kullanıcı olarak bir web sunucusu çalıştırmak için kötü bir uygulamadır. Bazı arası iletişim yapmak için tavsiye ederim. E. g. PHP komut dosyadaki bir gizli anahtarı yazıyor ve sonra bir cron iş dosyasını okur ve bilgisayarı yeniden başlatır.
Ve ben tüm Web üzerinden bir bilgisayarı yeniden başlatmak için iyi bir fikir olduğundan emin değilim. Neden bunu yapmak istersiniz?
Bu cevap bir linux tabanlı sunucu ile ilgilidir.
TEHLİKELİ: php kullanım sistemi () itibaren, sistemde, kapatma için "şimdi sudo shutdown-h" yeniden ve "şimdi sudo shutdown-r" kullanın.
/ Etc / sudoers olarak, apache kullanıcı için kapatma çalıştırmak için izin eklemek
Bir sorun sudo bir parola soracak olabilir.
Apache kullanıcının parolasını kaldırmak (ama sonra vb sshd.config, telnetd, ftpd, koşmak yok ..) ya da / etc / sudoers bir şifresiz konfigürasyona sahip olmadığını görmek ya. Hat 200 ve tekrar hattı 270 hakkında hakkında "adam Sudoers" Tag_Spec kullanıcı bir sudo komutu çalıştırmak için kendi şifresi ile yeniden doğrulamak zorunda olmadığını belirtmek için NOPASSWD içerebilir diyor.
SAFER: belirteci / cron php yerde bir dosyayı yazmak mı. Bu dosya varsa, dosya kaldırılır ve sonra kapatma veya yeniden başlatma çalıştırmak böylece root olarak cron tarafından işletilen bir senaryo yazın.