Zinnector®

CLI សម្រាប់អ្នកអភិវឌ្ឍន៍សម្រាប់ការបង្ហោះ WordPress

Zinnector® បង្កើត WordPress មូលដ្ឋានដោយមិនចាំបាច់ដំឡើងអ្វីក្រៅពី Node — គ្មាន Docker គ្មាន MAMP — បន្ទាប់មកវាពិនិត្យមើលអ្វីដែលអ្នកបានបង្កើតធៀបនឹងរន្ធកន្លែងបង្ហោះដែលអ្នករៀបនឹងដាក់ឱ្យដំណើរការ ហើយប្រាប់អ្នកពីអ្វីដែលមិនដូចគ្នា មុនពេលអ្នកដាក់បញ្ចូល។ ដំឡើងវាដោយប្រើ npm install -g zinnector។ វាឥតគិតថ្លៃ មានអាជ្ញាប័ណ្ណ MIT និងត្រូវបានបង្កើតឡើងនៅលើ API សាធារណៈដូចគ្នានឹងអ្វីៗផ្សេងទៀតនៅទីនេះ។

បញ្ជាប្រាំ ហើយបញ្ជាកណ្តាលគឺជាចំណុចសំខាន់

CLI ម៉ាស៊ីនផ្ទុកភាគច្រើនចាប់ផ្តើមនៅពេលដាក់ឱ្យដំណើរការ (deploy)។ Zinnector® ចាប់ផ្តើមមុនពេលនោះ — វាបង្កើតគេហទំព័រជាមួយអ្នក ហើយបន្ទាប់មកវាត្រួតពិនិត្យការងាររបស់អ្នកធៀបនឹងម៉ាស៊ីនដែលអ្នករៀបនឹងផ្ញើវាទៅ។ គម្លាតរវាង "វាដំណើរការលើកុំព្យូទ័រយួរដៃរបស់ខ្ញុំ" និង "វាដំណើរការលើម៉ាស៊ីនបម្រើ (server)" គឺជាកន្លែងដែលចំណាយពេលអស់ច្រើនរសៀល ហើយគម្លាតនោះអាចវាស់វែងបាន។

zinnector ថ្មី

បង្កើតគេហទំព័រ ប្ល្គិន ឬប្លុកធីមដែលដំណើរការបានភ្លាមៗ។ គ្មានឯកសារជំនួស គ្មានការងារត្រូវធ្វើ (TODOs) — ប្ល្គិននឹងដំណើរការហើយធីមអាចត្រូវបានជ្រើសរើសភ្លាមៗនៅពេលដែលវាត្រូវបានបង្កើតឡើង។

zinnector dev

WordPress ពិតប្រាកដនៅលើម៉ាស៊ីនរបស់អ្នកក្នុងរយៈពេលប៉ុន្មានវិនាទី ដោយដំណើរការកម្មវិធីជំនួយ និងស្បែកផ្ទាល់ខ្លួនរបស់អ្នក ដោយគ្មាន Docker និងគ្មាន PHP នៅលើ PATH របស់អ្នក។ ជ្រើសរើស PHP ណាមួយចាប់ពី 5.2 ដល់ 8.5 ដើម្បីអភិវឌ្ឍ។

ការពិនិត្យ zinnector

ការត្រួតពិនិត្យមុនពេលដាក់ឱ្យដំណើរការ។ ប្រៀបធៀបអ្វីដែលអ្នកបានបង្កើតជាមួយនឹងស្លុតដែលអ្នករៀបនឹងដាក់ឱ្យដំណើរការ និងបង្ហាញរាល់ភាពមិនស៊ីសង្វាក់គ្នា—ព្រមទាំងរាល់ការត្រួតពិនិត្យដែលវាមិនអាចធ្វើបាន—មុនពេលអ្នកជំរុញវា។

ការជំរុញ zinnector

មុនពេលហោះហើរ សូមបញ្ជូនខមមីតរបស់អ្នក ជំរុញការដាក់ឱ្យប្រើប្រាស់ និងតាមដានវាទាល់តែរួចរាល់។ ប្រសិនបើវាបរាជ័យ កំណត់ហេតុនៃការបង្កើតគឺនៅឆ្ងាយត្រឹមតែមួយពាក្យបញ្ជាប៉ុណ្ណោះ។

ស៊ីនណិចទ័រ អាយអេ (zinnector ai)

