النتائج 1 إلى 12 من 12

الموضوع: إعطاء كل عميل عنوان إتصال مستقل لقاعدة البيانات, إلى المهندس الكبير العندليب... تفضل

  1. #1

    إعطاء كل عميل عنوان إتصال مستقل لقاعدة البيانات, إلى المهندس الكبير العندليب... تفضل



    بسم الله الرحمن الرحيم
    السلام عليكم ورحمة الله وبركاته


    قمنا بالحديث في موضوع "تلغيم القوالب + تلغيم الستايلات" بخصوص إعطاء كل عميل عنوان إتصال مستقل لقاعدة البيانات كما هو موضح هنا:
    http://www.swalif.net/softs/showpost...3&postcount=75

    وتم إنشاء هذا الموضوع كي يتم تفصيل هذا الأمر من قبل أستاذنا ومهندسنا الكبير "العندليب".


    في إنتظارك يا "العندليب" في التفضل ووضع بصمتك الكبيره التي لا تنسى هنا.


    خالص الدعاء والشكر لك,
    العطاء







  2. #2


    السلام عليكم ورحمة الله وبركاته

    بداية أقدم شكري لأخي العطاء على فتح النقاش وفي موضوعنا اليوم عدة أمور يجب أن تتضح قبل البدء بأي تسائلات.

    أولاً:
    هذا الموضوع يتم تطبيقه في الإستضافات المشتركه ولا داعي لتطبيقه للسرفرات الخاصه التي تحمل موقعاً واحد .

    ثانياً:
    هذا الموضوع يفيد القائمين على الإستضافه المشتركه لأنه بيدهم الحل والربط في هذا الموضوع.

    ثالثاً:
    المستضيف الذي يستخدم cpanel ولوحات التحكم المشهوره لن يستفيد من هذا الموضوع لأنه يتطلب عليه أن يقوم بتعديل في قوالب الـ cpanel وبرمجياتها حتى تتوافق مع الطرق التي سنذكرها .


    نبدأ على بركة الله
    في الحقيقه هناك أكثر من طريقه لجعل العميل يتصل بقواعده فقط دون الاتصال بأي قواعد أخرى لعميل أخر لذلك لن أتطرق في كلامي عن كل الطرق وسأكتفي بطريقه واحده ونرى مداخلاتكم وتعليقاتكم عليها وماهي العيوب والمميزات في هذه الطريقه.

    -----------------------------------------------------

    الطريقه الأولى : حماية العملاء بواسطة ملفات my.cnf و php.ini
    في هذه الطريقه يتم إنشاء ملف بإسم my.cnf في الجذر المعمول لمساحة العميل /home/cust1/my.cnf ويتم وضع بيانات محدده لإجبار العميل بأن لا يتصل بخادم mysql إلا بإستخدام هذه البيانات.


    خطوات العمل:
    1- قم بإنشاء ملف my.cnf في مساحة كل عميل وقم بإعطائه صلاحيات 740 ويكون الملف هو اليوزر mysql وتكون المجموعه هي يوزر العميل مثل
    كود:
    -rwxr-----     mysql      cust1                       my.cnf
    2- قم بإضافة البيانات التاليه لهذا الملف:
    كود:
    user=dbusercust1
    password=*************
    host=localhost1.sitecust1.com
    dbusercust1: هو اليوزر الخاص بالعميل للإتصال بقواعد بياناته.
    password: هو الباسوورد الخاص باليوزر المخصص للإتصال بالقواعد.
    localhost1.sitecus1.com: هو العنوان الداخلي المعطى للعميل ويتم وضع إعدادات هذا العنوان بإعدادات الـ DNS الخاص بالموقع حسب الشكل التالي:
    كود:
    localhost                      A      127.0.2.11
    ملاحظه:
    يجب وضع عنوان مختلف لكل عميل فالعنوان الذي ذكرته 127.0.2.11 لن أقوم بإعطائه لعميل اخر.


    3- فتح ملف php.ini وإضافة الأسطر التاليه:
    كود:
    sql.safe_mode = 1
    mysql.max_persistent = 100
    mysql.max_links = 10
    ملاحظه:
    هذا تأمين للـ php فقط وتحديد أقصى عدد للإتصالات لجميع العملاء 1000 اتصال فعّال.


    4- الاتصال بقاعدة mysql بحساب الـ root عن طريق الـ phpMyAdmin وعمل الاتي:
    (أ) - التعديل على حقل host في جدول db ووضع العنوان localhost.sitecust1.com ليوزر الاتصال الخاص بالعميل وهذه تتم حسب الجمله التاليه:
    كود:
    UPDATE db SET host='localhost.sitecust1.com' WHERE user LIKE 'dbusercust1%'
    (ب) التعديل على حقل host في جدول user ووضع العنوان localhost.sitecust1.com ليوزر الاتصال الخاص بالعميل وهذه تتم حسب الجمله التاليه:
    كود:
    UPDATE user SET host='localhost.sitecust1.com' WHERE user LIKE 'dbusercust1%'
    انتهى


    أتمنى أنني لم أنسى شيئاً وأي تسائل أنا حاضر.


    موفقين





    __________________
    al3ndaleeb[@]uk2.net

  3. #3


    تحمي ميكروسوفت مواقع حكومية عندنا في مصر
    يذكر أحد العاملين علي التحرير بالموقع انه عندما يطلب من ميكرو أن تسمح لها بعمل تعديلات معينة
    تعطيه صلاحية في قاعدة البيانات لتحرير حقل واحد فقط
    وحكي لي الكثير عن طريقتهم في حماية الموقع
    أمور قمة في الغرابة
    لذا نكاد لا نري إختراق لمثل هذه المواقع
    فحتي العاملين علي المواقع بأجر لا يسمح لهم إلا بما هو مطلوب فقط مهما تحايلو


    لا ادري أن كنت بعدت عن الموضوع ام لا
    ولكني أحببت ذكر الأمر في وجود الأستاذ العندليب وأعتذر علي ذلك






  4. #4


    بسم الله الرحمن الرحيم
    وعليكم السلام ورحمة الله وبركاته


    أهلا ومرحبا بك أستاذي الكبير والمحترم "العندليب" ولا داعي للشكر حيث أنني لم أقم بعمل شيء, وفي الحقيقه أنت من عمل متطلب هذا الموضوع وبلا وجودك لأصبح غباراً عليه ^_^.


    حسنا:
    أنا أستخدم لوحة تحكم من نوع cpanel فماهي التعديلات المطلوبه على القوالب كي أقوم بعمل التعديلات التي ذكرتها وتكون فاعله؟

    بخصوص خطوات العمل:
    - خطوه رقم 1:
    هل لك أن تقوم بتفصيلها قليلا؟

    - خطوه رقم 2:
    المعلومات المعطاه هنا هل تكون بهذا الشكل مثلا:
    user=atta
    password=123456
    host=localhost1.alatta.com
    هكذا؟ أم نبقي الخانة الثالثه كما هي بهذا الشكل host=localhost1.sitecust1.com؟

    بخصوص العنوان الداخلي للـDNS هل أبقيه بهذا الشكل:
    كود:
    localhost                      A      127.0.2.11
    وأقوم فقط بتغيير عنوان الآي بي؟
    أو أقوم أيضا بتغيير عنوان الهوست؟

    - خطوه رقم 3:
    في ملاحظتك ذكرت "تحديد أقصى عدد للإتصالات لجميع العملاء 1000 اتصال فعّال"
    هل تعني أن يكون المضاف إلى php.ini بهذا الشكل:
    كود:
    sql.safe_mode = 1
    mysql.max_persistent = 1000
    mysql.max_links = 10

    فائق الشكر والإحترام على هذا العطاء الغير منقطع بإذن الله تعالى.






  5. #5


    السلام عليكم ورحمة الله وبركاته

    وعذراً أخي العطاء على التأخر بالرد فأنت سيد العارفين بالظروف

    ونأتي لأسألتك
    حسنا:
    أنا أستخدم لوحة تحكم من نوع cpanel فماهي التعديلات المطلوبه على القوالب كي أقوم بعمل التعديلات التي ذكرتها وتكون فاعله؟
    حسب علمي المتواضع حول الـ cpanel فهناك ملفات تستخدم كقوالب للـ dns والـ httpd والـ ftpd
    موجوده في المجلدات التاليه:
    /usr/localcpanel/etc/zonetemplates
    /usr/localcpanel/etc/httpdtemplates
    /usr/localcpanel/etc/ftpdtemplates
    قم بفتحها وعمل اللازم واستخدم موقع cpanel في السؤال عن هذه القوالب وأهميتها بالنسبه للسي بانل.


    - خطوه رقم 2:
    المعلومات المعطاه هنا هل تكون بهذا الشكل مثلا:
    user=atta
    password=123456
    host=localhost1.alatta.com
    هكذا؟ أم نبقي الخانة الثالثه كما هي بهذا الشكل host=localhost1.sitecust1.com؟
    كل البيانات يتم تغييرها حسب كل عميل بالسرفر لانها تختلف من عميل الى عميل.


    بخصوص العنوان الداخلي للـDNS هل أبقيه بهذا الشكل:

    كود:
    localhost A 127.0.2.11
    وأقوم فقط بتغيير عنوان الآي بي؟
    أو أقوم أيضا بتغيير عنوان الهوست؟
    تقوم بتغيير العنوان حسب الشكل التالي:
    كود:
    127.*.*.*
    قم بوضع رقم من 1 الى 254 في خانة النجمه.
    ويجب أن لا يتكرر العنوان بين العملاء.


    خطوه رقم 3:
    في ملاحظتك ذكرت "تحديد أقصى عدد للإتصالات لجميع العملاء 1000 اتصال فعّال"
    هل تعني أن يكون المضاف إلى php.ini بهذا الشكل:

    كود:
    sql.safe_mode = 1
    mysql.max_persistent = 1000
    mysql.max_links = 10
    نعم أعني أن تضيف الأسطر الى ملف Php.ini


    موفق





    __________________
    al3ndaleeb[@]uk2.net

  6. #6


    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته

    أستاذي: العندليب

    هل يكفي التعديل على الـIP الموجود في الـDNS?
    مثال: 127.0.0.1 إلى 127.0.2.1؟


    خالص التحيات
    العطاء






  7. #7


    اقتباس المشاركة الأصلية كتبت بواسطة العطاء
    بسم الله الرحمن الرحيم

    السلام عليكم ورحمة الله وبركاته

    أستاذي: العندليب

    هل يكفي التعديل على الـIP الموجود في الـDNS?
    مثال: 127.0.0.1 إلى 127.0.2.1؟


    خالص التحيات
    العطاء

    وعليكم السلام ورحمة الله وبركاته

    أخي العطاء هل شرحي ليس بواضح؟!؟!

    قد أجبت على هذه النقطه وقلت:
    ملاحظه:
    يجب وضع عنوان مختلف لكل عميل فالعنوان الذي ذكرته 127.0.2.11 لن أقوم بإعطائه لعميل اخر.
    العنوان الذي ستجده في الـ DNS سيكون 127.0.0.1
    قم بتغييره الى أي عنوان داخلي اخر مثل الذي ذكرته في المثال الأعلى 127.0.2.11 ولكن لا تعطي هذا العنوان للعميل الثاني أو الثالث.... الخ ( يجب أن لا يتكرر ).

    أما بخصوص سؤالك حول النقطه الأولى وتوضيحها فماهي المشكله ؟!؟
    هل إنشاء ملف نصي بإسم my.cnf أمر صعب ؟


    سؤال يدور في خاطري منذ أن طرحت فكرة الموضوع

    هل أنت قائم على إستضافه ؟





    __________________
    al3ndaleeb[@]uk2.net

  8. #8
    عضو نشيط جدا
    تاريخ التسجيل
    Sep 2006
    المشاركات
    475


    طريقه منطقية ولكن للأسف ليست عملية الى الان
    اقصد ما لم يتم تطبيق التعديل الامني من خلال cpanel نفسها عموما هي طريقة ناجحة

    ويمكنك ايضا في حالة اعطاء كل موقع ايبي مخصص ان تحدد الاتصال في جدول mysql من الايبي االخاص للموقع

    ويمكن ايضا في حالة وضع mysql في سيرفر مستقل عمل نفس الشيء في حالة وجود ايبي معين لكل موقع

    او يمكن حتى انشاء سب دومين mysql.example.com لكل موقع على حدة وتوجيهه الى ايبي داخلي والقيام بنفس التعديلات المذكورة <<< يبيلها تجربة

    المشكلة ان كل هذه الطرق ليست عملية على الاقل بالنسبة لشركات الاستضافة لان اغلب لوحات التحكم تميل الى جانب (العملية) ان صح التعبير والمشكله الاخرى ان الحماية لازالت تعتبر _عند العديد من المبرمجين_ addone او اضافة بالنسبة لبرمجياتهم :s
    واصلوا النقاش

    تحياتي





    __________________
    omansecurity.com
    Email: OmanSecurity AT gmail DOT com

  9. #9


    اقتباس المشاركة الأصلية كتبت بواسطة العندليب
    وعليكم السلام ورحمة الله وبركاته

    أخي العطاء هل شرحي ليس بواضح؟!؟!

    قد أجبت على هذه النقطه وقلت:


    العنوان الذي ستجده في الـ DNS سيكون 127.0.0.1
    قم بتغييره الى أي عنوان داخلي اخر مثل الذي ذكرته في المثال الأعلى 127.0.2.11 ولكن لا تعطي هذا العنوان للعميل الثاني أو الثالث.... الخ ( يجب أن لا يتكرر ).

    أما بخصوص سؤالك حول النقطه الأولى وتوضيحها فماهي المشكله ؟!؟
    هل إنشاء ملف نصي بإسم my.cnf أمر صعب ؟


    سؤال يدور في خاطري منذ أن طرحت فكرة الموضوع

    هل أنت قائم على إستضافه ؟

    السلام عليكم ورحمة الله وبركاته

    أستاذي العندليب,

    مهما عرفته أنا فسأبقى تلميذ

    وبخصوص الـIP Address في الـDNS هذا أمره سهل جداً جداً وفهمت الفكره منذ البدايه ولا داعي لشرحها مرة أخرى لأن سؤالي يتمحور حول الخطوات السابقه حيث أن بعضها ليس واضح بالنسبة لي ويشوش فهمي من ناحية كلمة:
    - localhost1.sitecust1.com
    - dbusercust1
    - cust1

    هل هنالك تغيير في هذه التسميات أثناء عمل الخطوات أم لا مع ذكر بعض الأمثله؟

    وسؤال الحقيقي في الرد السابق هو, هل نكتفي بالتعديل على الـDNS أم لا بد من عمل الخطوات جميعها؟

    ارجوا أن تتحملني قليلاً يا أستاذي المحترم, وإن لم تصل فكرتي جيداً فهو قصور مني في التعبير وأنا أعتذر عن هذا القصور مسبقاً ^_^.


    خالص التحيات,
    العطاء






  10. #10


    ليس واضح بالنسبة لي ويشوش فهمي من ناحية كلمة:
    - localhost1.sitecust1.com
    - dbusercust1
    - cust1

    هل هنالك تغيير في هذه التسميات أثناء عمل الخطوات أم لا مع ذكر بعض الأمثله؟
    أكرر مره أخرى

    dbusercust1: هو اليوزر الخاص بالعميل للإتصال بقواعد بياناته ( يتغير طبعا من عميل الى عميل )
    password: هو الباسوورد الخاص باليوزر المخصص للإتصال بالقواعد. ( طبعا هذه لاتحتاج توضيح، مثل اللي قبلها )
    localhost1.sitecus1.com: هو العنوان الداخلي المعطى للعميل ويتم وضع إعدادات هذا العنوان بإعدادات الـ DNS الخاص بالموقع. ( يتغير طبعا من عميل الى عميل )

    عزيزي عنوان الموضوع ( إعطاء كل عميل عنوان إتصال مستقل لقاعدة البيانات )
    فأنا أقصد بالعميل أنه الشخص الذي يملك مساحه على إستضافه مشتركه لذلك في إعدادات كل عميل يجب تغيير هذه المعلومات حسب إعدادات كل مساحة عميل.

    أتمنى أن يكون شرحي واضح.

    وسأذكر مثال حتى تتضح الصوره أكثر.

    لنفرض أن لدينا 3 عملاء على سرفر واحد
    العميل الأول لديه حساب بإسم المستخدم site1 ولديه قاعدة بيانات إسمها site1_vb يتم الدخول عليها بإسم المستخدم site1_dbuser وعنوان الدخول لموقعه www.site1.com
    العميل الثاني لديه حساب بإسم المستخدم site2 ولديه قاعدة بيانات إسمها site2_nuke يتم الدخول عليها بإسم المستخدم site2_u وعنوان الدخول لموقعه www.site2.org
    العميل الثالث لديه حساب بإسم المستخدم site3 ولديه قاعدة بيانات إسمها site3_members يتم الدخول عليها بإسم المستخدم site3_mem3 وعنوان الدخول لموقعه www.site3.net

    ندخل على مساحة العميل الأول ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
    كود:
    user=site1_dbuser
    password=*************
    host=localhost.site1.com
    بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
    كود:
    chown mysql:site1 my.cnf
    بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الأول ونغير عنوان localhost الخاصه به.
    كود:
    localhost                      A      127.0.0.11
    بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
    كود:
    UPDATE db SET host='localhost.site1.com' WHERE user LIKE 'site1_dbuser'
    UPDATE user SET host='localhost.site1.com' WHERE user LIKE 'site1_dbuser'
    ملاحظه:
    حصرت العميل بإستخدام اليوزر المربوط بقاعدة بيانات site1_vb وهذا يعني أن أي قاعدة بيانات جديده سيستخدم معها يوزر site1_dbuser .




    ندخل على مساحة العميل الثاني ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
    كود:
    user=site2
    password=*************
    host=localhost.site2.org
    بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
    كود:
    chown mysql:site2 my.cnf
    بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الثاني ونغير عنوان localhost الخاصه به.
    كود:
    localhost                      A      127.0.0.12
    بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
    كود:
    UPDATE db SET host='localhost.site2.org' WHERE user LIKE 'site2%'
    UPDATE user SET host='localhost.site2.org' WHERE user LIKE 'site2%'
    ملاحظه:
    جعلت العميل يستخدم إسم المستخدم الخاص بموقعه حتى يصل لكل القواعد الجديده التي يضيفها وبالإمكان حصره مثل العميل الأول.






    ندخل على مساحة العميل الثالث ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
    كود:
    user=site3
    password=*************
    host=localhost.site3.net
    بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
    كود:
    chown mysql:site3 my.cnf
    بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الثالث ونغير عنوان localhost الخاصه به.
    كود:
    localhost                      A      127.0.0.13
    بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
    كود:
    UPDATE db SET host='localhost.site3.net' WHERE user LIKE 'site3%'
    UPDATE user SET host='localhost.site3.net' WHERE user LIKE 'site3%'
    ملاحظه:
    جعلت العميل يستخدم إسم المستخدم الخاص بموقعه حتى يصل لكل القواعد الجديده التي يضيفها وبالإمكان حصره مثل العميل الأول.


    نقوم باخر خطوه وهي تعديل ملف php.ini ونضيف الأسطر التاليه:
    كود:
    ; تفعيل خاصية safemode لدوال الإتصال
    sql.safe_mode = 1
    mysql.max_persistent = 100
    mysql.max_links = 10

    انتهى

    ملاحظه:
    إستخدام لوحات التحكم مثل الـ cpanel يتطلب تعديل في خصائص بعض الخدمات مثل الـ ftp لكي لا يتم تغيير إسم الملف my.cnf أو حذفه أو تغير صلاحياته.

    وسؤال الحقيقي في الرد السابق هو, هل نكتفي بالتعديل على الـDNS أم لا بد من عمل الخطوات جميعها؟
    طبعا يجب عمل الخطوات جميعها.



    طريقه منطقية ولكن للأسف ليست عملية الى الان
    اقصد ما لم يتم تطبيق التعديل الامني من خلال cpanel نفسها عموما هي طريقة ناجحة

    ويمكنك ايضا في حالة اعطاء كل موقع ايبي مخصص ان تحدد الاتصال في جدول mysql من الايبي االخاص للموقع

    ويمكن ايضا في حالة وضع mysql في سيرفر مستقل عمل نفس الشيء في حالة وجود ايبي معين لكل موقع

    او يمكن حتى انشاء سب دومين mysql.example.com لكل موقع على حدة وتوجيهه الى ايبي داخلي والقيام بنفس التعديلات المذكورة <<< يبيلها تجربة

    المشكلة ان كل هذه الطرق ليست عملية على الاقل بالنسبة لشركات الاستضافة لان اغلب لوحات التحكم تميل الى جانب (العملية) ان صح التعبير والمشكله الاخرى ان الحماية لازالت تعتبر _عند العديد من المبرمجين_ addone او اضافة بالنسبة لبرمجياتهم :s
    واصلوا النقاش

    تحياتي
    أهلا بالأخ الكريم وأتمنى ذكر العيوب التي تراها حتى نحلها وقد ذكرت في أول ردي أن هناك أكثر من طريقه ولكني خصصت هذه الطريقه بالذات لأنها عمليه جداً.
    وأما طريقتك التي ذكرتها بأن نضع عنوان كل موقع في قاعدة Mysql تتطلب أن يعطي المستضيف كل موقع عنوان أيبي خاص به ولكن بعض المستضيفين لا يملك أيبيات كثيره حتى يعطيها لموقع ما وتجده يضع كل المواقع على عنوان أيبي مشترك واحد!

    بإنتظار إثرائكم للموضوع أكثر

    موفقين





    __________________
    al3ndaleeb[@]uk2.net

  11. #11
    عضو سوبر نشيط
    تاريخ التسجيل
    May 2006
    المشاركات
    707


    اقتباس المشاركة الأصلية كتبت بواسطة العندليب
    أكرر مره أخرى

    dbusercust1: هو اليوزر الخاص بالعميل للإتصال بقواعد بياناته ( يتغير طبعا من عميل الى عميل )
    password: هو الباسوورد الخاص باليوزر المخصص للإتصال بالقواعد. ( طبعا هذه لاتحتاج توضيح، مثل اللي قبلها )
    localhost1.sitecus1.com: هو العنوان الداخلي المعطى للعميل ويتم وضع إعدادات هذا العنوان بإعدادات الـ DNS الخاص بالموقع. ( يتغير طبعا من عميل الى عميل )

    عزيزي عنوان الموضوع ( إعطاء كل عميل عنوان إتصال مستقل لقاعدة البيانات )
    فأنا أقصد بالعميل أنه الشخص الذي يملك مساحه على إستضافه مشتركه لذلك في إعدادات كل عميل يجب تغيير هذه المعلومات حسب إعدادات كل مساحة عميل.

    أتمنى أن يكون شرحي واضح.

    وسأذكر مثال حتى تتضح الصوره أكثر.

    لنفرض أن لدينا 3 عملاء على سرفر واحد
    العميل الأول لديه حساب بإسم المستخدم site1 ولديه قاعدة بيانات إسمها site1_vb يتم الدخول عليها بإسم المستخدم site1_dbuser وعنوان الدخول لموقعه www.site1.com
    العميل الثاني لديه حساب بإسم المستخدم site2 ولديه قاعدة بيانات إسمها site2_nuke يتم الدخول عليها بإسم المستخدم site2_u وعنوان الدخول لموقعه www.site2.org
    العميل الثالث لديه حساب بإسم المستخدم site3 ولديه قاعدة بيانات إسمها site3_members يتم الدخول عليها بإسم المستخدم site3_mem3 وعنوان الدخول لموقعه www.site3.net

    ندخل على مساحة العميل الأول ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
    كود:
    user=site1_dbuser
    password=*************
    host=localhost.site1.com
    بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
    كود:
    chown mysql:site1 my.cnf
    بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الأول ونغير عنوان localhost الخاصه به.
    كود:
    localhost                      A      127.0.0.11
    بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
    كود:
    UPDATE db SET host='localhost.site1.com' WHERE user LIKE 'site1_dbuser'
    UPDATE user SET host='localhost.site1.com' WHERE user LIKE 'site1_dbuser'
    ملاحظه:
    حصرت العميل بإستخدام اليوزر المربوط بقاعدة بيانات site1_vb وهذا يعني أن أي قاعدة بيانات جديده سيستخدم معها يوزر site1_dbuser .




    ندخل على مساحة العميل الثاني ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
    كود:
    user=site2
    password=*************
    host=localhost.site2.org
    بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
    كود:
    chown mysql:site2 my.cnf
    بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الثاني ونغير عنوان localhost الخاصه به.
    كود:
    localhost                      A      127.0.0.12
    بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
    كود:
    UPDATE db SET host='localhost.site2.org' WHERE user LIKE 'site2%'
    UPDATE user SET host='localhost.site2.org' WHERE user LIKE 'site2%'
    ملاحظه:
    جعلت العميل يستخدم إسم المستخدم الخاص بموقعه حتى يصل لكل القواعد الجديده التي يضيفها وبالإمكان حصره مثل العميل الأول.






    ندخل على مساحة العميل الثالث ونقوم بإنشاء ملف إسمه my.cnf ثم ندخل بهذا الملف البيانات التاليه:
    كود:
    user=site3
    password=*************
    host=localhost.site3.net
    بعدها نقوم بتغيير المالك لهذا الملف لإسم اليوزر الخاص بخدمة Mysql حسب الأمر التالي:
    كود:
    chown mysql:site3 my.cnf
    بعدها نقوم بادخول على إعدادات الـ DNS الخاصه بالعميل الثالث ونغير عنوان localhost الخاصه به.
    كود:
    localhost                      A      127.0.0.13
    بعدها ندخل على سكربت phpMyAdmin بصلاحيات root وننفذ الجمل التاليه:
    كود:
    UPDATE db SET host='localhost.site3.net' WHERE user LIKE 'site3%'
    UPDATE user SET host='localhost.site3.net' WHERE user LIKE 'site3%'
    ملاحظه:
    جعلت العميل يستخدم إسم المستخدم الخاص بموقعه حتى يصل لكل القواعد الجديده التي يضيفها وبالإمكان حصره مثل العميل الأول.


    نقوم باخر خطوه وهي تعديل ملف php.ini ونضيف الأسطر التاليه:
    كود:
    ; تفعيل خاصية safemode لدوال الإتصال
    sql.safe_mode = 1
    mysql.max_persistent = 100
    mysql.max_links = 10

    انتهى

    ملاحظه:
    إستخدام لوحات التحكم مثل الـ cpanel يتطلب تعديل في خصائص بعض الخدمات مثل الـ ftp لكي لا يتم تغيير إسم الملف my.cnf أو حذفه أو تغير صلاحياته.


    طبعا يجب عمل الخطوات جميعها.





    أهلا بالأخ الكريم وأتمنى ذكر العيوب التي تراها حتى نحلها وقد ذكرت في أول ردي أن هناك أكثر من طريقه ولكني خصصت هذه الطريقه بالذات لأنها عمليه جداً.
    وأما طريقتك التي ذكرتها بأن نضع عنوان كل موقع في قاعدة Mysql تتطلب أن يعطي المستضيف كل موقع عنوان أيبي خاص به ولكن بعض المستضيفين لا يملك أيبيات كثيره حتى يعطيها لموقع ما وتجده يضع كل المواقع على عنوان أيبي مشترك واحد!

    بإنتظار إثرائكم للموضوع أكثر

    موفقين







  12. #12


    المحترم والأستاذ الكبير "العندليب"


    السلام عليكم ورحمة الله وبركاته


    قمت بتطبيق ما قلت ولكن حينما أقوم بتفعيل هذه الخاصية:
    sql.safe_mode = 1

    تتوقف جميع قواعد البيانات, علما أنني لم أقوم بتغيير جميع آي بي الـlocalhost من خلال الـDNS "هل هذا يؤثر"؟


    تحياتي










ضوابط المشاركة

  • لا تستطيع إضافة مواضيع جديدة
  • لا تستطيع الرد على المواضيع
  • لا تستطيع إرفاق ملفات
  • لا تستطيع تعديل مشاركاتك
  •  

أضف موقعك هنا| اخبار السيارات | حراج | شقق للايجار في الكويت | بيوت للبيع في الكويت | دليل الكويت العقاري | مقروء | شركة كشف تسربات المياه | شركة عزل اسطح بالرياض | عزل فوم بالرياض| عزل اسطح بالرياض | كشف تسربات المياة بالرياض | شركة عزل اسطح بالرياض