السلام عليكم،
سأشرح من خلال هذه التدوينة طريقة تهيئة بيئة تطوير PHP تعتمد على قاعدة
بينات postgresql (بدلا من قاعدة بيانات MySQL كما جرت العادة لدى
الكثيرين). أما عن أسباب اختيار posgresql فعديدة أهمها دعمها المتقدم
لمعايير SQL بالإضافة إلى أنها متوفرة تحت رخصة BSD (اضغط هنا للاطلاع على مقال يعرض تفاصيل أكثر عن postgresql).
الخطوات بسيطة وستكون كالتالي.
ملحوظة: جمعتُ الأوامر الواردة في هذه التدوينة في ملف نصي هنا حتى يمكن نسخها ثم لصقها دون مشاكل. النسخ من المتصفح قد يغير بعض الرموز. الأفضل النسخ من الملف النصي.
تثبيت قاعدة بيانات postgresql
نفذ الأمر التالي (يجب أن تكون لديك صلاحيات root) لتثبيت آخر إصدر من قاعدة البيانات، 9.1.8 أثناء كتابة هذه السطور،
sudo apt-get install postgresql
ثم نثبت pgadmin3 وهي واجهة رسومية لإدارة خادم postgresql عبر الأمر
sudo apt-get install pgadmin3
واجهة pgAdmin III لإدارة قواعد بيانات PostGreSQL
نثبت خادم أباتش وحزم PHP5
للتذكير Apache هو خادم وب حر ومفتوح المصدر
تستخدمه الكثير من المواقع ويقدم العديد من الميزات. إذا كنت تريد تجربة
تطوير صفحات بي أتش بي فسيكون ضروريا لك تثبيت خادم وب يُفسر سكربتات PHP
ويحولها إلى صفحات HTML يرسلها لمتصفح المستخدم لعرضها.
الأمر التالي يثبت واجهة phpPgAdmin لإدارة قاعدة البيانات عن طريق واجهة
وب (مماثل لعمل phpmyadmin مع قاعدة بيانات MySQL). ليس هذا فقط، بل إنه
يُثبت أيضا خادم أباتش وآخر إصدارات PHP.
sudo apt-get install phppgadmin
بهذا نكون أنهينا المرحلة الأولى وهي تثبيت الأدوات. نكمل مع الإعدادات.
ما سنقوم به الآن هو إعداد خادم postgresQL
حتى يمكننا الدخول إليه من الخادم المحلي (localhost). انتبه لمسار الملف
إذ أنه يحوي مجلدا باسم رقم الإصدار، 9.1 في حالتي
gksudo gedit /etc/postgresql/9.1/main/postgresql.conf
بعد فتح الملف أضف السطر التالي في آخره
listen_addresses = 'localhost'
احفظ الملف ثم أغلقه. نفذ الأمر التالي بعد حفظ التغييرات في الملف المفتوح وإغلاقه
gksudo gedit /etc/postgresql/9.1/main/pg_hba.conf
إذا كان يوجد سطر “local all all ident sameuser” أبدله بالسطر التالي (إن لم يكن السطر المذكور موجودا أضف السطر التالي في نهاية الملف)
local all all md5
احفظ الملف ثم أغلقه.
إعداد phpPgAdmin
واجهة phpPgAdmin
في الخطوة السابقة ثبتنا واجهة phpPgAdmin. الآن سنقوم بإعدادها للعمل مع خادم أباتش، لذا نفذ الأمر لفتح ملف إعداد الخادم.
gksudo gedit /etc/apache2/apache2.conf
اذهب لآخر الملف وأضف ما يلي في سطر جديد
Include /etc/phppgadmin/apache.conf
لقد أنهينا الإعدادت، أعد تشغيل Apache و
PostGreSQL عبر الأمرين التاليين لأخذ الإعدادت بالاعتبار.(انتبه للأمر
الثاني إذ أنه قد يحوي رقم إصدار PostGreSQL، اكتب المسار
/etc/init.d/postgresql ثم استخدم زر Tab على يسار لوحة المفاتيح لتشغيل
الإكمال التلقائي )
sudo /etc/init.d/apache2 restart
sudo /etc/init.d/postgresql restart
المجلد الذي يجب وضع السكربتات فيه ليُفسرها خادم أباتش هو var/www/
حيث يوجد بشكل افتراضي ملف index.html يعرض عند الدخول لعنوان أباتش.
يمكنك تغييره. شخصيا أقوم بوضع صفحة تحوي سكريبت PHP يعرض محتويات المجلد
حتى يمكنني الوصول إلى مختلف المشاريع بسهولة.
إذا رغبتَ في فعل نفس الشيء إليك السكربت (احفظه باسم index.php وغير اسم الملف index.html إلى indexA.html على سبيل المثال).
<?php
$dirname = getcwd();
$dir = opendir($dirname);
while($file = readdir($dir)) {
if($file != ‘.’ && $file != ‘..’ && !is_dir($dirname.$file)) {
echo ‘- <a href=”‘.$file.’”>’.$file.’</a>’.'<br /><br />’;
}
}
closedir($dir);
?>
خطوات أخرى ليست ضرورية ولكنها مفيدة وأنصح بتنفيذها.
تغيير كلمة مرور المستخدم root ل PostGreSQL.
المستخدم root الذي أتحدث عنه هنا هو
المستخدم الأعلى SuperUser لخادم PostGreSQL وليس مستخدم النظام. المستخدم
الجذر ل PostGreSQL هو postgres ويأتي بشكل افتراضي دون كلمة مرور. الأمر
التالي يحدد كلمة مرور لهذا المستخدم. (حيث password هي كلمة المرور. ضع
كلمة المرور التي تختارها مكانها دون حذف الظفرين ‘ ‘)
sudo -u postgres psql template1
ALTER USER postgres with encrypted password ‘password’;
\q
إنشاء مستخدم جديد في PostGreSQL
لإنشاء مستخدم جديد باسم username ننفذ الأمر
(اختر اسم مستخدم مناسبا لك). بعد تنفيذ الأمر سيُطلب منك إدخال كلمة مرور
ثم تأكيدها بعدها سيسألك إن كنت تريد إعطاء صلاحيات “المستخدم الأعلى”
SuperUser للمستخدم الجديد، أدخل y لإعطاء تلك الصلاحيات أو n لإنشاء
مستخدم عادي.
sudo -u postgres createuser -d -R -P username
كما يمكنك إنشاء قاعدة بيانات جديدة وجعل المستخدم الجدية مالكا لها عبر
الأمر (حيث database_name اسم قاعدة البيانات و username اسم المستخدم
الذي أنشأته بالأمر السابق).
sudo -u postgres createdb -O username database_name
الجدير بالذكر هنا أنه بالإمكان القيام بهذه
الأمور – إنشاء مستخدمين، إنشاء قواعد بيانات وأمور أخرى – بطرق عدة.
إحداها سطر الأوامر كما رأينا أو الواجهة الرسومية pgadmin أو واجهة وب
phpPgAdmin. أنتَ وما تختار
أترككم على أمل أن تكون هذه التدوينة أفادتكم.