Lewati ke konten utama
AllsWeb
Pemeriksaan kesiapan server untuk 6amMart

Periksa servernya sebelum tokonya buka

SixPreflight adalah pemeriksa kesiapan server untuk 6amMart. Unggah satu folder, buka di browser, dan hingga 163 pemeriksaan berakhir dalam satu kalimat: siap dibuka, atau belum siap — dan persisnya apa yang harus diperbaiki lebih dulu.

Dapatkan SixPreflightBicara dengan insinyurBaca dokumentasi

Selalu rilis terkini, dan berjalan di server Anda sendiri. Ia membaca: ia tidak pernah membaca atau menulis tabel aplikasi, dan tidak pernah mengirim email atau SMS ke siapa pun. Tiga permukaan bisa bertindak di luar folder alat ini sendiri, dan yang keempat menulis di dalamnya — masing-masing hanya saat Anda menekan tombolnya. Lihat “Apa yang akan diubahnya, kalau Anda memintanya”.

163

pemeriksaan berbeda di dalam kodenya

10

langkah, yang termurah dan paling mungkin rusak lebih dulu

1

kalimat di akhirnya

A–F

nilai, dengan setiap penghambat disebutkan

Membaca halaman ini dengan asisten AI?

Lihat sebagai Markdown

Mendapatkan SixPreflight

SixPreflight adalah folder PHP yang Anda unggah. Tidak ada yang perlu dipasang lebih dulu, dan tidak ada yang perlu didaftarkan. Ini gratis.

Coba dulu sebelum mengunduh

Toko 6amMart langsungSixPreflight di demo

Kata sandi demo

Password: a3uap648vnh7yqenc9vb

No username — SixPreflight asks for the password only.

The shop runs a real dataset — tens of thousands of orders — so the screens behave the way they will on yours, not the way a demo with forty products does. Two things are switched off on the demo: maps and SMS one-time passwords. Both use keys locked to a single server, which is how they should be held, so they cannot answer from a demo host. They work normally on your own install.

Dapatkan SixPreflight

Free
  • Pembaruan termasuk — setiap rilis masuk ke CodeCanyon tanpa biaya tambahan. Tanpa server lisensi, tanpa kunci yang perlu diperpanjang.
  • Penyiapan pertama gratis — kirim kode pembelian dan detail server Anda lewat WhatsApp atau email.
Dapatkan di CodeCanyon
Baca manualnya

Tidak ada yang perlu diaktifkan — berjalan di server Anda sendiri, tidak menghubungi siapa pun, dan tetap bekerja meski situs ini sedang mati.

Apa yang dilakukannya

Untuk pemilik toko, bukan untuk insinyur

Anda sudah membeli 6amMart, sudah menyewa server, dan seseorang sudah memasangnya. Situsnya terbuka. Itu tidak sama dengan siap. Sebuah toko bisa terlihat normal sepenuhnya di browser padahal gateway pembayarannya tidak punya kredensial yang berfungsi, notifikasi push-nya tidak sampai ke mana-mana, file .env-nya bisa dibaca siapa saja di internet, tugas terjadwalnya belum pernah berjalan sekali pun, dan databasenya dikonfigurasi memakai sebagian kecil saja dari memori yang Anda bayar. Tidak satu pun dari itu terlihat sampai pelanggan sungguhan memesan sungguhan dan sesuatu diam-diam berjalan keliru.

SixPreflight adalah pemeriksaan yang Anda jalankan sebelum hal itu terjadi. Anda mengunggah satu folder ke situs Anda, membukanya di browser, menyetel sandi, lalu menekan tombol. Ia melihat server itu seperti yang dilakukan insinyur yang teliti — perangkat kerasnya, PHP, pengaturan database, web server, izin file, apa yang bisa dijangkau internet, dan apakah pembayaran, email, SMS, peta, dan notifikasi push benar-benar berfungsi saat dipanggil sungguhan.

Lalu ia memberi Anda satu kalimat — “Siap dibuka” atau “Belum siap menerima pesanan” — sebuah nilai huruf, dan daftar berurutan apa yang harus diperbaiki, tiap item dengan baris persis yang harus diubah, file tempatnya berada, dan apa akibatnya bagi toko Anda kalau dibiarkan.

Siap dibukaBelum siap menerima pesanan

Pemindaiannya sendiri hanya membaca. Di tempat alat ini bisa bertindak, ia bertindak saat Anda menekan tombol, tidak pernah atas kemauannya sendiri.

Dengan ini versus tanpa ini

Apa yang Anda ketahui sebelum buka

Server yang sama di kedua sisi. Bedanya adalah siapa yang menemukan masalahnya: Anda, atau pelanggan yang membayar.

  • Hari Anda buka

    Tanpa SixPreflight

    Situsnya terbuka di browser, jadi Anda pun buka. Sebuah toko bisa terlihat sangat normal padahal gateway pembayarannya tidak punya kredensial yang bekerja, notifikasi push-nya tidak sampai ke mana pun, file .env-nya bisa dibaca siapa saja di internet, tugas terjadwalnya belum pernah berjalan sekali pun, dan basis datanya disetel memakai sebagian kecil dari memori yang Anda bayar.

    Dengan SixPreflight

    Hingga 163 pemeriksaan berakhir dalam satu kalimat — siap dibuka, atau belum siap menerima pesanan — dengan nilai huruf dan daftar terurut tentang apa yang harus diperbaiki lebih dulu.

  • Bagaimana Anda tahu ada yang salah

    Tanpa SixPreflight

    Seorang pelanggan nyata membuat pesanan nyata dan ada yang diam-diam gagal. Itulah sinyal pertama Anda, dan harganya adalah pesanan itu sekaligus pelanggannya.

    Dengan SixPreflight

    Anda tahu sebelum buka, dari pemindaian yang Anda jalankan sendiri — setiap butir menyebut baris tepat yang harus diubah, file tempatnya berada, dan apa ruginya bagi toko Anda kalau dibiarkan.

  • Kredensial yang ada tetapi salah

    Tanpa SixPreflight

    Bentuknya persis seperti yang bekerja. Berkas konfigurasi yang berisi sebuah nilai memberi tahu Anda bahwa nilainya ada, bukan bahwa nilainya benar.

    Dengan SixPreflight

    Panggilan nyata yang memutuskan: token Firebase sungguhan yang dibuat lalu dikirim ke endpoint Google, percakapan SMTP sungguhan dengan EHLO / STARTTLS / AUTH, dan panggilan geocoding langsung ke Google Maps. Ada-tetapi-salah gagal di sini — satu-satunya tempat hal itu bisa tertangkap sebelum ditemukan pelanggan.

  • Apa yang sudah bisa dijangkau internet

    Tanpa SixPreflight

    Anda mengira berkas yang seharusnya tidak publik memang tidak publik. Tidak ada di server yang memberi tahu sebaliknya, karena tidak ada yang membuat permintaan itu.

    Dengan SixPreflight

    Ia mengambil daftar tetap alamat yang diketahui berisiko dari situs live Anda sendiri — /.env, /.git/config, /artisan, database.sql milik installer, dan berkas milik alat ini sendiri — lalu melaporkan apa yang benar-benar kembali.

  • Berapa biayanya

    Tanpa SixPreflight

    Mengetahuinya dari pelanggan adalah versi yang mahal.

    Dengan SixPreflight

    Tidak ada. SixPreflight gratis di CodeCanyon dan penyiapan pertama gratis. Tidak ada bagian dari paketnya yang memeriksa lisensi, akun, atau tanggal kedaluwarsa, dan tidak ada yang melaporkan apa pun kembali ke AllsWeb.

Jalankan di server nyata

Apa yang diskor ketika kami menunjukkannya ke mesin kami sendiri

Checker yang tidak pernah menerbitkan hasil adalah pernyataan. Ini berasal dari putaran pengukuran yang sama yang hasil SixPanel datang darinya.

SixPanel

97 · A

Baris memerlukan perhatian: Tidak ada

SixPanel Docker

96 · A

Baris memerlukan perhatian: Tidak ada

Baca skor berapa dengan benar

Skor berapa di 88 sementara baris tunggal dalam merah, berapa pun bagus sisanya. Itu deliberate — jika ada satu hal yang merah, satu skor tidak bisa sempurna.

Cacat putaran ini menemukan di alat itu sendiri

