តើអ្នកណាមិនធ្លាប់ជួបប្រទះរឿងនេះ៖ អ្នកត្រូវទាញយកអ្វីមួយយ៉ាងរហ័សនៅលើកញ្ចប់បង្ហោះដែលបានចែករំលែកថោក (ឧទាហរណ៍ ពី 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 សម្រាប់ការធ្វើសមកាលកម្មមូលដ្ឋានទិន្នន័យផងដែរ។