ใช้ php-cli เพื่อเริ่ม รีสตาร์ท และหยุด apache 2.4 และ mariadb

ปัญหา: ฉันต้องการใช้สคริปต์ php-cli เพื่อเริ่มต้น รีสตาร์ท หรือหยุด Apache 2.4 รวมถึง MariaDB 10.5 บน Windows 10 อย่างรวดเร็ว หลายปีก่อน ฉันทำสิ่งนี้ขณะใช้งาน Debian:

#!/usr/bin/php
<?php
system('sudo /etc/init.d/apache2 start');
system('sudo /etc/init.d/mysql start'); 

จากนั้นฉันจะรันไฟล์โดยพิมพ์สิ่งที่คล้ายกับ 'php -f .server.start' โดยที่ .server.start เป็นชื่อของไฟล์ที่มีโค้ด php ข้างต้น ฉันโชคดีที่ทำให้สิ่งนี้ใช้งานได้โดยการเปิดบรรทัดคำสั่ง เปลี่ยนไดเร็กทอรีเป็น C:\Path\to\Apache24 และใช้

<?php
system('httpd -k start');

ปัญหาคือฉันยังต้องนำทางไปยังไดเร็กทอรีนั้นเพื่อให้ทำงานได้ จุดประสงค์ก็พ่ายแพ้เพราะฉันสามารถพิมพ์ httpd -k start || ได้ หยุด || เริ่มต้นใหม่. ฉันใช้เครื่องนี้ที่บ้านสำหรับกล่อง dev มีหลายครั้งที่ฉันถูกขัดจังหวะเป็นเวลานาน และฉันรู้สึกว่าฉันต้องการวิธีที่ง่ายและรวดเร็วในการปิดระบบทั้ง Apache และ MariaDB ด้วยคำสั่งหนึ่งหรือสองคำสั่งในขณะที่ฉันไม่อยู่ที่โต๊ะ

บางที PHP อาจไม่ใช่ทางออกที่ดีที่สุดใช่ไหม มันเป็นสิ่งที่ฉันรู้และสบายใจ แต่ถ้ามีวิธีอื่น เช่น การใช้แบตช์ไฟล์ ฉันยินดีที่จะยอมรับความคิดเห็น/ข้อเสนอแนะ/คำแนะนำใดๆ ฉันได้สำรวจเว็บเพื่อพยายามทำให้งานนี้สำเร็จ


person Paul S    schedule 31.05.2020    source แหล่งที่มา
comment
เมื่อพิจารณาถึงความกระชับของ https -k start แล้วทำไมต้องกังวลกับสคริปต์ตัวตัดคำในภาษาใดๆ ด้วย ไม่ว่าในกรณีใด บน Windows ฉันจะใช้สคริปต์ Powershell เพียงวางไว้ที่ไหนสักแห่งใน PATH ของคุณเพื่อให้สามารถเรียกใช้งานได้ทั่วโลก   -  person Phil    schedule 05.06.2020
comment
สิ่งนี้ตอบคำถามของคุณ - เรียกใช้สคริปต์ PowerShell จากทุกที่หรือไม่   -  person Phil    schedule 05.06.2020
comment
ความคิดเบื้องหลังคือฉันถูกเรียกให้ออกจากโต๊ะเป็นประจำ ฉันไม่ชอบที่ฉันปล่อยให้ Apache และ MariaDB ทำงานในขณะที่ฉันไม่ได้อยู่ที่คีย์บอร์ด ฉันไม่ต้องการเปิดหน้าต่าง cmd นำทางไปยังไดเร็กทอรี apache ของฉันแล้วรันคำสั่งเพื่อปิดเครื่อง จากนั้นต้องเข้าสู่ระบบ MariaDB และปิดเครื่องด้วยเช่นกัน ฉันเพียงต้องการเพียงคำสั่งเดียวเพื่อปิดทั้งสองคำสั่งอย่างรวดเร็วและเหมาะสม ด้วยวิธีนี้ ฉันสามารถหลีกเลี่ยงการพูดสักนาทีในขณะที่ฉันปิดสิ่งต่าง ๆ และเรียกใช้คำสั่งเดียวแล้วไปได้เลย ฉันจะตรวจสอบแนวคิด PowerShell ขอบคุณสำหรับความคิดเห็น   -  person Paul S    schedule 05.06.2020