Runner scan SixPreflight sendiri tidak memiliki error handling sama sekali. Di server di mana perusahaan hosting tidak memvalidasi input apa pun untuk beberapa endpoint, salah satu scan mencoba melakukan SQL injections dan crash runner. Sebelum diluncurkan, error handling ditambahkan dan scan yang crash dijalankan di sandbox.

Dan satu yang itu dapatkan salah di server yang diperkeras

Di server di mana PHP dibatasi oleh sandbox kernel, SixPreflight tidak bisa membaca konfigurasi server web karena PHP tidak bisa membaca itu. Scan mengatakan "tidak dapat ditentukan" untuk beberapa check — itu diterbitkan dalam catatan score itu sendiri.

Cara kerjanya

Bertahap, bukan satu penantian panjang

Halamannya sendiri tidak menjalankan pemeriksaan. Ia menggambar kerangka kosong, lalu browser meminta server satu langkah pada satu waktu.

  • Tampilan pertama muncul seketika

    Diukur pada instalasi uji: 6.8 KB dalam 2 ms, dibandingkan 36 KB dan sekitar 1.6 s saat halaman mengerjakan semuanya sebelum dirender. Pada server yang menurut definisinya mungkin salah konfigurasi, menunggu pemeriksaan paling lambat sebelum menampilkan apa pun adalah pilihan yang keliru.

  • Bilah kemajuannya nyata

    Langkah selesai dibagi total langkah, bukan animasi. Saat berhenti, ada yang benar-benar macet, dan labelnya menyebutkan pemeriksaan mana.

  • Pemeriksaan yang macet tidak bisa menjatuhkan halaman

    Setiap langkah adalah permintaan pendeknya sendiri, jadi tidak ada yang menabrak max_execution_time. Langkah yang melempar error dilaporkan sebagai temuan dan pemindaian berlanjut. Setiap langkah yang selesai ditulis ke disk saat itu juga, jadi pemindaian yang terputus tetap bisa dibaca.

Dua tombol

  • Check now

    Membaca konfigurasi lokal dan mencari alamat IP publik server — sekitar satu detik.

  • Deeper check

    Menambahkan dua langkah yang benar-benar memanggil ke luar: uji paparan publik terhadap URL Anda sendiri, dan uji integrasi langsung.

Detail jujur: “Check now” tidak sepenuhnya offline. Baris IP publik bertanya ke layanan echo di luar — ifconfig.me, lalu api.ipify.org, lalu icanhazip.com, dicoba berurutan dan disimpan di cache antar pemindaian, sengaja tiga penyedia supaya satu menit buruk tidak menimpa jawaban yang sudah diketahui benar.

Tiga cara ia berjalan

SixPreflight mengenali apa yang sedang dilihatnya lalu mengubah apa yang dikatakannya, karena nasihat yang jujur berbeda pada tiap kasus.

  • Di server biasa — belum ada aplikasi terpasang

    Ini mode untuk memilih server atau menyiapkan server baru. Perangkat keras, PHP, server database, web server, izin, dan paparan publik semuanya tetap diperiksa. Langkah .env tidak mengembalikan apa pun, langkah aplikasi hanya mengembalikan baris profil, dan langkah database melaporkan “tidak diperiksa — tidak ada aplikasi di sini yang menyimpan kredensial” sebagai lolos alih-alih membiarkan koneksi yang tidak ada menjadi baris terburuk di mesin yang memang benar-benar kosong.

    Anda tetap bisa mengaudit database mesin kosong dengan mengarahkan env_path ke file .env tiruan yang membawa kredensialnya.

  • Di dalam toko Anda — pada codebase admin 6amMart

    Unggah foldernya ke public/, direktori yang benar-benar disajikan web server Anda. Root aplikasi dicari dengan menelusuri ke atas dari folder alat ini, paling banyak lima tingkat, sampai direktori mana pun yang memuat artisan — jadi public/preflight/ maupun folder di root aplikasi sama-sama berfungsi, dan unggahan yang terkubur lebih dari lima tingkat diam-diam mendapat mode mandiri. Rumah yang benar adalah public/ — folder di root aplikasi hanya bisa dijangkau lewat URL kalau document root-nya salah, yang justru merupakan hal paling serius yang dicari alat ini.

    Di sini setiap pemeriksaan berjalan, termasuk yang ditulis khusus dari codebase 6amMart: penjadwal yang membayar toko dan kurir, modul yang ditandai aktif tetapi hilang, ekstensi PHP persis yang dibutuhkan paket vendornya, dan lapisan websocket di balik pelacakan pengiriman langsung. Pada aplikasi Laravel lain, semua hal tentang server tetap berlaku persis seperti tertulis, dan pemeriksaan khusus 6amMart dilewati alih-alih ditebak.

  • Tertanam di dalam SixPanel

    Di server SixPanel, panel-lah yang memiliki web server, PHP, konfigurasi database, cron, worker antrean, dan sertifikat, dan panel menulis ulang file-file itu dari templatnya sendiri pada setiap deploy — jadi nilai yang ditempel dengan tangan diam-diam hilang pada deploy berikutnya. Pada mode itu SixPreflight membuang blok tempel, blok mentah nginx dan Apache, baris restart php-fpm, dan jalur “di mana harus mengklik di panel hosting Anda”, lalu mengarah ke halaman SixPanel yang memiliki tiap pengaturan. Ia tetap menyimpan semua yang berkaitan dengan aplikasi — .env, pengaturan bisnis, kunci yang hilang atau salah, APP_URL yang salah, storage yang rusak, error di log — karena itulah bagian yang tidak bisa dibereskan panel sendiri. Ia menyebutkan sedang di mode apa, dalam satu baris di bagian atas halaman, jadi modenya tidak pernah jadi misteri.

    Modenya ditentukan oleh variabel environment yang disetel oleh blok server yang menjawab jalur tersebut (SIXPANEL_EMBED=1), atau oleh 'embedded' => true di config.php. Header permintaan sengaja tidak dijadikan sinyal utama: header ditulis oleh siapa pun yang membuat permintaan, jadi ia hanya akan bertahan di dalam frame panel dan tidak di tempat lain — buka halaman yang sama di tab baru dan alat ini akan kembali memberi nasihat mode mandiri di server yang sama. X-SixPanel-Embed: 1 hanya dihormati kalau Anda menyalakan 'trust_embed_header', yang bawaannya mati, karena tanpa pagar itu siapa pun pengunjung bisa memberi dirinya sendiri tampilan server terkelola di server yang sebenarnya jadi tanggung jawabnya untuk diperbaiki.

Apa yang diperiksanya

163 pemeriksaan berbeda, dalam sepuluh langkah

163 pemeriksaan berbeda ada di dalam kodenya, dijalankan dalam sepuluh langkah, diurutkan dari yang termurah dan paling mungkin rusak lebih dulu. Dua langkah yang memanggil ke luar ditandai lambat dan hanya berjalan pada Deeper check.