សួរជំនួយការពីធមើន័ល (Terminal) ដោយប្រើគម្រោង និងគេហទំព័ររបស់អ្នកជាបរិបទ។ វាដំណើរការលើបណ្តាញស្វ័យប្រវត្តិប្រៀបធៀបនឹងគណនីផ្ទាល់ខ្លួនរបស់អ្នក ដូច្នេះគ្មានសោម៉ូដែល (Model Key) ណាមួយត្រូវបានរក្សាទុកនៅលើម៉ាស៊ីនរបស់អ្នកឡើយ។

Test it works in two minutes, no account needed

Six commands, in order, and what success looks like at each one. Everything here runs on your own machine; an API key is only needed when you reach a hosting slot.

  1. Install it

    Run npm install -g zinnector on Node 24 or newer. If npm prints EBADENGINE, your Node is older than 24 — install the current LTS from nodejs.org and run the install again.

  2. Check the version

    zinnector --version prints a version number such as 0.1.2. On a Node older than 24 it prints a message saying Node 24 or newer is needed, and exits.

  3. Read the help

    zinnector --help lists every command below with a one-line purpose. Every command also takes --help of its own.

  4. Scaffold a site

    zinnector new my-site creates a project that boots immediately — a zinnector.json, a wp-content tree and a README — and prints the next commands to run.

  5. Run it

    cd my-site, then zinnector dev. The first run asks once to download the WordPress runtime (about 570 MB, kept in the CLI’s own cache, never in your project). Success looks like “running at http://127.0.0.1:9400”.

  6. Open it in a browser

    http://127.0.0.1:9400 is a fresh WordPress site; /wp-admin opens the dashboard already signed in. Drop a plugin into wp-content/plugins and it is there on the next reload.

  7. Then, with a hosting slot

    zinnector login, zinnector link, zinnector check, zinnector push — pre-flight what you built against the slot, then deploy and watch it finish.

ការពិនិត្យមុនពេលចេញដំណើរ លម្អិត

អ្នកបានបង្កើតនៅលើ PHP 8.3។ រន្ធដំណើរការកំណែ 8.1។ គ្មានអ្វីប្រាប់អ្នកទេទាល់តែគេហទំព័រប្រែជាស។ នោះគឺជាបញ្ហាដែលពាក្យបញ្ជាមានស្រាប់ ហើយវាជាបញ្ហាដែលម្ចាស់វេទិកានេះបានស្នើសុំដោយផ្ទាល់។ Zinnector® អានបរិយាកាសទាំងពីរ ហើយដាក់វាទល់មុខគ្នា បន្ទាប់មកអនុញ្ញាតឱ្យអ្នកដាក់ពង្រាយដដែល ព្រោះអ្នកអាចមានហេតុផលផ្ទាល់ខ្លួន។

PHP កម្រិតដោយស្មោះត្រង់

គម្លាតជំនាន់ធំត្រូវបានសម្គាល់ថាមានកម្រិតខ្ពស់ព្រោះវាពិតជាអាចធ្វើឱ្យខូចគេហទំព័រមួយ; គម្លាតជំនាន់តូចត្រូវបានសម្គាល់ទាបជាង។ ការចាត់ថ្នាក់អ្វីៗគ្រប់យ៉ាងថាមានសារៈសំខាន់ខ្លាំងគឺគ្រាន់តែបង្រៀនមនុស្សឱ្យរំលងការព្រមានប៉ុណ្ណោះ។

ថាស និងចំនួនឯកសារ ដោយឡែកពីគ្នា

ដើមឈើ WordPress មួយមានចំនួនតូចរាប់ម៉ឺនឯកសារ ហើយគេហទំព័រមួយអាចអស់ការកំណត់ inode របស់ខ្លួន ខណៈពេលដែលនៅក្រោមដែនកំណត់ថាសរបស់វា។ ទាំងពីរត្រូវបានពិនិត្យធៀបនឹងអ្វីដែលពិតជាសល់នៅលើស្លុត មិនមែនធៀបនឹងកញ្ចប់នោះទេ។

«មិនអាចពិនិត្យបានទេ» គឺជាចម្លើយរបស់វាផ្ទាល់

ការពិនិត្យដែលមិនអាចមើលឃើញប្រធានបទរបស់វា រាយការណ៍ថាគ្មានការពិនិត្យ មិនដែលបានឆ្លងកាត់ឡើយ។ ការដំណើរការដ៏ស្អាតស្អំមួយ បង្ហាញពីចំនួនវត្ថុដែលវាពុំអាចផ្ទៀងផ្ទាត់បាន ពីព្រោះការបញ្ជាក់ថាត្រឹមត្រូវទាំងស្រុងបែបក្លែងក្លាយ គឺជាការបញ្ជាក់ដែលគ្មាននរណាមើលឡើងវិញជាលើកទីពីរឡើយ។

