الهدف
يشرح هذا المقال كيفية تثبيت PmaControl على Debian 12 بناءً على مصادر المشروع الرسمية، مع مراعاة نقطة عملية مهمة:
- ويكي Debian 12 نقطة إلى
install/debian12.sh - يقوم هذا البرنامج النصي باستنساخ مستودع
PmaControlافتراضيًا - إذا كنت تريد صراحةً الفرع
commercial، فيجب عليك تعديل خطوة الاستنساخ أو تنفيذcheckoutبعد ذلك مباشرة
وبالتالي فإن الفكرة هي الحفاظ على المنطق الرسمي للمشروع، ولكن لجعله قابلاً للاستخدام بشكل صحيح لتثبيت Debian 12 الحالي.
المصادر المستخدمة:
- جيثب ويكي
PmaControl/PmaControl - المستودع
PmaControl/PmaControlفرعcommercial - النص
install/debian12.sh - البرنامج النصي الجذر
install.sh - توثيق فرع
commercial
ما يفعله التثبيت الرسمي
وفقًا لموقع wiki Debian 12، التثبيت القياسي هو:
apt-get install curl
curl -o install-pmacontrol https://raw.githubusercontent.com/PmaControl/PmaControl/master/install/debian12.sh
chmod +x install-pmacontrol
./install-pmacontrol
يقوم البرنامج النصي install/debian12.sh للفرع commercial بما يلي بشكل أساسي:
- يقوم بتحديث النظام
- تثبيت الأدوات الأساسية
- تثبيت MariaDB
10.11 - تثبيت Apache وPHP
8.2وComposer وGraphviz وبعض التبعيات - استنساخ مستودع PmaControl إلى
/srv/www/pmacontrol - يعمل
composer installكـwww-data - قم بإنشاء حساب MySQL
pmacontrol@127.0.0.1محلي - ينشئ
config.jsonمؤقتًا - تطلق
./install.sh -c /tmp/config.json - يعرض المعرفات التي تم إنشاؤها
الإصدارات والمكونات التي تمت ملاحظتها في المصادر
يستهدف البرنامج النصي Debian 12 للفرع commercial هذه القاعدة:
- MariaDB
10.11-أباتشي 2 - PHP
8.2 - يؤلف -جراففيز
- البرنامج المساعد RocksDB لـ MariaDB
حزم PHP المثبتة بشكل صريح:
php8.2،php8.2-mysql،php8.2-ldap،php-json،php8.2-curlphp8.2-cli،php8.2-mbstring،php8.2-intl،php8.2-fpmlibapache2-mod-php8.2،php8.2-gd،php8.2-xml،php8.2-gmp
المتطلبات الأساسية الموصى بها
قبل البدء في التثبيت، قم بالتخطيط لما يلي:
- نظيفة Debian 12
- الوصول إلى الجذر
- DNS الوظيفي والشبكة الصادرة
- ما لا يقل عن 4 جيجابايت من ذاكرة الوصول العشوائي
- مساحة قرص كافية لتبعيات MariaDB و
/srv/www/pmacontrolوالملحن
أوصي أيضًا بإعداد:
- اسم المضيف الصحيح
- IP ثابت
- منطقة زمنية ثابتة
- مخزن مخصص لـ MariaDB إذا كان الجهاز يجب أن يشرف على العديد من الخوادم
نقطة مهمة في فرع commercial
يعتبر موقع ويكي Debian 12 بسيطًا. إنه يرتبط بالبرنامج النصي install/debian12.sh، ولكن هذا البرنامج النصي يستنسخ المستودع الرئيسي ببساطة دون القيام بما يلي بشكل صريح:
git checkout commercial
إذا كان هدفك هو بالفعل الفرع commercial، فافعل بدلاً من ذلك:
apt-get update
apt-get install -y curl git
cd /tmp
curl -o install-pmacontrol https://raw.githubusercontent.com/PmaControl/PmaControl/commercial/install/debian12.sh
chmod +x install-pmacontrol
ثم، قبل مرحلة composer install، استبدل جزء الاستنساخ بما يلي:
mkdir -p /srv/www
cd /srv/www
git clone --branch commercial --single-branch https://github.com/PmaControl/PmaControl.git pmacontrol
cd /srv/www/pmacontrol
يعد هذا التعديل هو الأنظف إذا كنت تريد بالفعل تثبيت الكود commercial.
الإجراء الموصى به
1. تحضير Debian 12
apt-get update
apt-get -y upgrade
apt-get install -y curl git sudo lsb-release unzip zip wget gnupg gnupg2 net-tools dnsutils jq bc composer cron
timedatectl set-timezone Europe/Paris
لماذا cron صراحة: install.sh يستخدم crontab. على جهاز Debian ذو الحد الأدنى، قد يؤدي غياب cron إلى قطع نهاية التثبيت. لم يتم تناول هذه النقطة بشكل صريح في install/debian12.sh، ولكنها تنبثق من منطق install.sh.
2. قم بتثبيت MariaDB 10.11
يقوم البرنامج النصي Debian 12 الرسمي بتكوين مستودع MariaDB ثم يستدعي Toolkit/install-mariadb.sh:
cd /tmp
git clone https://github.com/PmaControl/Toolkit.git
cd Toolkit
chmod +x install-mariadb.sh
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | bash -s -- --mariadb-server-version="mariadb-10.11"
./install-mariadb.sh -v 10.11 -p '<mot_de_passe_root_sql>' -d /srv/mysql -r
نقاط يجب ملاحظتها:
- تم ضبط datadir على
/srv/mysql - يستخدم البرنامج النصي MariaDB، وليس MySQL
- ثم يتم إعادة تشغيل الخدمة
3. قم بتثبيت Apache وPHP 8.2 والتبعيات
لا يزال وفقًا لـ install/debian12.sh:
apt-get install -y \
php8.2 apache2 php8.2-mysql php8.2-ldap php-json php8.2-curl \
php8.2-cli php8.2-mbstring php8.2-intl php8.2-fpm \
libapache2-mod-php8.2 php8.2-gd php8.2-xml php8.2-gmp
apt-get install -y graphviz libcairo2 mariadb-plugin-rocksdb
ثم :
mysql -e "INSTALL SONAME 'ha_rocksdb'"
a2enmod proxy_fcgi setenvif
a2enconf php8.2-fpm
a2enmod rewrite
إعداد المنطقة الزمنية PHP:
sed -i 's#;date.timezone =#date.timezone = Europe/Paris#g' /etc/php/8.2/fpm/php.ini
sed -i 's#;date.timezone =#date.timezone = Europe/Paris#g' /etc/php/8.2/apache2/php.ini
sed -i 's#;date.timezone =#date.timezone = Europe/Paris#g' /etc/php/8.2/cli/php.ini
4. قم بتكييف Apache مع /srv/www
يستبدل البرنامج النصي Debian 12 جذر الويب Apache القياسي بـ /srv/www:
sed -i 's#/var/www#/srv/www#g' /etc/apache2/apache2.conf
sed -i 's#/var/www/html#/srv/www#g' /etc/apache2/sites-enabled/000-default.conf
awk '/AllowOverride/ && ++i==3 {sub(/None/,"All")}1' /etc/apache2/apache2.conf > /tmp/xfgh
mv /tmp/xfgh /etc/apache2/apache2.conf
ثم :
mkdir -p /srv/www
systemctl restart apache2
النقطة الأساسية هنا: PmaControl ينتظر أن يتم تقديمه ضمن /srv/www/pmacontrol وسيكون webroot الذي أنشأه المشروع هو /pmacontrol/.
5. انسخ PmaControl إلى فرع `commercial
`
bash
mkdir -p /srv/www
cd /srv/www
git clone --branch commercial --single-branch https://github.com/PmaControl/PmaControl.git pmacontrol
cd /srv/www/pmacontrol
chown -R www-data:www-data /srv/www/pmacontrol
chown -R www-data:www-data /var/www
sudo -u www-data composer install
لماذا أفضّل هذا التسلسل:
- يلتصق بالفرع المطلوب
- يتجنب تثبيت حالة أخرى للمستودع الافتراضي
- يظل متوافقًا مع التدفق المخطط له بواسطة
install.sh
6. قم بإنشاء حساب MySQL المحلي لـ PmaControl
يقوم البرنامج النصي الرسمي بإنشاء:
GRANT ALL ON *.* TO pmacontrol@'127.0.0.1' IDENTIFIED BY '<mot_de_passe>' WITH GRANT OPTION;
أوصي أيضًا بإضافة localhost لتجنب المفاجآت اعتمادًا على وضع الاتصال:
CREATE OR REPLACE USER 'pmacontrol'@'127.0.0.1' IDENTIFIED BY '<mot_de_passe>';
CREATE OR REPLACE USER 'pmacontrol'@'localhost' IDENTIFIED BY '<mot_de_passe>';
GRANT ALL PRIVILEGES ON *.* TO 'pmacontrol'@'127.0.0.1' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'pmacontrol'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
7. قم بإعداد ملف config.json
يقوم البرنامج النصي install/debian12.sh بإنشاء config.json مؤقت. هيكلها مهم لأن install.sh يستخدمها لتحديد القاعدة وإنشاء المؤسسة وحساب المسؤول وحساب خدمة الويب وتكوين webroot.
مثال عملي:
{
"mysql": {
"ip": "127.0.0.1",
"port": 3306,
"user": "pmacontrol",
"password": "CHANGE_ME_DB_PASSWORD",
"database": "pmacontrol"
},
"organization": ["68Koncept"],
"webroot": "/pmacontrol/",
"ldap": { "enabled": false },
"user": {
"Member": null,
"Administrator": null,
"Super administrator": [{
"email": "admin@example.net",
"firstname": "Admin",
"lastname": "PmaControl",
"country": "France",
"city": "Paris",
"login": "admin",
"password": "CHANGE_ME_ADMIN_PASSWORD"
}]
},
"webservice": [{
"user": "webservice",
"host": "%",
"password": "CHANGE_ME_WEBSERVICE_PASSWORD",
"organization": "68Koncept"
}]
}
أنصحك بعدم استخدام كتلة ssh المحقونة في بعض النصوص التاريخية كما هي، ما لم تكن هناك حاجة واضحة ومفتاح متحكم فيه.
8. ابدأ تثبيت التطبيق
من المستودع المستنسخ:
cd /srv/www/pmacontrol
./install.sh -c /tmp/config.json
وفقًا لـ install.sh، يقوم هذا الأمر بما يلي:
- جيل
configuration/webroot.config.php - تهيئة القاعدة
- إنشاء المنظمة
- إنشاء المشرف المتميز
- تكامل LDAP إذا تم تمكينه
- إنشاء حساب خدمة الويب
- إنشاء جداول TS
- تحديث قائمة الخادم
- إنشاء النموذج وذاكرة التخزين المؤقت
- تركيب كرونز النظام
9. فهم ما يعدله install.sh
يعد البرنامج النصي الجذري مهمًا لأنه يفعل أكثر من مجرد "التثبيت". هو:
- نسخ الملفات من
config_sample/إلىconfiguration/ - يولد
configuration/db.config.ini.php - يولد
configuration/db.config.php - يولد
configuration/webroot.config.php - يضع الحقوق على
tmp/وdata/ - تثبيت crontab لـ
www-data - تثبيت crontab لـ
root - قم بتشغيل
composer installإذا لزم الأمر
أمثلة على وظائف كرون المضافة:
cron
* * * * * cd /srv/www/pmacontrol && ./glial agent check_daemon
05 */4 * * * cd /srv/www/pmacontrol && ./glial control service
* * * * * cd /srv/www/pmacontrol/script && ./monitor_mysql.sh
10. تأكد من صحة التثبيت
الخدمات:
systemctl is-active mariadb
systemctl is-active apache2
systemctl is-active php8.2-fpm
systemctl is-active cron
الإصدارات:
php -v
mysql -Nse "SELECT VERSION()"
apache2 -v
HTTP:
curl -I http://127.0.0.1/pmacontrol/
يجب أن تحصل على وحدة تحكم أمامية مستجيبة، غالبًا مع إعادة توجيه إلى:
text
/pmacontrol/en/server/main
ملفات التكوين المتوقعة:
configuration/db.config.ini.phpconfiguration/db.config.phpconfiguration/webroot.config.phpconfiguration/crypt.config.phpconfiguration/auth.config.php
11. تحقق من تكوين قاعدة البيانات
تقوم وحدة التحكم بالتثبيت بكتابة ملف من هذا النوع إلى configuration/db.config.ini.php:
[pmacontrol]
driver=mysql
hostname=127.0.0.1
user=pmacontrol
password='...'
crypted='1'
database=pmacontrol
ssl=0
هذه النقطة مهمة: اسم الاتصال الذي يستخدمه إطار العمل هو pmacontrol. إذا كان هذا الملف فارغًا أو معطلاً، فلن يبدأ التطبيق بشكل صحيح.
12. نقاط اليقظة
1. إن موقع wiki Debian 12 قصير جدًا عمدًا. فهو يوفر نقطة الدخول، وليس تفاصيل جميع المكونات. لذلك يجب عليك قراءة البرنامج النصي install/debian12.sh وinstall.sh لفهم ما تم تثبيته بالفعل.
2. لا يتم ضمان الفرع commercial تلقائيًا بواسطة اختصار wiki. إذا كنت تريد الفرع commercial، فقم باستنساخه بشكل صريح.
3. يجب أن يكون cron موجودًا. وهذا مطلب عملي لـ install.sh. أنا أعتبره شرطًا أساسيًا فعليًا، على الرغم من أن البرنامج النصي Debian 12 لا يقوم بتثبيته بشكل صريح.
4. تتم إعادة كتابة Apache إلى /srv/www. إذا كان الجهاز يحتوي بالفعل على استضافة موجودة، فمن المحتمل أن يكون هذا التغيير تدخليًا.
5. يتلقى الحساب SQL pmacontrol ALL PRIVILEGES. هذا هو سلوك البرنامج النصي. إذا كنت تريد المعالجة بعد ذلك، فافعل ذلك بعد التثبيت، عندما تعرف النطاق الدقيق لاحتياجات التطبيق.
إجراء مضغوط
نسخة قصيرة ونظيفة للتثبيت السريع:
apt-get update && apt-get -y upgrade
apt-get install -y curl git sudo composer cron
cd /tmp
git clone https://github.com/PmaControl/Toolkit.git
cd Toolkit
curl -LsS https://r.mariadb.com/downloads/mariadb_repo_setup | bash -s -- --mariadb-server-version="mariadb-10.11"
./install-mariadb.sh -v 10.11 -p 'RootDbStrongPassword' -d /srv/mysql -r
apt-get install -y \
apache2 php8.2 php8.2-fpm libapache2-mod-php8.2 \
php8.2-mysql php8.2-ldap php8.2-curl php8.2-cli \
php8.2-mbstring php8.2-intl php8.2-gd php8.2-xml php8.2-gmp \
graphviz libcairo2 mariadb-plugin-rocksdb
mysql -e "INSTALL SONAME 'ha_rocksdb'"
a2enmod proxy_fcgi setenvif rewrite
a2enconf php8.2-fpm
sed -i 's#/var/www#/srv/www#g' /etc/apache2/apache2.conf
sed -i 's#/var/www/html#/srv/www#g' /etc/apache2/sites-enabled/000-default.conf
mkdir -p /srv/www
systemctl restart apache2
cd /srv/www
git clone --branch commercial --single-branch https://github.com/PmaControl/PmaControl.git pmacontrol
cd /srv/www/pmacontrol
chown -R www-data:www-data /srv/www/pmacontrol
sudo -u www-data composer install
mysql <<'SQL'
CREATE OR REPLACE USER 'pmacontrol'@'127.0.0.1' IDENTIFIED BY 'ChangeMeDbPassword';
CREATE OR REPLACE USER 'pmacontrol'@'localhost' IDENTIFIED BY 'ChangeMeDbPassword';
GRANT ALL PRIVILEGES ON *.* TO 'pmacontrol'@'127.0.0.1' WITH GRANT OPTION;
GRANT ALL PRIVILEGES ON *.* TO 'pmacontrol'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
SQL
cat >/tmp/config.json <<'JSON'
{
"mysql": {
"ip": "127.0.0.1",
"port": 3306,
"user": "pmacontrol",
"password": "ChangeMeDbPassword",
"database": "pmacontrol"
},
"organization": ["68Koncept"],
"webroot": "/pmacontrol/",
"ldap": { "enabled": false },
"user": {
"Member": null,
"Administrator": null,
"Super administrator": [{
"email": "admin@example.net",
"firstname": "Admin",
"lastname": "PmaControl",
"country": "France",
"city": "Paris",
"login": "admin",
"password": "ChangeMeAdminPassword"
}]
},
"webservice": [{
"user": "webservice",
"host": "%",
"password": "ChangeMeWebservicePassword",
"organization": "68Koncept"
}]
}
JSON
./install.sh -c /tmp/config.json
الخلاصة
بالنسبة إلى Debian 12، تكون القاعدة الوثائقية الرسمية PmaControl كافية إذا قرأنا معًا الويكي Debian 12، install/debian12.sh، install.sh وتوثيق الفرع commercial.
منطق التثبيت الحقيقي بسيط:
- MariaDB
10.11 - أباتشي + PHP
8.2 - قم بإيداع PmaControl تحت
/srv/www/pmacontrol composer install- حساب SQL محلي
pmacontrol config.json./install.sh -c ...
إذا كان الهدف هو الفرع commercial، فإن النقطة الأكثر أهمية هي فرض استنساخ هذا الفرع بشكل صريح بدلاً من اتباع اختصار wiki بشكل أعمى.
تعليقات (0)
لا توجد تعليقات حتى الآن.
اترك تعليقا