Sepuluh langkah pemindaian, apa yang dilihat masing-masing, dan berapa banyak pemeriksaan berbeda yang dikandungnya.
LangkahApa yang dilihatnyaPemeriksaanContoh nyata
Sistem & perangkat kerasMesin yang Anda bayar7jumlah vCPU, RAM, swap, disk kosong, load average, rilis OS, apakah ada alat cadangan sama sekali
Runtime PHPBahasa tempat toko berjalan18rentang versi PHP, 25 ekstensi wajib, memory_limit, max_execution_time efektif, display_errors, OPcache nyala/mati, memori dan jumlah file OPcache, tingkat hit
Kesehatan aplikasiLaravel dan 6amMart itu sendiri22.env ikut terlacak di git, migrasi tertunda, job gagal, tumpukan antrean, ukuran log, jumlah error di log, apakah penjadwal pernah berjalan, daftar modul valid, trusted proxies, pengaturan instalasi ada
Environment (.env)Satu file yang dibaca semuanya14kunci ganda (yang terakhir menang, jadi suntingan Anda tidak berpengaruh), karakter \r tak terlihat, APP_KEY tidak valid atau bawaan produk, APP_DEBUG=true, APP_URL salah bentuk, kunci yang tidak dibaca apa pun, kunci yang menjadi null begitu config di-cache
Identitas host & izinSiapa pemilik file-nya9IPv4 dan IPv6 publik, pengguna PHP, kepemilikan file, enam direktori yang harus bisa ditulis, file yang bisa ditulis siapa saja, .env yang bisa dibaca siapa saja, apa pun yang bisa ditulis dan dieksekusi di dalam public/
Web servernginx atau Apache di depan17jenis handler, gzip, server tokens, FastCGI read timeout, modul dan MPM Apache, jumlah worker php-fpm terhadap memori, rantai ukuran unggahan, kompresi langsung, caching statis, HSTS, masa berlaku sertifikat
Cache, antrean & realtimePekerjaan latar belakang11koneksi antrean, apakah worker antrean benar-benar berjalan dan diawasi, driver sesi dan cache, Redis, Memcached, kredensial dan skema Reverb, kredensial Pusher
Konfigurasi databaseTempat uangnya berada32ukuran InnoDB buffer pool terhadap data nyata dan RAM Anda, redo log, metode flush, max_connections terhadap worker php-fpm, skip_name_resolve, sql_mode, charset, selisih jam PHP dan database, tingkat hit buffer pool, tabel sementara di disk, hak akses pengguna database
Paparan publiklambatApa yang bisa diambil orang asing12HTTPS, .env bisa dibaca lewat web, .git/config bisa dibaca, laravel.log disajikan, file .php yang diunggah benar-benar dieksekusi, Debugbar atau Telescope menjawab, dump database installer tertinggal, file milik alat ini sendiri disajikan sebagai teks
Pembayaran, email & SMSlambatLayanan yang harus berfungsi21percakapan SMTP sungguhan, pembuatan token Firebase sungguhan, panggilan geocode Google Maps sungguhan, metode pembayaran bisa dipakai, kredensial gateway SMS, disk storage bisa ditulis, mode pemeliharaan, reCAPTCHA, zona waktu, mata uang

Kolomnya berjumlah 163. Dua baris membawa syarat tambahan.

  • Satu dari 32 pemeriksaan database — db_standalone — hanya ada untuk kasus ketika tidak ada aplikasi yang menyimpan kredensial. Ia menggantikan 31 lainnya, bukan bergabung dengan mereka.
  • Dua dari 21 pemeriksaan pembayaran/email/SMS adalah dasar awalan (sms_, social_) yang mengembang saat berjalan menjadi satu baris per gateway aktif atau per login sosial yang dikonfigurasi. Jadi langkah itu bisa menghasilkan lebih dari 21 baris di toko yang sibuk, atau lebih sedikit di toko yang kosong.

Tidak ada satu pun pengujian yang menjalankan seluruh 163 — dan inilah alasan persisnya

  1. 01

    Toko yang sudah terpasang paling banyak menghasilkan 162 baris berbeda — dan tidak ada satu pengujian pun yang mengeluarkan seluruh 162

    db_standalone hanya dikeluarkan saat tidak ada aplikasi, jadi toko yang sudah terpasang tidak akan pernah melihatnya; itulah yang ke-163. Angka 162 adalah batas atas, bukan hasil satu pengujian.

  2. 02

    Deeper check pada toko yang sudah terpasang mengeluarkan 160

    Kalau langkah mendalam akan menyusul, kelas web server menekan dua kembaran pembacaan config miliknya — gzip dan server_tokens nginx, atau keepalive dan server_tokens Apache — karena pengukuran langsung menjawab pertanyaan yang sama dari respons nyata, dan keduanya bisa berbeda pendapat (gzip menyala; dengan daftar gzip_types yang melewatkan application/json, hasilnya lolos menurut config dan peringatan menurut pengukuran, soal satu pengaturan yang sama). Kembaran itu berada di dalam 162; merekalah alasan Deeper check mendarat di 160 dan bukan 162, bukan tambahan sepasang di atasnya.

  3. 03

    “Check now” mengeluarkan 123 — ia melewatkan 39

    39 itu adalah 12 pemeriksaan paparan publik, 21 pemeriksaan pembayaran/email/SMS, dan enam baris web server yang hanya bisa dibaca dari respons langsung — compression, static_cache, keepalive_live, server_banner, hsts, dan cert_expiry. Dua kembaran pembacaan config hadir pada pengujian ini, karena pengukuran langsung yang akan menggantikannya tidak akan datang.

  4. 04

    Kedua angka itu menghitung kunci berbeda, dan server nyata mendarat lebih rendah lagi — pakai batas bawahnya

    Tiga dari 17 kunci web server milik web server yang tidak Anda jalankan (nginx menyumbang client_max_body_size, gzip, dan fastcgi_read_timeout; Apache menyumbang apache_modules, apache_mpm, dan keepalive), dan langkah database membawa pasangan yang bergantung mesin database — MySQL 8.0.30+ melaporkan innodb_redo_log_capacity, selain itu melaporkan innodb_log_file_size, tidak pernah keduanya. Menghitung pembagian web server saja, Deeper check pada instalasi nginx atau Apache mengeluarkan tidak lebih dari 157, dan “Check now” tidak lebih dari 120; tiap baris database yang bergantung mesin menurunkannya lagi.

  5. 05

    Di server biasa, 40 baris tidak punya apa pun untuk dibaca

    14 pemeriksaan .env, 12 pemeriksaan aplikasi Laravel, 9 pemeriksaan platform 6amMart, dan 5 pemeriksaan realtime sama sekali tidak punya apa pun untuk dibaca — 40 baris, menyisakan hanya baris profil dari langkah aplikasi.

Jadi bentuk jujurnya adalah “hingga 163” — dengan Deeper check pada instalasi 6amMart menjalankan seluruh rangkaian yang tersedia baginya, yaitu 160 kunci berbeda dan tidak lebih dari 157 baris di mesin nyata dengan satu web server.

Kedua langkah lambat itu bukan tebakan

  • Langkah paparan mengambil alamat nyata dari situs nyata Anda

    Ia mengambil daftar tetap alamat yang diketahui berisiko dari situs live Anda sendiri — /.env, /.git/config, /storage/logs/laravel.log, /artisan, /composer.json, /vendor/autoload.php, database.sql dan public.zip milik installer, /telescope, /_debugbar/open, rute pendaftaran toko, dan file milik alat ini sendiri — lalu melaporkan apa yang benar-benar kembali.

  • Langkah layanan membuat panggilan sungguhan

    Ia membuat JWT sungguhan dan mengirimkannya ke endpoint token Google untuk membuktikan akun layanan Firebase Anda berfungsi, membuka percakapan SMTP sungguhan dengan EHLO / STARTTLS / AUTH, dan melakukan panggilan geocoding langsung ke Google Maps. Kredensial yang ada tetapi salah akan gagal di sini, dan hanya di sinilah hal itu bisa ditangkap sebelum ditemukan pelanggan.

Probe SMTP berhenti di autentikasi. Ia mengirim EHLO, menegosiasikan STARTTLS, melakukan autentikasi, lalu QUIT — tidak ada MAIL FROM, tidak ada RCPT TO, dan tidak ada DATA di kelas itu, jadi tidak ada yang terkirim ke siapa pun.

Dua halaman lain yang bukan bagian dari 163

Keduanya permukaan produk yang nyata dan tidak satu pun menyumbang ke skor.

  • Pelacakan pengiriman langsung — 15 pemeriksaan

    Punya halamannya sendiri, mencakup proses Reverb, pengelola proses, socket yang mendengarkan, firewall, proxy, sertifikat, kredensial, kunci aplikasi, pengaturan aplikasi, autentikasi channel, target klien, cache config, antrean, CDN, dan driver. Bagi pembeli 6amMart, inilah fitur di balik peta langsung, dan ia diperiksa terpisah alih-alih dilipat ke dalam skor server.

  • Test order alert

    Mengirim notifikasi push sungguhan ke perangkat toko atau kurir sungguhan, lewat perintah artisan milik platform itu sendiri, bukan payload rakitan tangan. Ada tombol “Show what would be sent” yang menjalankannya tanpa mengirim, tetapi tombol bawaannya benar-benar mengirim.

Cara ia menilai

Satu angka — dan ia memberi tahu apa yang tidak bisa diukurnya

Setiap pemeriksaan berakhir sebagai salah satu dari empat hal: lolos, peringatan, masalah, atau tidak terukur.

lolosperingatanmasalahtidak terukur

