Git ដោយគ្មាន SSH

តើអ្នកណាមិនធ្លាប់ជួបប្រទះរឿងនេះ៖ អ្នកត្រូវទាញយកអ្វីមួយយ៉ាងរហ័សនៅលើកញ្ចប់បង្ហោះដែលបានចែករំលែកថោក (ឧទាហរណ៍ ពី IONOS)។ git pull អ្នកប្រហែលជាចង់ដំណើរការកម្មវិធី ឬប្រើប្រាស់មូលដ្ឋានទិន្នន័យ ប៉ុន្តែអ្នកផ្តល់សេវាបង្ហោះរបស់អ្នកមិនផ្តល់សិទ្ធិចូលប្រើ SSH ទេ - ឬមានតែនៅក្នុងផែនការថ្លៃជាងប៉ុណ្ណោះ។ ជាញឹកញាប់ ជម្រើសតែមួយគត់ដែលនៅសល់គឺដំណើរការដ៏ធុញទ្រាន់នៃការផ្ទុកឡើងឯកសារដោយដៃតាមរយៈ FTP ដែលធ្វើឱ្យការដាក់ពង្រាយមានភាពស្មុគស្មាញដោយមិនចាំបាច់ និងងាយនឹងកើតមានកំហុស។


ដំណោះស្រាយមួយដែលអាចធ្វើទៅបានគឺត្រូវម៉ោនប្រព័ន្ធឯកសារតាមរយៈ sshfs. តាមទ្រឹស្តី នេះស្តាប់ទៅល្អ៖ អ្នកម៉ោនថតឯកសារពីចម្ងាយនៅក្នុងមូលដ្ឋាន ហើយដំណើរការដូចជាឯកសារនៅលើម៉ាស៊ីនផ្ទាល់ខ្លួនរបស់អ្នក។ ដើម្បីធ្វើដូចនេះ អ្នកគ្រាន់តែបង្កើតថតឯកសារក្នុងស្រុក ហើយភ្ជាប់វាទៅម៉ាស៊ីនមេតាមរយៈអ្នកប្រើប្រាស់ FTP/SSH។ ពាក្យបញ្ជាចាំបាច់ដើម្បីបង្កើតការតភ្ជាប់ និងរៀបចំ Git សម្រាប់ថតឯកសារនេះមើលទៅដូចនេះនៅក្នុង Linux៖:

sudo apt-get install sshfs
mkdir /var/www/remote
cd /var/www/remote
sshfs username@your.host:/ -p 22 /var/www/remote
git config --global --add safe.directory /var/www/remote
git status
...
umount /var/www/remote

បញ្ហា៖ ដំណើរការគឺអន់ណាស់។ ដោយសារតែ Git ជួបការលំបាកជាមួយពាក្យបញ្ជាដូចជា git status នៅពេលអនុវត្តប្រតិបត្តិការឯកសារតូចៗរាប់ពាន់ ដែលប្រតិបត្តិការនីមួយៗតម្រូវឱ្យមានការចូលប្រើបណ្តាញ ជារឿយៗមនុស្សម្នាក់ត្រូវរង់ចាំប៉ុន្មាននាទីសម្រាប់ការឆ្លើយតបសាមញ្ញបំផុត។ ការងារដែលមានផលិតភាពគឺស្ទើរតែមិនអាចទៅរួចទេក្នុងកាលៈទេសៈទាំងនេះ។ ជាពិសេសនៅក្នុងគម្រោងដែលមានការពឹងផ្អែកច្រើន ស្ថានីយជារឿយៗគាំងទាំងស្រុង ដែលបង្ខំឱ្យអ្នកប្រើប្រាស់ដែលខកចិត្តបោះបង់ចោលដំណើរការនេះ។

មានបណ្ណាល័យដូចជា ftpsh សម្រាប់សេណារីយ៉ូនេះ។ បណ្ណាល័យធ្វើឱ្យវាអាចធ្វើទៅបានដើម្បីប្រតិបត្តិពាក្យបញ្ជាសែលនៅលើម៉ាស៊ីនមេពីចម្ងាយដែលផ្តល់តែការចូលប្រើ (S) FTP និង HTTP ប៉ុណ្ណោះ។ ល្បិច៖ ស្គ្រីប PHP ត្រូវបានផ្ទុកឡើងជាបណ្ដោះអាសន្ន ដែលប្រតិបត្តិពាក្យបញ្ជាដែលបានផ្ដល់ឱ្យ និងត្រឡប់លទ្ធផល។ ទាំងអស់នេះកើតឡើងនៅក្នុងផ្ទៃខាងក្រោយ ប៉ុន្តែមានអារម្មណ៍ថាដូចជាសំបកពិត។

ការដំឡើងគឺរហ័ស និងងាយស្រួល។:

mkdir ftpsh
cd ftpsh
wget -O ftpsh.sh https://raw.githubusercontent.com/vielhuber/ftpsh/main/ftpsh.sh
chmod +x ftpsh.sh

បន្ទាប់មកយើងដាក់មួយ .env ជាមួយទិន្នន័យចូលប្រើ (S)FTP ទៅ:

HOST=your-server.com
PORT=22
USERNAME=your-username
PASSWORD=your-password
REMOTE_PATH="/"
WEB_URL="https://your-server.com"

ឥឡូវនេះ យើងអាចប្រតិបត្តិពាក្យបញ្ជាណាមួយនៅលើម៉ាស៊ីនមេបាន ដោយផ្តល់ថាឧបករណ៍ទាំងនោះអាចរកបានពីចម្ងាយ។:

ftpsh git status
ftpsh "mysqldump -h xxx --port 3306 -u xxx -p\"xxx\" --routines xxx" > dump.sql

ស្គ្រីប​ផ្ទុក​ឡើង​អ្នក​ធ្វើការ​នៅ​ក្នុង​ផ្ទៃ​ខាង​ក្រោយ ដំណើរការ​ពាក្យ​បញ្ជា​ក្នុង​មូលដ្ឋាន​លើ​ម៉ាស៊ីន​មេ (ដែល​វា​លឿន) ហើយ​ត្រឡប់​លទ្ធផល។ នេះអនុញ្ញាតឱ្យការដាក់ពង្រាយ ការបោះចោលមូលដ្ឋានទិន្នន័យ ឬប្រតិបត្តិការ Git ដោយស្វ័យប្រវត្តិប្រកបដោយប្រសិទ្ធភាព ទោះបីជានៅលើបរិស្ថានបង្ហោះមានកំណត់ក៏ដោយ។ ឧទាហរណ៍ វាក៏ដំណើរការយ៉ាងល្អឥតខ្ចោះជាមួយ syncdb សម្រាប់ការធ្វើសមកាលកម្មមូលដ្ឋានទិន្នន័យ។

ថយក្រោយ