ព្រមាន មិនដែលប្លុកទេ

រាល់ការរកឃើញទាំងអស់អាចត្រូវបានបដិសេធដោយប្រើ --force ហើយសេចក្តីសង្ខេបក៏បង្ហាញដូចនោះដែរ។ នៅក្នុង CI លេខកូដចេញ (exit code) គឺជាច្រកទ្វារជំនួសវិញ ដូច្នេះបំពង់ διο (pipeline) អាចមានភាពតឹងរ៉ឹងខណៈពេលដែលមនុស្សនៅតែអាចគ្រប់គ្រងបាន។

រត់ការក្នុងស្រុកពីរ ដែលសុទ្ធតែពិតប្រាកដ

WordPress Playground គឺជាជម្រើសលំនាំដើម៖ PHP ដែលត្រូវ​បាន​ចងក្រង​ទៅជា WebAssembly កំពុងដំណើរការនៅក្នុង Node ដូច្នេះកុំព្យូទ័រយួរដៃដែលមានតែ Node ត្រូវបានដំឡើង គឺអាចប្ដូរពីគ្មានអ្វីសោះ ទៅជា WordPress ដែលកំពុងដំណើរការ ក្នុងរយៈពេលប្រហែលជាស្មើនឹងពេលដែលត្រូវអានប្រយោគនេះ។

នៅពេលដែលអ្នកត្រូវការ PHP ដើម ដែលជាកន្ទុយដូចជា imagick ដែលជា MySQL ពិតប្រាកដ — សូមបញ្ជូន --runtime docker ហើយជំនួសមកវិញនូវធុង php-fpm និង MariaDB ។ ទាំងពីរដំណើរការឯកសារដូចគ្នាពីគម្រោងតែមួយ ដូច្នេះការប្តូររវាងពួកវាគឺប្តូរតែម៉ាស៊ីនប៉ុណ្ណោះ ក្រៅពីនោះគ្មានអ្វីផ្លាស់ប្តូរឡើយ។

អ្វីៗផ្សេងទៀតដែលអ្នករួចជាស្រេចក្នុងការធ្វើនៅក្នុងផ្ទាំងគ្រប់គ្រង

Zinnector® ត្រូវបានបង្កើតឡើងនៅលើ API សាធារណៈដូចគ្នានឹងផ្ទាំងគ្រប់គ្រងដែរ ដូច្នេះអ្វីដែលផ្ទាំងគ្រប់គ្រងអាចធ្វើបាន វាក៏អាចធ្វើបានដែរ ហើយរាល់ពាក្យបញ្ជាគឺជាប្រតិបត្តិការដែលមានឯកសារយោងនៅក្នុងលក្ខណៈជាក់លាក់របស់ OpenAPI ជាជាងចំណុចបញ្ចប់ឯកជន។

គេហទំព័រ និងការដាក់ឱ្យដំណើរការ

រាយបញ្ជីគេហទំព័រ អានអ្វីៗទាំងអស់ដែលប្រព័ន្ធដឹងអំពីគេហទំព័រមួយ ចែកចាយឡើងវិញ និងអានប្រវត្តិសាស្រ្តនៃការចែកចាយ និងកំណត់ហេតុនៃការបង្កើត។

ដែន, DNS និងអ៊ីមែល

រាយបញ្ជីដែន អាន និងផ្លាស់ប្តូរទិន្នន័យកំណត់ត្រា DNS ជាមួយកំណត់ត្រាដែលបានបង្ហាញមុនពេលវាត្រូវបានសរសេរ និងអានសេវាកម្មអ៊ីមែលរបស់អ្នក។

PHP កូតា មូលដ្ឋានទិន្នន័យ និងកំណត់ហេតុ

ផ្លាស់ប្តូរជំនាន់ PHP, ពិនិត្យមើលការប្រើប្រាស់ថាស និង inode ធៀបនឹងអ្វីដែលគម្រោងរបស់អ្នកផ្តល់ជូន, ទទួលយកតំណភ្ជាប់ប្រើបានតែមួយលើកចូលទៅកាន់ phpMyAdmin, និងតាមដានកំណត់ត្រានៃការចូលប្រើប្រាស់ ព្រមទាំងកំណត់ត្រាកំហុស។

WP-CLI និងប្រតិបត្តិការច្រើន។