Angkanya adalah rata-rata berbobot, bukan hitungan. Tabel bobotnya berkisar dari 200 sampai 11, ditentukan oleh kerugian bagi Anda saat hal itu salah — APP_DEBUG=true berada di 200, baris nama OS di 12, dan app_profile serta public_ipv6 di 11. Kunci apa pun yang tidak ada di tabel itu jatuh ke nilai bawaan 10, dan satu kunci pemindaian live memang begitu: db_standalone, yang benar-benar tidak berperingkat dan muncul di laporan penyimpangan milik alat ini sendiri. Lolos memperoleh bobot penuhnya, peringatan memperoleh setengah, masalah tidak memperoleh apa pun.

Lima rentang nilai dan arti masing-masing.
SkorNilaiArtinya
90 ke atasASiap produksi
75–89BBagus. Bereskan item kuning lalu periksa ulang
55–74CBisa jalan, tetapi menyia-nyiakan performa nyata
35–54DBelum siap. Beberapa pengaturan akan menyakitkan saat ada beban
Di bawah 35FJangan go live dengan konfigurasi ini

Penghambat membatasi nilai

Sebagian kegagalan bukan sekadar “pengurangan poin” — kegagalan itu berarti toko tidak bisa berdagang. Satu penghambat membatasi skor di 74, dua di 54, tiga atau lebih di 34, jadi penghambat memaksa turun rentang nilainya dan rata-rata berbobot hanya menentukan posisi Anda di dalam rentang itu. Tanpa penghambat sama sekali, satu baris merah tetap membatasi skor di 88 — nilai A tidak bisa dicapai kalau masih ada warna merah di halaman.

Daftar penghambatnya pendek dan spesifik, dan isinya tepat sembilan belas kunci bernama ditambah apa pun yang diawali sms_: .env bisa dibaca lewat web, log disajikan lewat web, situs dalam mode pemeliharaan, file .php yang diunggah dieksekusi, toko baru tidak bisa mendaftar, tidak ada metode pembayaran yang bisa dipakai, database tidak bisa dijangkau, storage salah konfigurasi, email gagal, SMS gagal, sql_mode yang membuat platform rusak, charset yang salah, penjadwal tidak berjalan, sertifikat yang kedaluwarsa dalam 14 hari, dan lima kesalahan .env lainnya — APP_KEY hilang atau bawaan produk, APP_DEBUG=true, blok database rusak, blok mail rusak, dan kunci ganda.

Perhatikan apa yang sengaja bukan penghambat: file di atas document root yang bisa dibaca dinilai sebagai peringatan, bukan penghambat, karena itu pembocoran informasi, bukan pembobolan. Daftarnya sengaja dibuat pendek — kalau semuanya darurat, tidak ada yang darurat.

Satu akibat yang layak dinyatakan terus terang: cert_expiry adalah penghambat yang hanya diukur pada Deeper check, karena dibaca dari jabat tangan TLS langsung. “Check now” tidak bisa memberi tahu bahwa sertifikat Anda kedaluwarsa minggu depan.

Kenapa “tidak terukur” tidak pernah dinilai — dan kenapa itu penting

Pemeriksaan yang tidak bisa dijalankan alat ini dikeluarkan sepenuhnya dari skor.

Itu hal terpenting yang perlu dipahami tentang angkanya. Di panel terkelola, PHP dikurung di direktori situsnya sendiri — yang memang benar dan layak dipertahankan — dan itu berarti /proc, /etc/os-release, config nginx, dan config pool php-fpm sama sekali tidak bisa dibaca. Tujuh pemeriksaan lalu tidak punya jawaban.

Alat yang menilai hal itu sebagai kegagalan akan menghukum Anda karena langkah pengamanan yang seharusnya Anda pertahankan. Alat yang menilainya lolos akan berbohong. SixPreflight tidak melakukan keduanya: baris-baris itu berbunyi “tidak bisa dibaca dari sini”, satu baris di bagian PHP menjelaskan alasannya sekali dan memberi dua cara menyiasatinya, dan tidak satu pun menyentuh skor.

Aturan yang sama berlaku untuk pemeriksaan cadangan. Kalau tidak ditemukan alat cadangan, barisnya menjadi tidak terukur — bukan peringatan — karena snapshot dari penyedia hosting Anda tidak terlihat dari dalam server, dan alat ini menolak menyebut rusak sesuatu yang memang tidak bisa dilihatnya.

Server yang dikunci rapat tidak boleh mendapat nilai buruk karena dikunci rapat. Itu aturannya, dan itulah sebabnya angkanya layak dibaca.

Daftar perbaikan

Setiap peringatan dan setiap masalah mendarat di halaman What to fix, yang merah lebih dulu, lalu berurutan menurut bobot. Masing-masing membawa label dampak yang diturunkan dari bobot yang sama yang menghasilkan skornya, jadi tidak ada yang dinilai dengan satu skala lalu diprioritaskan dengan skala lain.

  • Menghentikan pesanan
  • Bisa menghentikan pesanan
  • Risiko serius
  • Risiko
  • Memperlambat situs
  • Layak diperbaiki
  • Merapikan

Setiap kartu memberi tahu berapa nilai pengaturannya sekarang, seharusnya berapa, di file mana ia berada, perintah yang harus dijalankan kalau ada, dan cara membuktikan perubahannya berhasil. Ada blok “tunjukkan semua baris untuk ditempel” per file tujuan, yang hanya memuat baris yang masih perlu diubah — karena menyalin dua puluh nilai satu per satu adalah cara sebuah angka hilang. Pengaturan untuk ditempel dan perintah untuk dijalankan disimpan di blok terpisah; keduanya menuju tempat berbeda.

Target database di kartu-kartu itu diturunkan dari perhitungan yang sama yang menghasilkan blok my.cnf yang Anda salin, jadi angka per baris dan bloknya tidak mungkin berbeda.

Ia juga mengingat

Alat ini menyimpan 60 pemindaian terakhir di disk. Halaman riwayat menampilkan kartu “sejak pemindaian terakhir” — apa yang baru rusak dan apa yang baru Anda perbaiki — Anda bisa membandingkan dua pemeriksaan tersimpan berdampingan, dan mengekspor satu pengujian sebagai file teks.

Endpoint baca-saja ?api=findings mengembalikan pemeriksaan tersimpan terakhir sebagai JSON untuk dashboard atau monitor. Ia tidak pernah memulai pemindaian: monitor yang memicu pemindaian penuh — yang salah satu langkahnya mengambil URL dari situs live Anda — pada setiap penyegaran dashboard akan menjadi penghasil beban berkedok monitor. Responsnya membawa run.age_seconds supaya pemanggilnya bisa berkata “ini sudah dua minggu lalu” alih-alih melaporkan kabar basi sebagai kabar terkini.

Separuh yang lain

Ada separuh keduanya juga: skrip penyiapan

SixPreflight membaca dan menjelaskan. bin/setup-6ammart.php adalah separuh lain dari paket ini: ia melakukan perubahannya. Halaman dokumentasi yang dikirim menyebutnya dalam satu baris — “SixPreflight membaca server dan menjelaskan apa yang harus diubah. setup-6ammart.php adalah separuh lainnya: ia melakukan perubahan itu.”

  • Skrip bash berekstensi .php, dan itu disengaja

    PHP mengambil file itu, menemui exit di baris 3, dan tidak memberi apa pun ke browser. Jalankan dengan bash, jangan pernah lewat browser.

  • Mode bawaannya adalah dry run

    Menjalankannya tanpa sengaja tidak mengubah apa pun. --check melaporkan kondisi sekarang versus yang direkomendasikan. --apply yang mengerjakannya.

  • 84 entri katalog, 40 di antaranya aman diterapkan tanpa bertanya

    Sumber kebenarannya adalah katalog penyetelan yang sama dengan yang dipakai kartu perbaikan — 84 entri di php, php-fpm, os, mysql, nginx, laravel, dan 6ammart, di mana 40 ditandai aman diterapkan tanpa bertanya dan 44 ditanyakan lebih dulu dengan konsekuensinya dinyatakan dalam satu baris, atau dicetak sebagai instruksi manual. Tidak ada entri di kelompok kedua yang pernah diterapkan diam-diam, termasuk saat memakai --yes.

Jumlah yang berbeda, dinyatakan terbuka

Halaman docs/setup.html yang dikirim menyebut 84 entri, 40 aman diotomatiskan, 44 tidak. Header skripnya sendiri dan hitungan langsung atas ketiga file data/tuning-*.json.php sama-sama menyebut 86 / 41 / 45. Angka terpublikasi yang lebih rendah itulah yang dipakai di atas.

