מסדי נתונים / בחירת מסד הנתונים האידיאלי / מבוא


מבוא


מסדי נתונים לאתרים הם נושא גדול מאוד, ושום מאמר אשר נכתב בחמישה ימים לא יכול לכסות את החומר. אני ניסיתי להניח את היסודות,אבל ההתמודדות היא בידכם,אתם תצטרכו לפתור את הבעיות הייחודיות לכל מצב.
בגלל הגבלת גודל המאמר,אנו נוכל לגעת רק בקונפיגורציות שמתקשרות למסדי נתונים באינטרנט.


Apache

ה AahceWeb Server הוא חתיכת עבודה. בפשטות תפקידו הוא לאפשר למשתמשים להפיק מידע אינטרנטי מהמחשב. רוב הפעמים המידע מגיע בדפי HTML או כקובצי תמונות( בעיקר קבצי JPG,GIF), אך אם זאת כל השרתים המודרניים חייבים תמיכה ב-CGI (תכנות לאינטרנט).


קונפיגורציות מותאמות ל Apache

להלן שלוש סיבות למה ליצור קונפיגורציות מותאמות אישית ל Apache.

הדרך ליצור ספריית DocumentRoot משלנו.
ePerl
mod_perl

DocumentRoot - רעיון שדי פשוט להבינו.
בואו נגיד שרכשנו domain והאתר באוויר לדוגמא www.example.com,ואז כאשר אנו נטייל באתר יש אפשרות שהURL יראה כך:

www.example.com/webmonkey/day3.html


אני אישית אוהבת לסדר את DocumentRoot שלי בצורה כזאת /web/docs/ שהקובץ המגיב לurl יראה כך/web/docs/webmonkey/day3.html :.
בהנחה שלקחת את עצתי מאתמול לגבי התקנת ה Apache,אתה תצטרך לערוך את

/usr/src/apache_1.2.6/conf/srm.comf/


כדי לשנות את ה DocumentRoot שלו ל/web/docs. (אל תדאג ברגע שתראה את הקובץ,תדע מה צריך לעשות).אתה גם תצטרך לערוך את usr/src/apache_1.2.6/conf/access.conf/ (עוד פעם,לא סיפור גדול מידי).
בUnix propmt,שים לב שאתה אכן יוצר את ספרית ה DocumentRoot שלך

mkdir/web; mkdir /web/docs


perl ו ePerl , יחד עם mod_perl יוצרים סביבת פיתוח נפלאה עבור יצירת דפי אינטרנט המבוססים על מסד נתונים. בשיעור הקודם הצעתי ליצור Apache באופן אוטומטי בעזרת ה mod_perl. מכאן שצריך להיות לכם כעת קובץ שנקרא:

/usr/src/apache_1.2.6/src/httpd


O.K הנה מה שאתה צריך לעשות:


צעד 1 :

צור קישור סימבולי בין /usr/src/apache_1.2.6/src/httpd/ לבין /usr/sbin/httpd/

הרעיון שמאחורי יצירת קישור סימבולי הוא שLinux מערכת ההפעלה שלך,תצפה למצוא את httpd בתוך usr/sbin/, אבל בעתיד כל בנייה מחדש של הhttpd תמוקם ב /user/src/apache_1.2.6/src במקום המיקום הקודם.
הטריק הקטן הזה יחסוך לך לזכור כל פעם להעתיק httpd לתוך sbin /usr/ בכל פעם מחדש.

cd /usr/sbin ln -s /usr/src/apache_1.2.6/src/httpd http


צעד 2 :

וודא שהבנייה שלך כוללת mod_perl.

אנחנו נעשה בדיקה קטנה רק כדי להיות בטוחים. עכשיו הקלד את הקוד הבא :

/usr/sbin/httpd -v


צריכה להופיע לך הודעה שאומרת משהו כזה

server version apache/1.2.6 mod_perl/1.08


צעד 3 :

התאימו את הקובץ etc/rc.d/rc.m/.

הקובץ הזה מתפקד בדיוק כמו bat. autoexec המוכר לכולנו מימי הדוס.
הוא רץ בדיוק ששרת הלינוקס מתחיל לפעול, ומוודא שכל התוכניות שצריכות להתחיל לפעול אכן התחילו לפעול כמו שצריך.
אם קובץ ה rc.m שלך לא מכיל את השורות הבאות, כדאי שתוסיף אותן ידנית:

# Start Web server:
if [ -x /etc/rc.d/rc.httpd ]; then .
/etc/rc.d/rc.httpd
fi


