


Bagaimanakah skrip PHP mendapat kebenaran untuk mengawal permulaan nginx dan berhenti?
Selesaikan masalah skrip php yang mengawal permulaan nginx dan hentikan kebenaran
Artikel ini membincangkan cara menggunakan skrip PHP untuk mengawal permulaan dan menghentikan pelayan NGINX. Ramai pengguna cuba melaksanakan arahan sistem menggunakan fungsi shell_exec()
, tetapi pelaksanaan perintah gagal disebabkan oleh kebenaran yang tidak mencukupi. Sebagai contoh, shell_exec('service nginx stop')
nampaknya berjaya, tetapi perkhidmatan nginx sebenarnya tidak berhenti.
Penyebab utama masalahnya ialah skrip PHP biasanya dijalankan sebagai pengguna bukan akar (seperti WWW-Data), dan arahan service
memerlukan kebenaran akar untuk mengendalikan sistem. Walaupun arahan itu kembali "dilakukan", ini tidak bermakna bahawa perkhidmatan itu telah berjaya dihentikan.
Penyelesaian: Kebenaran Grant Sudo
Untuk menyelesaikan masalah ini, adalah perlu untuk memberi kebenaran pelari PHP (seperti WWW-Data) untuk melaksanakan arahan sudo
tanpa kata laluan. Ini memerlukan pengeditan yang berhati -hati terhadap fail /etc/sudoers
. Adalah sangat disyorkan untuk menggunakan perintah visudo
untuk mengedit fail untuk mengelakkan rasuah fail:
sudo visudo
Tambahkan baris berikut pada akhir fail /etc/sudoers
:
<code># 允许www-data用户无需密码执行所有sudo命令www-data ALL=(ALL) NOPASSWD: ALL</code>
Nota: ALL=(ALL) NOPASSWD: ALL
memberikan pengguna WWW-Data yang sangat tinggi. Sila laraskan skop kebenaran mengikut keperluan sebenar. Hanya arahan yang diperlukan untuk dilaksanakan, seperti www-data ALL=(ALL) NOPASSWD: /usr/sbin/service nginx *
Hanya operasi perkhidmatan nginx dibenarkan.
Selepas pengubahsuaian selesai, arahan dalam kod PHP harus ditukar kepada:
$ command = 'Sudo Service Nginx Stop'; $ output = shell_exec ($ command); echo $ output; // hasil pelaksanaan arahan output
Langkah tambahan dalam persekitaran Docker:
Di dalam bekas Docker, anda perlu memasang sudo terlebih dahulu:
apt-get kemas kini & & apt-get install -y sudo
Kemudian, ikuti langkah -langkah di atas untuk mengubah suai fail /etc/sudoers
. Pastikan sudo dikonfigurasi dengan betul dalam bekas dan pengubahsuaian fail /etc/sudoers
berkuatkuasa.
Melalui langkah -langkah di atas, skrip PHP boleh mendapatkan keizinan yang mencukupi untuk mengawal permulaan dan menghentikan perkhidmatan Nginx. Ingat, mengubah fail /etc/sudoers
memerlukan operasi yang teliti, kerana konfigurasi yang salah boleh menyebabkan ketidakstabilan sistem. Adalah disyorkan untuk membuat sandaran fail sebelum pengubahsuaian dan periksa dengan teliti ketepatan konfigurasi selepas pengubahsuaian.
Atas ialah kandungan terperinci Bagaimanakah skrip PHP mendapat kebenaran untuk mengawal permulaan nginx dan berhenti?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas











Teknologi kontena seperti Docker meningkatkan daripada menggantikan kemerdekaan platform Java. 1) Memastikan konsistensi di seluruh persekitaran, 2) Menguruskan kebergantungan, termasuk versi JVM tertentu, 3) memudahkan proses penempatan untuk menjadikan aplikasi Java lebih mudah disesuaikan dan boleh diurus.

Docker adalah penting pada Linux kerana Linux adalah platform asalnya yang menyediakan alat yang kaya dan sokongan masyarakat. 1. Pasang Docker: Gunakan sudoapt-getupdate dan sudoapt-getinstalldocker-cedocker-ce-clicotainerd.io. 2. Buat dan Menguruskan Bekas: Gunakan arahan Dockerrun, seperti Dockerrun-D-Namemynginx-P80: 80nginx. 3. Tulis Dockerfile: Mengoptimumkan saiz imej dan gunakan pembinaan pelbagai peringkat. 4. Pengoptimuman dan penyahpepijatan: Gunakan dockerlog dan dockerex

Ide penyelesaian masalah kegagalan sambungan SSH selepas perkhidmatan springboot telah berjalan untuk tempoh masa baru -baru ini menghadapi masalah: musim bunga ...

Analisis fenomena kebocoran memori program Java pada CPU seni bina yang berbeza. Artikel ini akan membincangkan kes di mana program Java mempamerkan tingkah laku memori yang berbeza di lengan dan cpus seni bina x86 ...

Nginx dan Apache masing -masing mempunyai kelebihan dan kekurangan mereka sendiri, dan pilihannya harus berdasarkan keperluan khusus. 1.Nginx sesuai untuk senario konvensional yang tinggi kerana seni bina yang tidak menyekatnya. 2. Apache sesuai untuk senario rendah-concurrency yang memerlukan konfigurasi kompleks, kerana reka bentuk modularnya.

Pilih platform perdagangan yang boleh dipercayai seperti OKEX untuk memastikan akses ke pintu masuk rasmi.

Mengendalikan paparan DPI yang tinggi di C boleh dicapai melalui langkah -langkah berikut: 1) Memahami DPI dan skala, gunakan API Sistem Operasi untuk mendapatkan maklumat DPI dan menyesuaikan output grafik; 2) Mengendalikan keserasian silang platform, gunakan perpustakaan grafik silang platform seperti SDL atau QT; 3) Melaksanakan pengoptimuman prestasi, meningkatkan prestasi melalui cache, pecutan perkakasan, dan pelarasan dinamik tahap butiran; 4) Selesaikan masalah biasa, seperti teks kabur dan elemen antara muka terlalu kecil, dan selesaikan dengan betul menggunakan skala DPI.

DMA di C merujuk kepada DirectMemoryAccess, teknologi akses memori langsung, yang membolehkan peranti perkakasan secara langsung menghantar data ke memori tanpa campur tangan CPU. 1) Operasi DMA sangat bergantung kepada peranti perkakasan dan pemacu, dan kaedah pelaksanaan berbeza dari sistem ke sistem. 2) Akses langsung ke memori boleh membawa risiko keselamatan, dan ketepatan dan keselamatan kod mesti dipastikan. 3) DMA boleh meningkatkan prestasi, tetapi penggunaan yang tidak wajar boleh menyebabkan kemerosotan prestasi sistem. Melalui amalan dan pembelajaran, kita dapat menguasai kemahiran menggunakan DMA dan memaksimumkan keberkesanannya dalam senario seperti penghantaran data berkelajuan tinggi dan pemprosesan isyarat masa nyata.