Penulisan ke vhost nginx live, cron penjadwal, dan apa pun yang menjalankan worker antrean saat ada tumpukan pekerjaan semuanya masuk kelas yang ditanyakan lebih dulu: masing-masing menampilkan persis apa yang akan dilakukannya lalu bertanya, dan --yes tidak menjawabkannya untuk Anda.

Jadi SixPreflight adalah pemeriksa dengan pemerbaiki opsional di sampingnya, bukan pemeriksa saja.

Empat panduan ikut dikirim

Kumpulan dokumentasinya memberi seperempat halamannya untuk bagian pemerbaiki.

  • Cara memakainya

    index.html — dashboard, dua tombol pemindaian, daftar perbaikan, dan halaman riwayat.

  • Apa yang harus dipasang, dan dari mana tiap kredensial berasal

    requirements.html — paketnya, ekstensinya, dan dari konsol mana tiap kunci diterbitkan.

  • PHP, database, dan OS yang mana

    versions.html — rekomendasinya, kartu skor berperingkat, dan alasan di balik tiap pilihan.

  • Apa yang dilakukan skrip penyiapan

    setup.html — katalognya, entri mana yang diotomatiskan, dan mana yang berhenti dan bertanya.

Kenapa ini lebih baik daripada menebak

Empat hal yang tidak bisa Anda periksa dengan mata

  • Dibanding penilaian Anda sendiri

    Halaman prasyarat dari vendor mencantumkan angka minimum, dan angka minimum adalah dasar yang salah untuk membangun. “MySQL 5.7+ / MariaDB 10.3+” menyembunyikan bahwa kedua varian berperilaku berbeda di bawah ONLY_FULL_GROUP_BY: MySQL 5.7.5+ menyalakannya secara bawaan dan tetap sanggup, karena ia menurunkan ketergantungan fungsional yang diandalkan laporan-laporan ini; MariaDB membiarkannya mati, dan rusak kalau Anda menyalakannya — laporan per item lalu gagal dengan ERROR 1055. Itu diverifikasi dengan menjalankan laporannya di keduanya, bukan diasumsikan. Jadi mode itu harus tetap mati di MariaDB, dan di MySQL nilai bawaannya sebaiknya dibiarkan. Alat ini menilai kombinasi spesifik itu, bukan nomor versinya.

  • Dibanding halaman phpinfo()

    phpinfo() mencetak nilai, tidak lebih. max_execution_time Anda yang sebenarnya adalah yang lebih kecil antara php.ini dan request_terminate_timeout php-fpm; SixPreflight menghitung angka efektif itu lalu menilainya. phpinfo() tidak bisa menentukan ukuran InnoDB buffer pool Anda dari RAM Anda yang sebenarnya, jumlah worker php-fpm Anda yang sebenarnya, dan ukuran data Anda yang sebenarnya — SixPreflight bisa, lalu memeriksa apakah worker php-fpm masih muat di dalam max_connections. Ia tidak bisa menghitung target jumlah file OPcache dari jumlah file PHP di proyek Anda. Dan ia tidak bisa memberi tahu apa yang bisa diambil internet dari situs Anda, karena ia tidak membuat permintaan.

  • Dibanding perkataan perusahaan hosting Anda

    “Servernya baik-baik saja” bukan klaim yang bisa diperiksa siapa pun. Ini bisa: ia mengambil /.env dari URL live Anda sendiri lalu memberi tahu apa yang kembali. Ia membuka sesi SMTP sungguhan. Ia membuat token Firebase sungguhan. Ia melakukan panggilan Maps sungguhan. Setiap satunya adalah fakta bertanggal, tersimpan di file yang bisa Anda ekspor dan kirim ke siapa pun yang bilang servernya baik-baik saja.

  • Dan ia memberi tahu saat ia tidak tahu

    Alat yang selalu punya jawaban pasti menebak di suatu tempat. Yang ini menyebutkan baris mana yang tidak bisa diukurnya lalu mengeluarkannya dari skor.

Sudah memakai SixPanel?

Sudah memakai SixPanel? Anda sudah punya ini

Di cPanel, aaPanel, CloudPanel, atau VPS kosong, SixPreflight untuk Anda

Anda yang memiliki web server, PHP, config database, cron, dan sertifikat, jadi setiap blok tempel dan setiap perintah bisa Anda pakai.

Di server SixPanel, ia sudah ada di sana

SixPanel memasang SixPreflight di dalam toko dan menampilkannya sebagai halaman Shop check-up milik panel. Anda tidak perlu mengunduh apa pun, dan pengaturan yang dimiliki panel diarahkan ke halaman panel yang memilikinya alih-alih ke blok tempel yang akan ditimpa deploy berikutnya.

Lihat SixPanel

Satu catatan jujur lagi untuk mode itu: di mesin SixPanel, pengaturan milik aplikasi sendiri — pembayaran, email, SMS, Firebase, peta, zona waktu, mata uang — dikeluarkan dari skor server dan dicantumkan terpisah, karena itu tugas pemilik toko dan bukan tugas server. Kesimpulan bahasa sederhana di bagian atas tetap berbicara untuk seluruh bisnisnya.

Kebutuhan dan cara menjalankannya

Kebutuhan, cara menjalankannya, dan apa yang akan diubahnya

Apa yang dibutuhkan alat ini sendiri

Apa yang dibutuhkan SixPreflight sendiri agar bisa berjalan.
KebutuhanApa yang diperlukan
PHP8.2 atau lebih baru untuk menjalankan alat ini
Web serverApa pun yang menyajikan direktori public/ situs Anda
Akses tulispreflight/config.php (atau tempel hash sandi secara manual) dan preflight/history/
AplikasiTidak wajib. Alat ini berjalan di server kosong
Panel yang dikenalinyacPanel · aaPanel · CloudPanel · DirectAdmin · Plesk · CWP · server biasa

Terhadap apa server Anda dinilai

Batas bawah yang diminta SixPreflight dan angka yang direkomendasikannya untuk Anda pilih.
Sumber dayaBatas bawahYang sebaiknya dipilih
vCPU24
RAM4 GB8 GB
Disk kosong20 GB di halaman kebutuhan — tetapi pemeriksaan disknya sendiri lolos pada 20 GB, memberi peringatan antara 10 dan 20, dan hanya gagal di bawah 1040 GB+
Jenis penyimpananSSDNVMe
Jenis hostingVPS atau dedicatedVPS dengan akses root

Baris disk kosong benar-benar bertentangan dengan dirinya sendiri, dan Anda akan melihatnya di layar

Requirements::platform() menetapkan langsung “butuh 20 GB, pilih 40 GB+”, sementara pemeriksaan perangkat keras menilai terhadap min_free_disk_gb = 10 dari config.php — jadi server dengan 12 GB kosong adalah kegagalan kebutuhan di satu tabel dan peringatan kuning di tabel lain, pada halaman yang sama.

Di browser — cara yang biasa

  1. 01

    Unggah foldernya

    Unggah seluruh folder preflight/ ke direktori public/ situs Anda.

  2. 02

    Setel sandi di layar pertama

    Buka https://your-domain/preflight/ lalu setel sandi. Ia tidak akan mulai tanpa sandi, dan siapa pun yang membukanya pertama kali dialah yang menyetelnya — jadi lakukan ini begitu unggahan selesai. Minimal delapan karakter. Kalau config.php tidak bisa ditulis, halamannya memberi tahu dan memberi Anda perintah password_hash() satu baris untuk ditempel.

  3. 03

    Tekan tombolnya

    Check now butuh sekitar satu detik. Deeper check menambahkan uji panggilan ke luar.

  4. 04

    Hapus foldernya setelah selesai

    Ia memang terlindungi, tetapi ia melaporkan isi dalam server dan tidak punya alasan untuk tetap ada di situs live.

Opsional: batasi akses berdasarkan IP dengan allow_ips di config.php (alamat tunggal atau rentang CIDR, IPv4 dan IPv6). Di balik Cloudflare atau load balancer, alamat yang dilihatnya adalah alamat proxy, jadi daftar izin berisi IP Anda sendiri justru mengunci Anda di luar — biarkan kosong dan andalkan sandinya, atau batasi di proxy. Kalau Anda terlanjur mengunci diri sendiri, halaman 403 mencetak alamat yang benar-benar datang dan alamat apa yang diklaim proxy.

Apa yang akan diubahnya, kalau Anda memintanya