ដំណើរការបញ្ជា WP-CLI ដែលបានអនុញ្ញាតប្រឆាំងនឹងគេហទំព័រមួយ ហើយសម្អាតឃ្លាំងសម្ងាត់ ឬចាប់ផ្តើមការស្កេនមេរ៉ infección លើការជ្រើសរើសទាំងមូលក្នុងការហៅតែមួយជំនួសឱ្យមួយក្នុងមួយគេហទំព័រ។

Every command, exactly as --help lists it

The full list, one line each. The complete reference — every flag, a runnable example and what each command prints — is generated from the CLI itself and lives in the developer docs and the knowledge base, so it cannot drift from the tool you have installed.

zinnector new

Scaffold a WordPress project you can run immediately.

zinnector dev

Run this project locally — no Docker required.

zinnector login

Sign in with a Zinn Digital® API key.

zinnector logout

Forget a stored API key.

zinnector whoami

Show who this CLI is authenticated as.

zinnector sites

List the sites this key can see.

zinnector status

Everything the platform knows about one site.

zinnector share

Give one person access to a single site — a developer, a designer, a client — with a role and a reason.

zinnector collaborators

See who has been given access to a site, their role, and whether they have accepted yet.

zinnector unshare

Take a person's access back, by email or grant id.

zinnector invitations

The invitations waiting for you, and accept one.

zinnector link

Point this project at a hosting slot (and connect its repository).

zinnector pull

Pull a hosted site's files into this project for local development, and re-run to re-sync. Takes the fast path when the site syncs to its own repository, otherwise works from the latest backup.

zinnector clone

Make a local project from a hosted site in one step: clone its repository or pull its files, write the project file, and leave you ready to run zinnector dev.

zinnector check

Compare this project against the slot you are about to deploy to.

zinnector push

Pre-flight, push your commits, and deploy.

zinnector deploy

Redeploy what the platform already has, without pushing.

zinnector deploys

A site's deploy history.

zinnector php

Show or switch a site's PHP version.

zinnector quota

Disk, files and database usage against what the plan grants.

zinnector db

Database size, and single-use links into phpMyAdmin and the file manager.

zinnector logs

Tail a site's access and error logs.

zinnector wp

Run an allow-listed WP-CLI command on a site.

zinnector backup

List and take site backups. Subcommands: list, now.

zinnector domains

List the domains this key can see.

zinnector dns

Read and change DNS records. Subcommands: list, add, rm.

zinnector mail

List mail services.

zinnector bulk

Run one operation across many sites (cache_purge, malware_scan, sitemap, block_ip).

zinnector ai

Ask the Zinn Digital® assistant, with this project as context.

សំណួរ

តើខ្ញុំត្រូវក្លាយជាអតិថិជនរបស់ Zinn Digital® មុនពេលប្រើប្រាស់វាដែរឬទេ?

ទេ `zinnector new` និង `zinnector dev` មិនត្រូវការគណនីណាមួយឡើយ គឺអាចបង្កើតប្លាហ្គអ៊ីន ធីម ឬគេហទំព័រទាំងមូល ហើយដំណើរការវា secara ក្នុងមូលដ្ឋានដោយឥតគិតថ្លៃជារៀងរហូត។ សោ API គឺត្រូវការសម្រាប់តែពាក្យបញ្ជាដែលទាក់ទងនឹងការបង្ហោះរបស់អ្នកប៉ុណ្ណោះ។

តើវាត្រូវការ Docker ដែរឬទេ?

មិនមែនសម្រាប់ពេលរត់លំនាំដើមឡើយ។ WordPress Playground បង្កើត PHP ទៅជា WebAssembly ហើយដំណើរការក្នុង Node ដូច្នេះ `zinnector dev` អាចបើកដំណើរការ WordPress ពិតប្រាកដក្នុងពេលត្រឹមតែប៉ុន្មានវិនាទីប៉ុណ្ណោះដោយមិនចាំបាច់ដំឡើងអ្វីផ្សេងទៀតឡើយ។ ប្រសិនបើអ្នកត្រូវការ PHP ដើម ដើម្បីសាកល្បងផ្នែកបន្ថែមដូចជា imagick ឬ ionCube នោះ `--runtime docker` ផ្តល់ឱ្យអ្នកនូវកុងតឺន័រ php-fpm និង MariaDB ជំនួសវិញ។ ទាំងពីរត្រូវបានគាំទ្រ; គ្មានមួយណាជាជម្រើសបម្រុងទេ។

តើការពិនិត្យមុនពេលដំណើរការប្រៀបធៀបអ្វីខ្លះជាការពិត?