כל הבלגן הזה אומר בעצם שבמהלך ההטענה של מערכת ההפעלה, כל התוכן המופיע בתיקיית /etc/rc.d/rc.httpd צריך להיות מופעל.
לצורך זה, ניתן לשלב גם את הקוד הבא:

echo httpd
usr/sbin/httpd -f /usr/src/apache_1.2.6/conf/httpd.conf &


סביר להניח שהקובץ הזה לא יופיע במערכת ההפעלה שלך כרגע, אז קח יוזמה וצור אותו.

צעד 4:

הכן את אפאצ'י להתמודדות עם מסמכי ePerl ו CGI.

תתכוננו טוב - אתם עומדים בפני מסע קונפיגורציות ארוך ומייגע
בתור שלב ראשון, נווט שנית לתיקיית /usr/src/apache_1.2.6/conf ושם הפעילו את הקוד הבא:

ב accsess.conf , וודאו שהטקסט המודגש אכן מופיע.

<Directory /web/docs>
Options Indexes FollowSymLinks ExecCGI
AllowOverride None
order allow,deny
allow from all
</Directory>


כעת, ערכו את srm.conf:

DirectoryIndex index.iphtml index.cgi index.html


במהלך העבודה תרצה להסיר הערות מהסקריפט, קח שלבסוף הקוד יראה ככה:

AddHandler cgi-script .cgi


ב httpd.conf , הוסף את הקוד הבא בדיוק מעל אזור ה <VirtualHost>.

Perlrequire /web/docs/startup.perl

PerlModule Apache::ePerl
<Files ~ ".+\.iphtml$">
SetHandler perl-script\
PerlHandler Apache::ePerl
<Files>


בשלב הבא תצטרך קובץ בשם startup.perl בתוך ספריית /web/docs.
מכיוון שאני במצב רוח טוב היום, אני אניח לכם להעתיק את שלי:

#!/usr/bin/perl
use strict;
use Apache::Registry;
use CGI;
use DBI ();
1;


כדי שנוכל להבין יותר טוב מה עשינו בצעד הרביעי, הרי הסבר חלקי.

כברירת מחדל, אפאצ'י לא יניח לתוכניות CGI לרוץ בספריה אחרת מאשר ספרית /cgi-bin/ כאשר העדיפות הראשונה שלך היא הביטחון, ברירת המחדל הזו היא די הגיונית. אבל המטרה שלנו היא תכנות לאתר ולמסד הנתונים,לכן יצרנו את הקוד שמאשר לCGI לרוץ בכל מקום שהוא, כל עוד הוא נמצא מתחת ל DocumentRoot.

בנוסף לכך, לימדנו את אפאצ'י איך להגיב כשהוא נתקל בקבצים עם הסיומת המגוכחת iphtml. הקבצים האלו הם קבצי html המנותחים באופן פנימי ועכשיו אפאצ'י יודע להפנות אותם ישירות ל ePerl להמשך הטיפול. לסיום לימדנו את אפאצ'י להריץ קובץ בשם startup.perl ברגע שבו השרת עולה לאוויר.
הקובץ טוען לזיכרון השרת כמה מודולים חיוניים, כך שכל תוכנית יכולה להשתמש במודולים הללו בלי לטרוח לטעון אותם מחדש.

דיברנו מספיק על אפאצ'י. עשינו את כל מה שצריך היה להיעשות והגיע הזמן להתקדם ולדוג דגים גדולים יותר.



עמוד הבא: MySQL ושאר עניני שרת/מסד נתונים >>




מבט כללי
שעור 1
הטכנולוגיה הלא נכונה
לבעיה הלא נכונה

דמיין את כל האנשים
(נכנסים לאתר שלך)

מה האופציות שלי?
למה באינטרנט?
אבל איך?
משהו ללעוס בדרך
שעור 2
הכרות עם שדה
המשחקים

Windows NT לעומת
Linux

התקנת לינוקס והתוכניות
הנלוות

ציפיות
שעור 3
מבוא >
MySQL ושאר עניני
שרת/מסד נתונים

MySQL,SQL,DDL
ו-DML

סיכום
שעור 4
פילוסופית-Embedded
Web-Programming

ePerl-כשפרל פוגשת את
HTML

DBI-ממשק מסד הנתונים
של פרל

הדרך שלפנינו
שעור 5
מתחילים לעבוד
CGI.pm הבלתי נמנע
Escape Sequences
ומסד הנתונים שלך

הטבעת ביטויים יחסיים
במחרוזת
Here-Document

הטבעת תת-רוטינות
מחברים את הכל
מטפלים בטפסים עם
שאילתות SQL

מעבדים את תוצאות
הטופס עם-CGI.pm