Pemindaiannya membaca. Empat permukaan di dalam paket ini bisa menulis, dan tidak satu pun berjalan sendiri — masing-masing butuh tombol atau perintah.

  • Halaman Error logs bisa mengosongkan sebuah log

    Tombol Clear memotong file dengan ftruncate alih-alih menghapusnya, karena PHP, MySQL, dan nginx menahan file itu tetap terbuka dan menghapusnya akan membuat mereka menulis ke handle tanpa nama. Ia memerlukan token CSRF, dan kalau file itu tidak bisa ditulis oleh pengguna PHP, ia mencetak perintah shell alih-alih bertindak. Itu penulisan ke log Laravel, log slow/error MySQL, php-fpm, dan web server — file yang bukan milik alat ini.

  • Halaman Test order alert mengirim push sungguhan

    Ke perangkat toko atau kurir sungguhan, lewat perintah artisan milik platform itu sendiri. Ada tombol dry run “Show what would be sent”; itu bukan tombol bawaannya.

  • Benchmark database membuat lalu menghapus tabelnya sendiri

    Diberi nama zz_preflight_bench_<random> dengan akhiran acak baru tiap pengujian — argumen keamanan lengkapnya ada di bawah.

  • Menyetel sandi menulis ulang config.php

    Dan aksi “save profile” di dashboard menulis angka RAM dan vCPU yang dimasukkan operator ke file profil server. Keduanya berada di dalam folder preflight/.

Dan terpisah, memang disengaja: bin/setup-6ammart.php menerapkan perubahan saat Anda menjalankannya dengan --apply. Itulah gunanya.

Dari baris perintah — tanpa aplikasi, tanpa browser

Kedua alat pembanding ini hanya untuk baris perintah dan menolak menjawab lewat HTTP.

php preflight/server-compare.php  # ukur mesin iniphp preflight/server-compare.php --save=box-a.jsonphp preflight/server-compare.php --compare=box-a.json,box-b.jsonphp preflight/detect-size.php  # catat RAM dan vCPU

Keduanya bukan satu-satunya file dengan pengaman itu. Sebelas file dalam paket ini menolak berjalan di luar baris perintah — kedua alat tadi, delapan harness pengujian termasuk tests/smoke.php, dan bin/setup-6ammart.php. tests/smoke.php adalah alasan pengaman itu penting: dibiarkan bisa dijangkau lewat web tanpa sandi, seperti saat pertama kali dikirim, satu permintaan GET anonim memakan sebelas detik CPU, satu pemeriksaan penuh atas database aplikasi, sepuluh permintaan yang dibuat server ke URL publiknya sendiri, dan panggilan keluar ke Google Maps, host SMTP yang dikonfigurasi, dan Firebase — bisa diulang sesering yang diinginkan siapa pun. Pemindaiannya kini mencari file itu persis di server Anda, karena folder seperti ini disalin antar mesin selama bertahun-tahun.

server-compare.php berdiri sendiri dan tidak punya dependensi — ia sama sekali tidak butuh aplikasi, dan itulah yang membuatnya jadi alat yang tepat untuk membandingkan dua server yang sedang Anda pertimbangkan untuk disewa, sebelum Anda memutuskan salah satunya.

Membaca skor benchmark

Kedua skor dinormalkan supaya berarti sama pada tingkat kesulitan mana pun — hanya mesinnya yang mengubahnya, dan makin tinggi makin cepat. Satu vCPU cloud masa kini terbaca sekitar 100. Jalankan dua atau tiga kali di jam berbeda: instance burstable turun tajam begitu kreditnya habis, dan itu tidak akan terlihat dalam satu kali pengujian. Mesin rujukan di balik angka 100 itu adalah vCPU AMD EPYC 7713 dengan NVMe lokal, PHP 8.3, OPcache menyala.

Pada skor database, perhatikan khususnya INSERT baris tunggal per detik: dengan innodb_flush_log_at_trx_commit=1, tiap INSERT menunggu sinkronisasi disk, jadi angka itu sebenarnya adalah latensi fsync penyimpanan Anda. Itulah perbedaan paling jelas antar penyedia.

Terapkan my.cnf yang disarankan lebih dulu, baru bandingkan dua server — kalau tidak, Anda membandingkan konfigurasi, bukan mesin.

Apa yang sebaiknya dipasang

Rekomendasi SixPreflight sendiri, untuk instalasi native tanpa container:

  • Ubuntu 26.04 LTS
  • PHP 8.5
  • MariaDB 11.8
  • PHP 8.5

    Apa pun yang dibawa arsip rilis Anda sendiri — 8.5 di Ubuntu 26.04, 8.4 di Debian 13, 8.3 di Ubuntu 24.04. 8.5 diragukan karena phpspreadsheet, melalui maatwebsite/excel, mendeklarasikan php <8.5; itu deklarasi di composer.json dan bukan pengukuran, pemeriksaan platform composer dimatikan, dan menjalankan kodenya di 8.5.4 menghasilkan ekspor spreadsheet yang identik byte demi byte, baik pada pohon CodeCanyon murni maupun pada fork kami sendiri. Semuanya berjalan pada kecepatan yang praktis sama, jadi ini bukan keputusan kecepatan — ambil yang dipatch rilis Anda untuk Anda.

  • MariaDB 11.8 atau 10.11

    Mana pun, yang dibawa rilis Anda — diukur pada toko yang sama, 11.8 melawan 10.11 adalah seri. Yang bukan seri adalah rasanya: kedua versi MySQL butuh perubahan kode sebelum 6amMart mau berjalan di atasnya, karena pencarian item menyetel flag optimizer khusus MariaDB dan dua migrasi indeks membaca katalog server dalam huruf yang tidak dikembalikan MySQL, sehingga skemanya tinggal separuh terpasang.

  • Ubuntu 26.04

    Setara dengan Ubuntu 24.04 dan Debian 13 dalam kecepatan — perbedaan yang terukur lebih kecil daripada selisih satu mesin dengan dirinya sendiri. Yang memisahkan mereka adalah jendela dukungan: April 2031 untuk 26.04, melawan Mei 2029 untuk 24.04 dan Agustus 2028 untuk Debian 13. Ini keputusan jendela dukungan, bukan kecepatan.

Apa cakupan angka mesin database itu Angka itu berasal dari satu mesin dan satu kumpulan data — dump toko nyata berisi 66,701 pesanan — dengan tiap mesin database dimigrasikan lebih dulu lalu kumpulan indeks hasilnya dibandingkan hingga 460 indeks, identik di kelimanya, sehingga yang dibandingkan adalah mesin databasenya, bukan indeks yang hilang. Angka itu membandingkan kelima mesin database satu sama lain di satu mesin itu. Itu bukan pernyataan tentang seberapa cepat 6amMart secara umum.

Tidak ada di sini yang menyatakan satu sistem operasi lebih cepat daripada yang lain: perbedaan terukur antar sistem operasi lebih kecil daripada selisih satu mesin dengan dirinya sendiri.

Cara ia berjalan

Tidak ada apa pun di dalam paket ini yang memeriksa lisensi, akun, atau tanggal kedaluwarsa, dan tidak ada apa pun di dalamnya yang melaporkan apa pun kembali ke AllsWeb. Panggilan keluar yang dibuatnya semuanya ke tempat yang sudah Anda urus sendiri — situs Anda sendiri, host SMTP Anda sendiri, endpoint token dan geocoding Google — ditambah satu layanan echo IP publik untuk mengetahui alamat Anda sendiri.

Alasan jujur kenapa pemeriksaan ini ada sama sekali: semuanya lahir dari membangun dan memperbaiki server-server ini, dan setiap pemeriksaan adalah pertanyaan yang toh harus kami tanyakan kepada Anda. Pemilik toko yang bisa menjawabnya sebelum menghubungi kami menghemat satu hari; pemilik toko yang tidak bisa menjawabnya mendapat laporan yang bisa dikirim ke penyedia hostingnya.

Batas jujur

