Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt PHP wyłącza Apacha
Forum PHP.pl > Forum > PHP
infoo1
Mam Webserva pod winshitem vistą. Uruchamiam, włączam pma - wszyzstko działa. Uruchamiam kilka moich skryptów - wszystko działa. Uruchamiam inny mój skrypt - komentarz visty "program Apache przestał działać z poniewarz [znają się na polskim blinksmiley.gif ] wystąpienia błędu". Najciekawsze jest to, że to się wywala tylko na tym skrypcie, zawsze jak go uruchomię. Oto on:
index.php:
Kod
<?php
      include('includes/starter.php');
      $top_menu   = $generate->generate('menu_top');
      $left_menu   = $generate->generate('menu_left');
      $page_title   = $generate->generate('page_title');
      $template->assign(array(
        'MENU_TOP'  => $top_menu,
        'MENU_LEFT' => $left_menu,
        'PAGE_TITLE' => $page_title,
        '' => '',
        '' => ''
      ));
      $template->display('main.tpl');
    ?>

includes/starter.php:
Kod
<?php
      error_reporting(E_ALL);
      ini_set('display_errors',1);
      session_start();
      include('includes/config.php');
      include('includes/functions.php');
      include('includes/template/Smarty.class.php');
      $template  = new Smarty;
      $user        = new user;
      $db           = new db;
      $admin      = new admin;
      $forms      = new forms;
      $lang        = new lang;
      $generate = new generate;
    
      $template->template_dir = "templates/default/";
      $template->compile_dir   = 'template-cache/templates_c/';
      $template->config_dir     = 'template-cache/configs/';
      $template->cache_dir     = 'template-cache/cache/';
    ?>

includes/config.php:
Kod
<?php
    //tego nie podaję
    ?>

includes/functions.php:
Kod
<?php
      class db
      {
    
      }
    
      class user
      {
        function error($what)
        {
          exit();
        }
      }
    
      class admin
      {
    
      }
    
      class forms
      {
    
      }
    
      class lang
      {
    
      }
    
      class generate
      {
        function generate($type)
        {
          global $user;
          switch ($type)
          {
            case 'menu_top':
    
            break;
            case 'menu_left':
    
            break;
            case 'page_title':
    
            break;
            case '':
    
            break;
            case '':
    
            break;
            default:
              $user->error('NONE_TO_GENERATE');
            break;
          }
        }
      }
    ?>


Co jest źle?

Hmmm...
Jak usunę z index.php:
Kod
     $template->display('main.tpl');

Apache działa, ale wyświetla białą stronę (bo nie ma $template->display('file.tpl'); ).
erix
Cóż, pod Winshitem Apache ma różne fochy, niestety... :/

Sprawdzałeś w dzienniku zdarzeń? W error_log Apache'a?
infoo1
Tak, ale tam nie ma nic na ten czas, kiedy pada. Po prostu Apache nie wie, że winshit vista go zamyka.
hostingekspert
moze uruchom Apache z Trybem zgodności Windows 2000 / Windows XP, opcja dostępna we właściwości pliku apache.exe (..\bin\apache.exe)

Jeśli masz zainstalowane czystego Apacha, spróbuj moze na Xammpie albo WebServ.
infoo1
Niestety to też nie działa.
Darti
A czy inne Twoje skrypty też korzystaja z szablonów Smarty ? spróbuj nowszą wersję Smarty i Apache (webserv ma 2.2.6 a najnowsza jest 2.2.10) ...
infoo1
Cytat
A czy inne Twoje skrypty też korzystaja z szablonów Smarty ?
Tak.
Cytat
spróbuj nowszą wersję Smarty i Apache (webserv ma 2.2.6 a najnowsza jest 2.2.10) ...
Mam najnowszą (instalowałem bez programów typu webserv, którego kilka godzin temu usunąłem).
erix
A downgrade Apache pomaga?
infoo1
Nie.
l0ud
Próbowałeś może zmienić konfigurację apache i php? Może zrezygnuj z połączenia php z apache jako modułu, a połącz jako skrypt CGI? Na pewno utracisz trochę na wydajności, ale to przecież nie jest takie ważne.

[edit] Umieść gdzieś też swój plik php.ini i daj link na forum.
bim2
A ja radzę powoli usuwać kod i znaleźć przyczynę błędu. Miałem ten sam problem, tzn. po dziedziczeniu klasy apache się wiesział, nie wiem czemu, ale po prostu przestałem dziedziczyć i inaczej to rozwiązałem. Tobie też polecam usunąć przyczynę restartu i zrobić to inaczej, bo dłużej ci zajmie szukanie błędu.
erix
U mnie był problem, że jeden z dwóch zasobów MySQL był którymś razem przechowywany jako unknown, więc można się wszystkiego spodziewać... Apache pod Windows ma naprawdę dziwne odchyły...

Generalnie, sprawdź, czy ten sam skrypt na innym komputerze/systemie operacyjnym zachowuje się tak samo, a jeśli na innych jest ok, to tak jak przedmówcy - zmień sposób połączenia Apache<->PHP i spróbuj różnych kombinacji wersji (zjeżdżaj wersjami).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.