Rumah pembangunan bahagian belakang tutorial php Bagaimanakah skrip PHP mendapat kebenaran untuk mengawal permulaan nginx dan berhenti?

Bagaimanakah skrip PHP mendapat kebenaran untuk mengawal permulaan nginx dan berhenti?

Apr 01, 2025 am 09:24 AM
docker nginx sistem pengendalian skrip php

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.

Bagaimanakah skrip PHP mendapatkan kebenaran untuk mengawal permulaan nginx dan 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
Salin selepas log masuk

Tambahkan baris berikut pada akhir fail /etc/sudoers :

 <code># 允许www-data用户无需密码执行所有sudo命令www-data ALL=(ALL) NOPASSWD: ALL</code>
Salin selepas log masuk

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
Salin selepas log masuk

Langkah tambahan dalam persekitaran Docker:

Di dalam bekas Docker, anda perlu memasang sudo terlebih dahulu:

 apt-get kemas kini & & apt-get install -y sudo
Salin selepas log masuk

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

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

Artikel Panas

<🎜>: Bubble Gum Simulator Infinity - Cara Mendapatkan dan Menggunakan Kekunci Diraja
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Sistem Fusion, dijelaskan
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Cara Membuka Kunci Cangkuk Bergelut
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Tutorial Java
1666
14
Tutorial PHP
1273
29
Tutorial C#
1253
24
Bagaimanakah teknologi kontena (seperti Docker) mempengaruhi kepentingan kemerdekaan platform Java? Bagaimanakah teknologi kontena (seperti Docker) mempengaruhi kepentingan kemerdekaan platform Java? Apr 22, 2025 pm 06:49 PM

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 on Linux: Containerization untuk Sistem Linux Docker on Linux: Containerization untuk Sistem Linux Apr 22, 2025 am 12:03 AM

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

Selepas perkhidmatan Boot Spring berjalan untuk tempoh masa, bagaimana untuk menyelesaikan masalah? Selepas perkhidmatan Boot Spring berjalan untuk tempoh masa, bagaimana untuk menyelesaikan masalah? Apr 19, 2025 pm 07:45 PM

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

Apakah perbezaan antara kebocoran memori dalam program Java pada CPU ARM dan X86 Architecture? Apakah perbezaan antara kebocoran memori dalam program Java pada CPU ARM dan X86 Architecture? Apr 19, 2025 pm 11:18 PM

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: Memahami perbezaan utama Nginx dan Apache: Memahami perbezaan utama Apr 26, 2025 am 12:01 AM

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.

OUYI Laman Web Pintu Masuk OUYI Pintu Terkini Rasmi 2025 OUYI Laman Web Pintu Masuk OUYI Pintu Terkini Rasmi 2025 Apr 28, 2025 pm 07:48 PM

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

Bagaimana untuk mengendalikan paparan DPI yang tinggi di C? Bagaimana untuk mengendalikan paparan DPI yang tinggi di C? Apr 28, 2025 pm 09:57 PM

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.

Bagaimana untuk memahami operasi DMA di C? Bagaimana untuk memahami operasi DMA di C? Apr 28, 2025 pm 10:09 PM

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.

See all articles