Baca ini sebelum Anda mengandalkan angkanya

  1. 01

    Ia tidak bisa melihat apa yang tidak ditunjukkan server

    Pemeriksaan yang membutuhkan shell_exec atau /proc turun menjadi “tidak terukur” alih-alih menebak. Panel terkelola mematikan hal yang berbeda-beda, jadi sebagian baris kosong di satu host dan terisi di host lain.

  2. 02

    Di panel terkelola, tujuh pemeriksaan tidak punya jawaban

    open_basedir mengurung PHP di direktori situsnya. Itu benar dan layak dipertahankan. Baris-barisnya menyatakan demikian dan dikeluarkan dari skor.

  3. 03

    “Check now” tidak bisa melihat enam baris web server, dan salah satunya penghambat

    Kompresi, caching statis, keep-alive langsung, banner server, HSTS, dan masa berlaku sertifikat dibaca dari respons nyata, jadi hanya muncul pada Deeper check — dan cert_expiry ada di daftar penghambat. Jalankan Deeper check sebelum Anda memercayai hasil yang hijau.

  4. 04

    Alat ini bertentangan dengan dirinya sendiri soal disk kosong

    Tabel kebutuhan menyebut Anda butuh 20 GB kosong; pemeriksaan disk menyebut 10–20 GB sebagai peringatan dan hanya gagal di bawah 10. Dua jawaban untuk satu pertanyaan, di satu halaman.

  5. 05

    Ia melaporkan apa yang dikatakan server tentang konfigurasinya

    Kalau sebuah panel menerapkan konfigurasi di lapisan yang tidak bisa dilihat alat ini, percayai antarmuka panel itu ketimbang alat ini. cPanel dan aaPanel mengelola config PHP dan MySQL lewat UI mereka sendiri dan bisa menimpa file yang disunting manual; CloudPanel dan server biasa membiarkan file config yang berlaku. Kalau sebuah pengaturan terus kembali setelah restart, itu panelnya yang menulis ulang — ubah lewat panel saja.

  6. 06

    Benchmark mengukur mesin ini pada saat ini

    Tetangga yang berisik membuat setiap angka jadi pesimistis — periksa baris load average sebelum menarik kesimpulan.

  7. 07

    Langkah paparan bukan uji penetrasi

    Ia mengambil daftar tetap alamat yang diketahui berisiko dari URL Anda sendiri lalu melaporkan apa yang kembali. Ia tidak mencari kerentanan yang belum diketahui dan ia bukan audit kode.

  8. 08

    Satu hal benar-benar tidak bisa diuji dari sebuah server

    Kunci klien Google Maps dibatasi berdasarkan referrer browser, jadi alat ini bisa memberi tahu bahwa kuncinya hilang, atau bahwa kuncinya berbahaya karena identik dengan kunci server Anda — tetapi ia tidak bisa memverifikasi kunci yang sudah dibatasi dengan benar dari sisi server, dan ia mengatakannya alih-alih meluluskannya.

  9. 09

    Jumlah baris di tabel ukuran hanyalah perkiraan

    Angkanya berasal dari information_schema. Jumlah persis berarti pemindaian penuh setiap tabel di situs live.

  10. 10

    Unggahan yang terkubur lebih dari lima direktori di bawah artisan mendapat mode mandiri

    Diam-diam — pencarian root aplikasi berhenti di lima tingkat.

  11. 11

    Ia pemeriksa lebih dulu

    Pemindaiannya sendiri tidak mengubah apa pun. Empat permukaan di dalam paket ini menulis saat Anda menekan tombolnya, dan bin/setup-6ammart.php menerapkan perubahan saat Anda menjalankannya dengan --apply. Kelimanya sudah dicantumkan di atas.

Apakah aman dijalankan di toko yang sedang beroperasi?

Ya, dan inilah alasan persisnya.

  • Probe data nyata bersifat baca-saja secara konstruksi

    Setiap probe melewati satu metode query() yang menolak apa pun yang tidak diawali SELECT, EXPLAIN, SHOW, atau WITH — dan tidak ada jalur kode di kelas itu yang bisa menjalankan INSERT, UPDATE, DELETE, ALTER, CREATE, atau DROP, dan itulah jaminan yang benar-benar memikul janjinya. Sesinya disetel ke TRANSACTION READ ONLY di server yang mendukungnya, jadi kesalahan sekalipun akan ditolak oleh database, bukan oleh kode ini. Setiap pernyataan membawa batas 15 detik di sisi server, jadi probe terhadap tabel yang ternyata sangat besar tidak bisa duduk menahan sumber daya — dan probe yang menyentuh batas itu dilaporkan sebagai “terlalu lambat”, yang justru merupakan temuannya. Terverifikasi: jumlah baris dan SUM(order_amount) identik sebelum dan sesudah.

  • Benchmark database tidak pernah menyentuh tabel aplikasi

    Setiap objek yang dibuatnya diberi nama zz_preflight_bench_<random> dengan akhiran acak baru tiap pengujian; ia memeriksa nama itu belum dipakai sebelum membuat apa pun dan berhenti alih-alih menyentuh tabel yang sudah ada; tidak ada pernyataan di dalamnya yang bisa menyebut tabel yang bukan buatannya; pembersihannya bergantung pada apakah tabelnya benar-benar dibuat, berjalan di dalam blok finally dan shutdown handler, dan menulis commit dalam kelompok kecil sehingga tidak ada yang menahan kunci lama. Terverifikasi: jumlah baris orders dan items identik sebelum dan sesudah, dan tidak ada tabel zz_preflight_ yang tersisa setelah pengujian.

  • Cakupannya adalah tabelnya, bukan databasenya, dan perbedaan itulah seluruh janjinya

    Ia tidak pernah membaca dari atau menulis ke tabel aplikasi mana pun — itu kata-kata README-nya sendiri dan itulah kata-kata yang tepat. Benchmark membuat lalu menghapus satu tabel miliknya sendiri di dalam database aplikasi, dengan nama yang dibuatnya sendiri, lalu menghapusnya lagi; tidak ada hal lain di database itu yang disentuh.

  • Di dalam foldernya sendiri, ia menulis satu hal

    preflight/history/, satu file per pemindaian tersimpan. File-file itu menjelaskan kelemahan server secara rinci, jadi masing-masing diberi nama .json.php dan diawali pernyataan exit PHP — kalau diambil lewat HTTP, web server mengeksekusinya, ia langsung berhenti, dan tidak mengembalikan apa pun. Itu juga berlaku di nginx, yang mengabaikan .htaccess.

Dapat daftar merah dan tidak punya waktu?

Kirimkan laporan hasil ekspor Anda kepada kami. Kami memasang, mengonfigurasi, dan menyerahkan kembali 6amMart di server Anda sendiri, dengan insinyur senior menandatangani rilisnya.

Lihat layanan instalasi 6amMartBicara dengan dukungan

Server sudah siap, toko masih lambat?

SixPreflight memberi tahu apakah servernya siap. Kalau tokonya sendiri yang lambat, itu aplikasinya, bukan servernya — dan itulah yang kini ikut dikirim layanan instalasi 6amMart di atas rilis 6amMart terbaru: build 6amMart yang dioptimalkan AllsWeb terukur 10× hingga 22× lebih cepat — 90–95% lebih cepat — pada setiap layar yang dilihat pelanggan, diukur di server live, dengan CDN dilewati.

Lihat layanan instalasi 6amMart

FAQ