កំណែ PHP ក្នុងស្រុករបស់អ្នកធៀបនឹងកំណែរបស់រន្ធ (slot) តើទ្វាររន្ធអាចប្តូរទៅកំណែដែលអ្នកបានបង្កើតដែរឬទេ តើ PHP របស់រន្ធបានផុតកំណត់ជីវិតហើយឬនៅ និងថាតើម៉ាស៊ីនបានអនុវត្តវាពិតប្រាកដដែរឬទេ ទំហំគម្រោងរបស់អ្នក និងចំនួនឯកសារធៀបនឹងទំហំថាស និង inode ដែលនៅសល់ កំណែ WordPress នៅសងខាង តើការរៀបចំរន្ធបានបញ្ចប់ហើយឬនៅ និងថាតើឃ្លាំង git ត្រូវបានតភ្ជាប់ដើម្បីដាក់ឱ្យប្រើប្រាស់ដែរឬទេ។ អ្វីក៏ដោយដែលវាមិនអាចពិនិត្យបាន គឺត្រូវរាយការណ៍ថា មិនបានពិនិត្យ ជំនួសឱ្យការរាប់ថាបានឆ្លងកាត់។

តើវាអាចរារាំងខ្ញុំពីការដាក់ពង្រាយបានទេ?

ទេ ហើយនោះគឺជាចេតនា។ ការពិនិត្យមុនពេលបញ្ជូនចេញ (Pre-flight) ផ្ដល់ការព្រមាន និងអនុញ្ញាតឱ្យអ្នកបន្ត — `--force` ដាក់ពង្រាយឆ្លងកាត់រាល់ការរកឃើញ។ អ្នកដឹងពីចំណុចផ្សេងៗនៃគេហទំព័ររបស់អ្នក ដែលកម្មវិធីពិនិត្យមិនដឹង ហើយឧបករណ៍ដែលបដិសេធមិនព្រមដាក់ពង្រាយ គឺជាឧបករណ៍ដែលមនុស្សលុបចេញ។

តើគ្រាប់ចុច API របស់ខ្ញុំមានសុវត្ថិភាពដែរឬទេ?

គ្រាប់ចុចនេះមិនត្រូវបានអានពីបន្ទាត់បញ្ជាឡើយ — គឺអានតែពីប្រអប់បញ្ចូល ឬស្តង់ដារបញ្ចូលដែលបញ្ជូនបន្ត (piped stdin) ប៉ុណ្ណោះ — ដូច្នេះវាធានាថាមិនអាចស្ថិតនៅក្នុងប្រវត្តិសែលរបស់អ្នក ឬក្នុងបញ្ជីដំណើរការប្រព័ន្ធឡើយ។ វាត្រូវបានរក្សាទុកនៅក្នុងថតកំណត់រចនាសម្ព័ន្ធផ្ទាល់ខ្លួនរបស់អ្នកដែលមានទម្រង់ឯកសារ ៦០០ ហើយ Zinnector® ផ្ទៀងផ្ទាត់សិទ្ធិទាំងនោះឡើងវិញរាល់ពេលដែលវាសរសេរ។

តើខ្ញុំអាចប្រើវាទាបំផុតនៅក្នុង CI បានទេ?

បាទ/ចាស។ កំណត់ `ZINNECTOR_TOKEN` ហើយរាល់ពាក្យបញ្ជាទាំងអស់ទទួលយក `--json`។ ទិន្នផលសម្រាប់មនុស្សត្រូវបានបញ្ជូនទៅ stderr និងទិន្នផលទិន្នន័យទៅ stdout ដូច្នេះបំពង់ទុយោ (pipes) នៅតែស្អាត។ `zinnector check` ចេញពីកម្មវិធីដោយមិនមែនជាសូន្យនៅពេលវារកឃើញអ្វីមួយ ដូច្នេះវាដំណើរការជាច្រកទ្វារបំពង់ទុយោ ហើយ `--strict` ក៏បរាជ័យផងដែរនៅពេលដែលការប្រៀបធៀបមិនអាចធ្វើទៅរួច។

ដំឡើងវាហើយដំណើរការគេហទំព័រមួយក្នុងរយៈពេលមួយនាទីក្រោយ

ដំណើរការ npm install -g zinnector ឬសាកល្បងម្ដងជាមួយ npx zinnector new my-site។ ឥតគិតថ្លៃ មានអាជ្ញាប័ណ្ណ MIT និងបង្កើតឡើងនៅលើ API សាធារណៈ។ បង្កើតគម្រោងមួយ ដំណើរការវាក្នុងមូលដ្ឋានដោយគ្មាន Docker និងធ្វើការពិនិត្យជាមុនមុនពេលអ្នកដាក់ពង្រាយ។

អានឯកសារ