วิธีอัตโนมัติ: สคริปต์เดียวจากบัญชีผู้ใช้จะเตรียมเซิร์ฟเวอร์ทั้งหมดให้พร้อม (เว็บสแตก Apache + PHP, ฐานข้อมูล, เครื่องมือความปลอดภัย, cron) จากนั้น — ติดตั้งแดชบอร์ด, ออก SSL และกรอกใบอนุญาต ใช้งานได้บน Ubuntu/Debian: บน VPS ใหม่จะตั้งค่าทุกอย่างตั้งแต่ต้น, บนเซิร์ฟเวอร์ที่ตั้งค่าไว้แล้ว — เพิ่มเติมเท่านั้น (โปรไฟล์ “เซิร์ฟเวอร์ที่ตั้งค่าแล้ว”, ขั้นตอน 01) คำสั่งทั้งหมดด้านล่างเรียงตามลำดับ เพียงเลื่อนจากบนลงล่าง
monitor.example.com — โดเมนของคุณ; 203.0.113.10 — IP จริงของเซิร์ฟเวอร์; /var/www/monitor — รากของแดชบอร์ด (ที่เก็บ public/, assets/, config.php); รหัสผ่านฐานข้อมูลให้ตั้งเอง
jail.local), root-crontab, กฎ UFW, คอนฟิก Apache หากเซิร์ฟเวอร์ ตั้งค่าไว้แล้ว (แดชบอร์ดที่ใช้งานอยู่, เว็บไซต์, อีเมล, jail ของคุณเอง) — ให้เลือกโปรไฟล์ “เซิร์ฟเวอร์ที่ตั้งค่าแล้ว”: มันจะเปลี่ยนแปลงแบบเพิ่มเติมเท่านั้นและไม่แตะไฟร์วอลล์, Fail2ban, อีเมล, SSH และ sysctl ของคุณ เมื่อพบแผงควบคุมโฮสติ้ง สคริปต์จะสลับไปโหมดนี้เอง ก่อนรันครั้งแรกสามารถเปิด การรันแบบทดลอง (ติ๊กในบัญชีผู้ใช้) — มันจะแสดงสิ่งที่จะทำโดยไม่เปลี่ยนแปลงอะไร บนเซิร์ฟเวอร์ที่ใช้งานอยู่ควรทำสแนปช็อต (snapshot) ไว้เผื่อไว้
my.arciveo.com → หัวข้อ “ตั้งค่าเซิร์ฟเวอร์” (ใช้งานได้หลังสมัคร Arcivéo Monitor) คำสั่งนี้ผูกกับบัญชีของคุณและมีโทเคนส่วนตัว
สคริปต์จะเตรียมเซิร์ฟเวอร์ทั้งหมด: เว็บสแตก (Apache + PHP), ฐานข้อมูล, เครื่องมือสำหรับ SSL, ชุดเครื่องมือป้องกันครบชุด และงาน cron (Lynis, SMART, debsums, Logwatch, รายงานประจำวัน, อัปเดต ipsum)
1) เลือกระดับการป้องกัน (ในบัญชีผู้ใช้ ก่อนคัดลอกคำสั่ง):
2) รันบนเซิร์ฟเวอร์ในสิทธิ์ root ด้วยคำสั่งจากบัญชีผู้ใช้ — มีลักษณะดังนี้:
เพื่อเปิดแดชบอร์ดที่แอดเดรสอย่าง monitor.example.com และรับ SSL ฟรี โดเมนต้องชี้มาที่เซิร์ฟเวอร์ ในแดชบอร์ดจัดการ DNS (ที่ผู้รับจดทะเบียนหรือผู้ให้บริการโฮสต์) ให้สร้าง A-record:
หลังจากผ่านไปไม่กี่นาที (บางครั้งอาจถึงหนึ่งชั่วโมง) ให้ตรวจสอบว่าโดเมนชี้มาที่เซิร์ฟเวอร์แล้ว:
/var/www/monitor และตั้งค่าเว็บไซต์ Apache ไว้แล้ว (DocumentRoot ชี้ไปที่รากของแผงควบคุม, PHP-FPM, AllowOverride สำหรับ .htaccess) ไม่ต้องสร้างไดเรกทอรีและ vhost แยกต่างหาก — เพียงอัปโหลดไฟล์และตั้งสิทธิ์
my.arciveo.com → “ดาวน์โหลด” แตกไฟล์บีบอัดก่อนอัปโหลดขึ้นเซิร์ฟเวอร์
อัปโหลดเนื้อหาของชุดติดตั้งไปที่ /var/www/monitor (เพื่อให้ภายในมี public/, assets/, config.php ฯลฯ) — ผ่าน SFTP/SCP (FileZilla / WinSCP) หรือใช้คำสั่ง scp จากคอมพิวเตอร์ของคุณ:
ServerName) ให้ส่งโดเมนเข้าไปในคำสั่งตั้งค่าอัตโนมัติตั้งแต่ขั้นตอน 01: … | sudo bash -s -- monitor.example.com (หรือระบุโดเมนในช่อง “โดเมนแผงควบคุม” ในบัญชีผู้ใช้) หากไม่ได้ส่งโดเมน — แผงควบคุมจะตอบสนองทุกโฮสต์และผ่าน IP ส่วน ServerName นั้น certbot จะกำหนดให้ตอนออก SSL (ขั้นตอน 06) ไม่ต้องติดตั้งใหม่แต่อย่างใด
root หรือผ่าน SFTP ไฟล์จะเป็นของ root และเว็บเซิร์ฟเวอร์ (www-data) จะอ่านไม่ได้ — แผงควบคุมจะเปิดขึ้นมาว่างเปล่าหรือแสดงข้อผิดพลาด 403 (ในบันทึก: .htaccess unreadable / directory not executable) คำสั่งด้านล่างแก้ปัญหานี้ได้:
เปิดสิทธิ์อัปโหลดไฟล์ผ่าน SFTP ให้ตัวเอง หลังคำสั่งด้านบน ไฟล์ทั้งหมดเป็นของ www-data ขณะที่ FileZilla / WinSCP เชื่อมต่อด้วยผู้ใช้ของคุณเอง การอัปโหลดจึงล้มเหลวด้วย SSH_FX_PERMISSION_DENIED (Permission denied) เลือกหนึ่งในสองทางเลือกต่อไปนี้
ทางเลือก A — ACL เฉพาะผู้ใช้ของคุณ (แนะนำ) สิทธิ์เขียนมีเฉพาะคุณคนเดียว เว็บเซิร์ฟเวอร์ยังคงเขียนทับโค้ดของแผงควบคุมไม่ได้:
ทางเลือก B — ผ่านกลุ่ม www-data ง่ายกว่า แต่เว็บเซิร์ฟเวอร์ก็ได้สิทธิ์เขียนไฟล์ของแผงควบคุมด้วย หากมีช่องโหว่ใน PHP โค้ดอาจถูกสับเปลี่ยนได้ ลำดับคำสั่งมีความสำคัญ — config.php และโฟลเดอร์ทำงานจะถูกปิดเป็นลำดับสุดท้าย:
id deploy — ในรายการกลุ่มต้องปรากฏ www-data; ls -ld /var/www/monitor — สิทธิ์ drwxrwsr-x โดยตัวอักษร s แทน x หมายความว่าตั้ง setgid แล้ว
สร้างฐานข้อมูลและผู้ใช้ จากนั้นนำเข้าสคีมา บล็อกที่มีฐานข้อมูลต้องวางลงในเทอร์มินัลทั้งหมด (sudo mysql เข้าเป็น root ผ่าน unix-socket ไม่ต้องใช้รหัสผ่าน root) monitor_db และ monitor_user เป็นชื่อตัวอย่าง จะตั้งชื่อของคุณเองก็ได้ จำชื่อฐานข้อมูล ผู้ใช้ และรหัสผ่านไว้ เพราะต้องกรอกลงใน config.php ในขั้นถัดไป:
admin ให้เองเมื่อเปิดในเบราว์เซอร์ครั้งแรก (จาก database/db.sql) หากฐานข้อมูลว่างเปล่า
www-data) เท่านั้น
config.php ที่รากของแดชบอร์ด (/var/www/monitor/config.php) — เป็นไฟล์เดียวที่ต้องแก้ไขด้วยมือ การตั้งค่าทั้งหมดของแดชบอร์ดถูกกำหนดไว้ในไฟล์นี้ด้วยค่าคงที่ define() เปิดไฟล์นี้ในโปรแกรมแก้ไข:
ใส่ค่าของคุณลงในตำแหน่งที่ไฮไลต์ไว้; ส่วนที่เหลือปล่อยไว้ตามเดิม:
สิ่งที่ต้องเปลี่ยน:
DB_NAME, DB_USER, DB_PASS — ชื่อฐานข้อมูล ผู้ใช้ และรหัสผ่านที่ตรงกันกับที่คุณตั้งไว้ตอนสร้างฐานข้อมูลในขั้นตอน 04 (หากปล่อยเป็นตัวอย่างไว้ — monitor_db / monitor_user) อย่าแก้ DB_HOST และ DB_CHARSETAPP_URL — ที่อยู่แดชบอร์ดแบบเต็มพร้อม https:// ไม่มีสแลชปิดท้ายและไม่มี www ต้องตรงกับโดเมนที่คุณเปิดใช้งานลิขสิทธิ์ (ขั้นตอน 07) มิฉะนั้นคีย์จะถูกปฏิเสธTIMEZONE — เขตเวลาของคุณ (ดูรายการ — timedatectl list-timezones) มีผลเฉพาะกับการแสดงวันที่ของแดชบอร์ดเท่านั้น ไม่มีผลต่อเวลาที่งาน cron ทำงาน (ตรงนั้นใช้เขตเวลาของระบบ)SESSION_LIFETIME — จำนวนวินาทีที่ไม่มีการใช้งานก่อนที่แดชบอร์ดจะขอให้เข้าสู่ระบบใหม่ (ค่าเริ่มต้น 8 ชั่วโมง) เช่น 3600 = 1 ชั่วโมง, 86400 = หนึ่งวันdisplay_errors, log_errors, error_log) — ปล่อยไว้ตามค่าเริ่มต้นบันทึกไฟล์ (Ctrl+O, Enter แล้ว Ctrl+X) และรีสตาร์ท PHP-FPM — มิฉะนั้นการเปลี่ยนแปลงจะไม่มีผลเพราะ OPcache:
640 (ตั้งไว้ในขั้นตอน 03) และการห้ามอย่างชัดเจนใน .htaccess ที่ราก อย่านำไปวางในรีโพซิทอรีสาธารณะและอย่าส่งให้ฝ่ายสนับสนุนพร้อมรหัสผ่านจริง
http:// ได้
certbot และปลั๊กอินสำหรับ Apache ถูกติดตั้งไว้แล้วโดยการตั้งค่าอัตโนมัติ DNS ของโดเมนควรชี้มาที่เซิร์ฟเวอร์แล้ว (ขั้นตอน 02) ออกใบรับรองในคำสั่งเดียว:
Y<VirtualHost *:443> ตั้งค่าการเปลี่ยนเส้นทาง http→https และการต่ออายุอัตโนมัติ ท้ายสุดจะขึ้น Successfully enabled HTTPS
dig +short monitor.example.com คืนค่า IP ของเซิร์ฟเวอร์ และเปิดพอร์ต 80/443 แล้ว (sudo ufw allow 80,443/tcp)
หลังออกใบรับรอง: https://monitor.example.com เปิดได้พร้อมไอคอนแม่กุญแจ, http:// จะเปลี่ยนเส้นทางไปยัง https://
เปิด https://monitor.example.com เข้าสู่ระบบด้วย admin / useradmin แล้วทำตามเช็กลิสต์:
ARCIVEO-… จากบัญชีผู้ใช้ไปเปิดใช้กับโดเมนของคุณ แล้ววางคีย์ใน “การตั้งค่า” → “ลิขสิทธิ์” รายละเอียดpublic/start_db.php หากยังเหลืออยู่: มันให้สร้างฐานข้อมูลใหม่ได้โดยไม่ต้องล็อกอิน ตราบใดที่ไฟล์ยังอยู่ในรูทของแดชบอร์ดหรือใน public/ แดชบอร์ดจะเตือนด้วยแบนเนอร์สีแดง