Pertanyaan yang benar-benar ditanyakan orang

  • 01Bagaimana saya tahu server saya siap untuk 6amMart?

    Jalankan SixPreflight di server itu. Ia memuat 163 pemeriksaan pada perangkat keras, PHP, aplikasi, .env, izin, web server, caching, database, paparan publik, dan setiap layanan luar. Deeper check pada instalasi 6amMart menjalankan seluruh rangkaian yang tersedia baginya — 160 pemeriksaan berbeda, dan tidak lebih dari 157 baris di mesin nyata yang menjalankan satu web server; “Check now” yang cepat menjalankan 123, tidak lebih dari 120 di mesin yang sama, melewatkan 12 pemeriksaan paparan, 21 pemeriksaan layanan, dan enam baris web server yang butuh respons langsung. Bagaimanapun juga hasilnya berakhir dalam satu kalimat, nilai huruf A–F, dan daftar berurutan apa yang harus diperbaiki lebih dulu.

  • 02Apakah SixPreflight mengubah sesuatu di server saya?

    Pemindaiannya tidak. Ia tidak pernah membaca atau menulis tabel aplikasi, dan tidak pernah mengirim email atau SMS ke siapa pun. Empat permukaan memang menulis saat Anda menekan tombolnya: halaman Error logs bisa memotong file log, halaman Test order alert mengirim push sungguhan ke perangkat sungguhan, benchmark database opsional membuat lalu menghapus tabelnya sendiri, dan menyetel sandi menulis ulang config.php milik alat ini sendiri. Paket ini juga menyertakan bin/setup-6ammart.php, yang memang sengaja menerapkan perubahan saat Anda menjalankannya dengan --apply.

  • 03Apakah aman dijalankan di toko live yang sedang menerima pesanan?

    Ya. Probe databasenya baca-saja secara konstruksi — metode query() menolak apa pun yang tidak diawali SELECT, EXPLAIN, SHOW, atau WITH, tidak ada jalur kode di kelas itu yang bisa melakukan penulisan, dan sesinya berjalan dalam TRANSACTION READ ONLY di server yang mendukungnya. Benchmark opsional hanya bekerja pada tabel yang dibuatnya sendiri dengan nama acak, dan menghapusnya di dalam blok finally dan shutdown handler. Keduanya diverifikasi dengan membandingkan jumlah baris dan SUM(order_amount) sebelum dan sesudah.

  • 04Apakah saya perlu 6amMart untuk memakainya?

    Tidak. Ia mengenali apa yang sedang dilihatnya. Di server biasa tanpa aplikasi, ia tetap memeriksa perangkat keras, PHP, server database, web server, izin, dan paparan — meskipun 14 pemeriksaan .env, 12 pemeriksaan aplikasi Laravel, 9 pemeriksaan platform 6amMart, dan 5 pemeriksaan realtime tidak punya apa pun untuk dibaca, menyisakan hanya baris profil dari langkah aplikasi. Pada aplikasi Laravel apa pun, semua hal tentang server tetap berlaku dan pemeriksaan khusus 6amMart dilewati alih-alih ditebak. Pada 6amMart, setiap pemeriksaan yang bisa berjalan akan berjalan.

  • 05Skor berapa yang saya butuhkan sebelum go live?

    90 ke atas adalah A — siap produksi. Di bawah itu, baca penghambatnya lebih dulu: satu penghambat membatasi skor di 74 sebaik apa pun hal lainnya, dua membatasi di 54, tiga atau lebih di 34. Bahkan tanpa penghambat, satu baris merah membatasi Anda di 88. Penghambat adalah hal-hal yang menghentikan toko berdagang — tidak ada metode pembayaran yang bisa dipakai, email gagal, database tidak bisa dijangkau, .env bisa dibaca lewat web, sertifikat yang kedaluwarsa dalam 14 hari. Jalankan Deeper check sebelum memercayai angkanya: yang terakhir itu, dan lima baris web server lainnya, sama sekali tidak diukur pada pemeriksaan cepat.

  • 06Kenapa sebagian baris berbunyi “tidak bisa dibaca dari sini”?

    Karena panel hosting Anda mengurung PHP di direktori situs Anda sendiri, yang memang benar dan layak dipertahankan — jadi /proc, /etc/os-release, config nginx, dan config pool php-fpm memang tidak bisa dibaca. Tujuh pemeriksaan lalu tidak punya jawaban. Semuanya dilaporkan dengan jujur dan dikeluarkan sepenuhnya dari skor, jadi server yang dikunci rapat tidak pernah dihukum karena dikunci rapat.

  • 07Apakah bisa dipakai di cPanel, aaPanel, CloudPanel, atau VPS biasa?

    Bisa — itulah pasar utamanya. Ia mengenali cPanel, aaPanel, CloudPanel, DirectAdmin, Plesk, CWP, dan server biasa, lalu memberi perintah instalasi dan jalur per panel. Perlu diketahui: cPanel dan aaPanel mengelola konfigurasi PHP dan MySQL lewat antarmuka mereka sendiri dan bisa menimpa file yang disunting manual, jadi kalau sebuah pengaturan terus kembali setelah restart, ubah lewat panel saja.

  • 08Apakah ia hanya memberi tahu apa yang salah, atau bisa memperbaikinya?

    Keduanya, dan bagian perbaikannya harus Anda aktifkan sendiri. Dashboard-nya meminta Anda melakukan tiap perubahan dengan tangan lebih dulu, karena orang yang melakukan perubahan akan memahami apa yang diubahnya. Kalau itu tidak praktis, bin/setup-6ammart.php melakukan pekerjaan yang sama dari baris perintah: bawaannya dry run, --check untuk melaporkan, --apply untuk bertindak. Ia hanya menerapkan entri katalog yang ditandai aman diotomatiskan — 40 dari 84 entri yang dipublikasikan — dan menanyakan atau mencetak sisanya, termasuk saat memakai --yes.

  • 09Saya memakai SixPanel. Apakah saya perlu mengunduh ini?

    Tidak. SixPanel memasang SixPreflight di dalam toko dan menampilkannya sebagai halaman Shop check-up milik panel. Pada mode itu ia membuang blok tempel untuk apa pun yang dimiliki panel — web server, PHP, konfigurasi database, cron, worker antrean, sertifikat — lalu mengarah ke halaman panel yang memiliki tiap pengaturan, karena nilai yang ditempel dengan tangan di sana akan hilang pada deploy berikutnya. Ia tetap mempertahankan setiap pemeriksaan di tingkat aplikasi.

  • 10Versi PHP dan database mana yang sebaiknya saya pasang?

    Ubuntu 26.04 LTS, lalu apa pun yang dibawa arsipnya sendiri — PHP 8.5 dan MariaDB 11.8 — untuk pemasangan native. PHP 8.5 diragukan karena satu dependensi mendeklarasikan batas di bawahnya, tetapi batas itu deklarasi dan bukan pengukuran: menjalankan kodenya di 8.5.4 memberi ekspor spreadsheet yang identik byte demi byte pada pohon CodeCanyon murni dan pada fork kami. Setiap versi PHP dan MariaDB yang diukur berjalan pada kecepatan yang praktis sama, jadi tidak ada di sini yang merupakan keputusan kecepatan. Yang nyata adalah rasanya: kedua versi MySQL butuh perubahan kode sebelum 6amMart mau berjalan di atasnya, karena pencarian item menyetel flag optimizer khusus MariaDB dan dua migrasi indeks membaca katalog server dalam huruf yang tidak dikembalikan MySQL.

  • 11Bisakah saya menyambungkan hasilnya ke dashboard saya sendiri?

    Bisa. ?api=findings mengembalikan pemeriksaan tersimpan terakhir sebagai JSON lewat HTTP Basic auth, dengan versi kontrak yang stabil. Ia tidak pernah memulai pemindaian, dan payload-nya membawa run.age_seconds supaya dashboard Anda bisa berkata “pembacaan ini sudah dua minggu lalu” alih-alih menyajikan kabar basi sebagai kabar terkini.

Satu folder, satu jawaban

Unggah satu folder. Buka di browser. Dapatkan satu jawaban.

Selalu rilis terkini, berjalan di server Anda sendiri. Ia membaca lebih dulu, dan ia memberi tahu apa yang tidak bisa diukurnya alih-alih menebak.

Dapatkan SixPreflightLihat layanan instalasi 6amMart

Tidak ada apa pun di dalam paket ini yang memeriksa lisensi, akun, atau tanggal kedaluwarsa, dan tidak ada apa pun di dalamnya yang melaporkan apa pun kembali ke AllsWeb.

AllsWeb

AI + Automation + Human Engineers — build siap produksi dikirim dalam 1–3 hari. Instalasi, kustomisasi, publikasi aplikasi, dan dukungan terkelola untuk skrip atau codebase apa pun.

  • hi@allsweb.com
  • +91 72328 80007

Jelajahi

  • Agen AI
  • Otomasi & Alur Kerja AI
  • Optimasi Pencarian AI
  • Semua solusi
  • Semua skrip pihak ketiga
  • Semua layanan
  • 6amMart yang dioptimalkan
  • SixPanel
  • SixPreflight
  • Layanan update / upgrade
  • Perbaikan 16 KB Play Store
  • Penawaran & kupon

Perusahaan

  • Tentang Kami
  • Rekrut Kami
  • Dukungan & Kontak
  • Program Afiliasi
  • Segera hadir

Legal

  • Syarat & Ketentuan
  • Kebijakan Privasi
  • Kebijakan Pengembalian Dana
  • Kebijakan Pembayaran
  • Kebijakan Dukungan
  • Penggunaan yang Diperbolehkan
  • Kebijakan Cookie
  • Syarat Afiliasi
  • Penafian

© 2026 AllsWeb. Semua hak dilindungi.