error_reporting = E_ALL & ~E_NOTICE
ამის შედეგად
PHP-სკრიპტების მუშაობისას
შეცდომები ნაჩვენები იქნება, ხოლო "უსაქმური" შენიშვნები – არა. ეს შენიშვნები
მაინც არაფერს იძლევიან (და რაც მთავარია, არც რამე მოქმედებას მოითხოვენ).
შეამოწმეთ,
რომ ჩართული იყოს დირექტივა display_errors, თუ
არ არის, ჩართეთ::
display_errors = On
ზოგ დისტრიბუტივში ეს რატომღაც გამორთულია,
და მაშინ შეცდომის შემთხვევაში ბრაუსერი არ აჩვენებს ცნობილ "error
404" ან რამე ეგეთს, არამედ სუფთა თეთრ ეკრანს, და
მოგიწევთ მარჩიელობა.
ასევე
შეამოწმეთ დირექტივა variables_order
– უნდა იყოს ასე:
variables_order = "EGPCS"
ასოების მნიშვნელობები:
E - გარემოს ცვლადები (Enviroment)
G - GET-მეთოდით გადაცემადი ცვლადები
P - POST-მეთოდით გადაცემადი ცვლადები
C - ქუქები (Cookies)
S - სესიები
რომელიმე ასო რომ აკლდეს, შესაბამის ცვლადებს ვეღარ
გამოიყენებთ.
შემდეგი დირექტივა –
register_globals –
ცოტა საორჭოფო რამეა. მიაჩნიათ, რომ ის გამორთული უნდა იყოს,
დამწყებებისთვის მაინც. ჩემი აზრით, სწორედ დამწყებებმა უნდა ჩართონ ის, რადგან
სჯობს თავიდან წამოვკრათ რამეს ფეხი, ვიდრე მერე სულ მოვიტეხოთ. როცა ეს
დირექტივა ჩართულია, სკრიპტის მიერ მიღებული ყველა მონაცემი ეგრევე განწესდება
ცვლადად, და თუ სკრიპტი არ არის კარგად დაწერილი, ადვილად ტყდება –
ავტორიზაციის სკრიპტის საშუალებით, მაგალითად, ნებისმიერი შეიძლება საიტის
ადმინი გახდეს. ამგვარი ხერხით უამრავი საიტი იქნა გატეხილი და დამხობილი.
მეორე მხრივ, როცა დირექტივა გამორთულია, ვეჩვევით მონაცემებთან მუშაობას
სუპერგლობალური მასივებით ($_POST და ა. შ.),
რაც, თავისთავად, კარგი სტილია. მოკლედ, გვინდა ჩავრთოთ ეს დირექტივა, გვინდა
გამოვრთოთ, მხოლოდ გვახსოვდეს მისი
არსებობა:
register_globals = On
:)
სუპერგლობალურ მასივებს
რაც შეეხება – დირექტივა register_long_arrays
იძლევა ძველი ("გრძელი") ფორმატის ცვლადების გამოყენების საშუალებას
($HTTP_GET_VARS და ა. შ.),
თუ გვინდა:
register_long_arrays = On
თუ არადა სჯობს
გამოვრთოთ და მათ ნაცვლადაც სუპერგლობალური მასივები გამოვიყენოთ.
შევამოწმოთ,
არის თუ არა მითითებული PHP-ს
ინდექს–ფაილი httpd.conf–ში.
დირექტივა DirectoryIndex ფაილების ჩამონათვალში უნდა შეიცავდეს index.php–ს. თუ არ არის, დაამატეთ. სად
დაამატებთ – თავში თუ ბოლოში, არა აქვს მნიშვნელობა, მხოლოდ ფორმატი დაიცავით:
DirectoryIndex index.html index.html.var index.php
ახლა
გადავტვირთოთ
Apache, რომელიმე ვირტუალურ ჰოსტში (მაგ.:
D:/Apache/SiteName/mysite/www)
შევქმნათ
ტექსტური ფაილი index.php ასეთი ტექსტით:
<?php
phpinfo();
?>
შეგახსენებთ, რომ აქედან კოპირებას
სჯობს ხელით შეიყვანოთ ეს პატარა ტექსტი.
ჩავწეროთ
ბრაუსერში მისამართი http://mysite.
თუ ყველაფერი კარგადაა, გამოვა მთელი
პოემა PHP–ს მიმდინარე
კონფიგურაციის შესახებ. ეს იმ ფუნქცია
phpinfo()–ს
დამსახურება, რომელიც ჩვენ ჩავწერეთ "ჩვენი პირველი
PHP საიტის" კოდში.
თუ არაფერიც არ გამოვიდა, სცადეთ
ჩაწეროთ http://mysite/index.php – თავიდან ცოტა შეგულიანება სჭირდება :). მერე
შეიძლება გასწორდეს კიდეც. თუ არადა ნახეთ ინდექს–ფაილების მითითებისას ხომ არა
გაქვთ რაიმე შეცდომა.
ძალიან იშვიათად შეიძლება ასეთი
შეცდომაც კი მიიღოთ:
Fatal error: Call to undefined
function phpinfo() in D:\Apache\sitename\home\othersite\www\index.php on
line 2
წესით ეს იმას უნდა ნიშნავდეს, რომ
php5ts.dll (ან მისი შემცვლელი) დაზიანებულია ან მოძველებული და არ შეიცავს
ფუნქციას phpinfo(). პრაქტიკაში კი, როგორც წინა გვერდზე აღვნიშნეთ, შველის php5ts.dll–ს
ჩაწერა WINDOWS/SYSTEM32 კატალოგში.
როცა ყველა პრობლემა ჩაივლის და მივიღებთ ნანატრ
იისფერ ცხრილს, ეს ნიშნავს, რომ Apache
და PHP სწორადაა დაყენებული და
კონფიგურირებული. უკვე შეგვიძლია გავიქაჩოთ
MySQL–ის დაყენებაზე.