1

Тема: Вместо интерфейса в окне браузера отображается скрипт

Добрый день!

Помогите пожалуйста разобраться в проблеме. Устанавливал себе инструмеентарий для веб разработки. Пользовался статьей "Инструментарий веб-разработчика". Состав продуктов следующий:
- MySQL 5.0.45
- PHP 5.2.4
- Apache 2.2.6
- PHPMyAdmin 2.11.2
- ОС WINDOWS XP SP2

Сначала все вроде шло нормально, первые три продукта поставил без проблем следуя инструкциям. Проверил работу Apache с виртуальными хостами как описано в статье. Работает. Последний аккорд - ставлю phpmyadmin. Прописываю все везде как в статье. Набираю в адресной строке localhost/phpmyadmin и вижу вместо интерфейса отображение кода страницы.
Вроде все перепроверил, все конфиги правил в соответствии со статьей, все операции выполнил в такой же последовательности какая указана. Что еще можно сделать ума не приложу))
Буду признателен за любую предоставленную информацию по этому вопросу

2

Re: Вместо интерфейса в окне браузера отображается скрипт

Может нужно какие конфиги сюда выложить или какие-то моменты прояснить?

3

Re: Вместо интерфейса в окне браузера отображается скрипт

Вот если это поможет, то выкидывает в окно браузера после входа на localhost/phpmyadmin
(браузер Opera9.24)

<?php
/* vim: set expandtab sw=4 ts=4 sts=4: */
/**
 * forms frameset
 *
 * @version $Id: index.php 10590 2007-09-02 19:59:59Z lem9 $
 * @uses    $GLOBALS['strNoFrames']
 * @uses    $GLOBALS['cfg']['QueryHistoryDB']
 * @uses    $GLOBALS['cfg']['Server']['user']
 * @uses    $GLOBALS['cfg']['DefaultTabServer']     as src for the mainframe
 * @uses    $GLOBALS['cfg']['DefaultTabDatabase']   as src for the mainframe
 * @uses    $GLOBALS['cfg']['NaviWidth']            for navi frame width
 * @uses    $GLOBALS['collation_connection']    from $_REQUEST (grab_globals.lib.php)
 *                                              or common.inc.php
 * @uses    $GLOBALS['available_languages'] from common.inc.php (select_lang.lib.php)
 * @uses    $GLOBALS['db']
 * @uses    $GLOBALS['charset']
 * @uses    $GLOBALS['lang']
 * @uses    $GLOBALS['text_dir']
 * @uses    $_ENV['HTTP_HOST']
 * @uses    PMA_getRelationsParam()
 * @uses    PMA_purgeHistory()
 * @uses    PMA_generate_common_url()
 * @uses    PMA_VERSION
 * @uses    session_write_close()
 * @uses    time()
 * @uses    PMA_getenv()
 * @uses    header()                to send charset
 */

/**
 * Gets core libraries and defines some variables
 */
require_once './libraries/common.inc.php';

/**
 * Includes the ThemeManager if it hasn't been included yet
 */
require_once './libraries/relation.lib.php';

// free the session file, for the other frames to be loaded
session_write_close();

// Gets the host name
// loic1 - 2001/25/11: use the new globals arrays defined with php 4.1+
if (empty($HTTP_HOST)) {
    if (PMA_getenv('HTTP_HOST')) {
        $HTTP_HOST = PMA_getenv('HTTP_HOST');
    } else {
        $HTTP_HOST = '';
    }
}


// purge querywindow history
$cfgRelation = PMA_getRelationsParam();
if ($GLOBALS['cfg']['QueryHistoryDB'] && $cfgRelation['historywork']) {
    PMA_purgeHistory($GLOBALS['cfg']['Server']['user']);
}
unset($cfgRelation);


/**
 * pass variables to child pages
 */
$drops = array('lang', 'server', 'convcharset', 'collation_connection',
    'db', 'table');

foreach ($drops as $each_drop) {
    if (! array_key_exists($each_drop, $_GET)) {
        unset($_GET[$each_drop]);
    }
}
unset($drops, $each_drop);

if (! strlen($GLOBALS['db'])) {
    $main_target = $GLOBALS['cfg']['DefaultTabServer'];
} elseif (! strlen($GLOBALS['table'])) {
    $_GET['db'] = $GLOBALS['db'];
    $main_target = $GLOBALS['cfg']['DefaultTabDatabase'];
} else {
    $_GET['db'] = $GLOBALS['db'];
    $_GET['table'] = $GLOBALS['table'];
    $main_target = $GLOBALS['cfg']['DefaultTabTable'];
}

$url_query = PMA_generate_common_url($_GET);

if (isset($GLOBALS['target']) && is_string($GLOBALS['target']) && !empty($GLOBALS['target']) && in_array($GLOBALS['target'], $goto_whitelist)) {
    $main_target = $GLOBALS['target'];
}

$main_target .= $url_query;

$lang_iso_code = $GLOBALS['available_languages'][$GLOBALS['lang']][2];


// start output
header('Content-Type: text/html; charset=' . $GLOBALS['charset']);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
    "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xml:lang="<?php echo $lang_iso_code; ?>"
    lang="<?php echo $lang_iso_code; ?>"
    dir="<?php echo $GLOBALS['text_dir']; ?>">
<head>
<link rel="icon" href="./favicon.ico" type="image/x-icon" />
<link rel="shortcut icon" href="./favicon.ico" type="image/x-icon" />
<title>phpMyAdmin <?php echo PMA_VERSION; ?> -
    <?php echo htmlspecialchars($HTTP_HOST); ?></title>
<meta http-equiv="Content-Type"
    content="text/html; charset=<?php echo $GLOBALS['charset']; ?>" />
<script type="text/javascript">
// <![CDATA[
    // definitions used in querywindow.js
    var common_query = '<?php echo PMA_escapeJsString(PMA_generate_common_url('', '', '&'));?>';
    var opendb_url = '<?php echo PMA_escapeJsString($GLOBALS['cfg']['DefaultTabDatabase']); ?>';
    var safari_browser = <?php echo PMA_USR_BROWSER_AGENT == 'SAFARI' ? 'true' : 'false' ?>;
    var querywindow_height = <?php echo PMA_escapeJsString($GLOBALS['cfg']['QueryWindowHeight']); ?>;
    var querywindow_width = <?php echo PMA_escapeJsString($GLOBALS['cfg']['QueryWindowWidth']); ?>;
    var collation_connection = '<?php echo PMA_escapeJsString($GLOBALS['collation_connection']); ?>';
    var lang = '<?php echo PMA_escapeJsString($GLOBALS['lang']); ?>';
    var server = '<?php echo PMA_escapeJsString($GLOBALS['server']); ?>';
    var table = '<?php echo PMA_escapeJsString($GLOBALS['table']); ?>';
    var db    = '<?php echo PMA_escapeJsString($GLOBALS['db']); ?>';
    var text_dir = '<?php echo PMA_escapeJsString($GLOBALS['text_dir']); ?>';
    var pma_absolute_uri = '<?php echo PMA_escapeJsString($GLOBALS['cfg']['PmaAbsoluteUri']); ?>';

    // for content and navigation frames

    var frame_content = 0;
    var frame_navigation = 0;
    function getFrames() {
<?php if ($GLOBALS['text_dir'] === 'ltr') { ?>
        frame_content = window.frames[1];
        frame_navigation = window.frames[0];
<?php } else { ?>
        frame_content = window.frames[0];
        frame_navigation = window.frames[1];
<?php } ?>
    }
    var onloadCnt = 0; 
    var onLoadHandler = window.onload;
    window.onload = function() {
        if (onloadCnt == 0) {
            if (typeof(onLoadHandler) == "function") { 
                onLoadHandler(); 
            }
            if (typeof(getFrames) != 'undefined' && typeof(getFrames) == 'function') { 
                getFrames(); 
            }
            onloadCnt++;
        }
    };
// ]]>
</script>
<script src="./js/querywindow.js" type="text/javascript"></script>
</head>
<frameset cols="<?php
if ($GLOBALS['text_dir'] === 'rtl') {
    echo '*,';
}
echo $GLOBALS['cfg']['NaviWidth'];
if ($GLOBALS['text_dir'] === 'ltr') {
    echo ',*';
}
?>" rows="*" id="mainFrameset">
    <?php if ($GLOBALS['text_dir'] === 'ltr') { ?>
    <frame frameborder="0" id="frame_navigation"
        src="navigation.php<?php echo $url_query; ?>"
        name="frame_navigation" />
    <?php } ?>
    <frame frameborder="0" id="frame_content"
        src="<?php echo $main_target; ?>"
        name="frame_content" />
    <?php if ($GLOBALS['text_dir'] === 'rtl') { ?>
    <frame frameborder="0" id="frame_navigation"
        src="navigation.php<?php echo $url_query; ?>"
        name="frame_navigation" />
    <?php } ?>
    <noframes>
        <body>
            <p><?php echo $GLOBALS['strNoFrames']; ?></p>
        </body>
    </noframes>
</frameset>
</html>

4

Re: Вместо интерфейса в окне браузера отображается скрипт

Ars22
Перво-наперво проверьте 7 и 11 пункты из установки Apache.
DirectoryIndex index.html index.htm index.shtml index.php
AddType application/x-httpd-php .php

Если здесь ошибок нет, то отошлите все конфигурационные файлы на hanut@php-myadmin.ru, со ссылкой на эту тему.

5

Re: Вместо интерфейса в окне браузера отображается скрипт

Hanut
Добрый день!
Стыдно признаться, но действительно не было строчки в httpd.conf, которую Вы мне указали в своем сообщении:
AddType application/x-httpd-php .php.  И как я три раза подряд пропустил этот пункт? Сам не пойму...
Из-за этого был такой эффект. Сейчас все приконектилось замечательно!!!
Спасибо!

6

Re: Вместо интерфейса в окне браузера отображается скрипт

У меня похожая проблема только то что писалось выше в конфиге есть стоит
- PHP 5.2.8
- Apache 2.2.11
при попытке загрузить php скрипт выводит часть кода скрипта и дальше негрузится

CURDATE() AND ip="'.$GLOBALS["HTTP_SERVER_VARS"]["REMOTE_ADDR"].'" AND pid='.intval($q[pid]).''); if($r[cnt]==0){ mysqlquery('INSERT INTO '.$DBPrefix.'votation_hits SET item_id='.intval($_REQUEST['vid']).', pid='.intval($item[pid]).', date=NOW(), ip="'.$GLOBALS["HTTP_SERVER_VARS"]["REMOTE_ADDR"].'"'); } } $q = query('SELECT * FROM '.$DBPrefix.'votation WHERE id='.intval($id)); $ra = query('SELECT COUNT(*) as cnt FROM '.$DBPrefix.'votation_hits WHERE pid='.intval($id)); $r = mysqlquery('SELECT * FROM '.$DBPrefix.'votation WHERE pid='.intval($id).' ORDER BY sortby'); $as = Array(); while($a = mysql_fetch_assoc($r)){ $rb = query('SELECT COUNT(*) as cnt FROM '.$DBPrefix.'votation_hits WHERE item_id='.intval($a[id])); $a[cnt] = $rb[cnt]; $a[p] = $ra[cnt]?intval($rb[cnt]*100/$ra[cnt]):0; $as[] = $a; } if($_REQUEST['vid']){ $content = ob_get_contents(); ob_end_clean(); echo ApplyTemplate('./tpl/votation.php', Array('q'=>$q, 'as'=>$as)); exit; }else{ return ApplyTemplate('./tpl/votation.php', Array('q'=>$q, 'as'=>$as)); } } function ShowBanner($id){ global $DBPrefix; global $banners_folder; global $site_link; $place = query('SELECT * FROM '.$DBPrefix.'banner_places WHERE id='.intval($id).''); if(!$place) return ''; $ban = query('SELECT * FROM '.$DBPrefix.'banners WHERE place_id='.intval($id).' ORDER BY RAND()'); if(!$ban) return ''; $referer = $_SERVER['HTTP_REFERER']; $url = $_SERVER['PHP_SELF'].($_SERVER['QUERY_STRING']?'?'.$_SERVER['QUERY_STRING']:''); $r = query('SELECT COUNT(*) as cnt FROM '.$DBPrefix.'banner_logs WHERE firstvisit="1" AND ip="'.addslashes($_SERVER['REMOTE_ADDR']).'" AND date >= CURDATE()'); mysqlquery('INSERT INTO '.$DBPrefix.'banner_logs SET firstvisit="'.($r[cnt]==0?'1':'0').'", referer="'.addslashes($_SERVER['HTTP_REFERER']).'", ip="'.addslashes($_SERVER['REMOTE_ADDR']).'", url="'.addslashes($url).'", date=NOW(), ban_id='.intval($ban[id]).', place_id='.intval($place[id]).''); return ShowImageByType($banners_folder . '/' . $ban['file'], $ban[place_id], $ban[id], $place[blank]); } function GetTids($tid){ global $DBPrefix; $tids = Array(); while($tid){ array_push($tids, $tid); $r = mysqlquery('SELECT * FROM '.$DBPrefix.'topics WHERE id='.intval($tid).' LIMIT 1'); $topic = mysql_fetch_array($r); if($topic[pid]==0){ break; } $tid = $topic[pid]; } $ts = Array('first'=>array_pop($tids), 'second'=>array_pop($tids), 'third'=>array_pop($tids)); return $ts; } function HaveTopicSubs($topic_id){ global $DBPrefix; $cnt = query('SELECT COUNT(*) as cnt FROM '.$DBPrefix.'topics WHERE pid='.intval($topic_id)); return $cnt[cnt]?true:false; } function GenMainMenu(){ global $DBPrefix; $r = mysqlquery('SELECT * FROM '.$DBPrefix.'topics WHERE pid=0 AND hidden=0 ORDER BY sortby ASC, id ASC'); $topics = Array(); while($topic = mysql_fetch_array($r)){ //$topic[havesub] = HaveTopicSubs($topic[id]); $topics[] = $topic; } return ApplyTemplate('./tpl/menu_first.php', Array('topics'=>$topics, 'tids'=>$tids)); } function GenSecondLevelMenu($tids){ global $DBPrefix; if(!$tids['first']) return ''; $r = mysqlquery('SELECT * FROM '.$DBPrefix.'topics WHERE pid='.intval($tids['first']).' AND hidden=0 ORDER BY sortby ASC, id ASC'); $topics = Array(); while($topic = mysql_fetch_array($r)){ if($topic[type]=='link') $topic[id] = ReLink($topic[id]); $topic[havesub] = HaveTopicSubs($topic[id]); $topics[] = $topic; } return ApplyTemplate('./tpl/menu_second.php', Array('topics'=>$topics, 'tids'=>$tids)); } function GenMenu($pid, $tpl, $arr = Array()){ global $DBPrefix; $r = mysqlquery('SELECT * FROM '.$DBPrefix.'topics WHERE pid='.intval($pid).' AND hidden=0 ORDER BY sortby ASC, id ASC'); $topics = Array(); while($topic = mysql_fetch_array($r)){ if($topic[type]=='link') $topic[id] = ReLink($topic[id]); //$topic[havesub] = HaveTopicSubs($topic[id]); $topics[] = $topic; } $arr = array_merge(Array('topics'=>$topics, 'tids'=>$tids), $arr); return ApplyTemplate($tpl, $arr); } function GenThirdLevelMenu($tids){ global $DBPrefix; if(!$tids['second']) return ''; $r = mysqlquery('SELECT * FROM '.$DBPrefix.'topics WHERE pid='.intval($tids['second']).' AND hidden=0 ORDER BY sortby ASC, id ASC'); $topics = Array(); while($topic = mysql_fetch_array($r)){ if($topic[type]=='link') $topic[id] = ReLink($topic[id]); $topic[havesub] = HaveTopicSubs($topic[id]); $topics[] = $topic; } return ApplyTemplate('./tpl/menu_third.php', Array('topics'=>$topics, 'tids'=>$tids)); } function GenSearchForm($tpl){ return ApplyTemplate($tpl); } function GetConstants(){ global $DBPrefix; $r = mysqlquery('SELECT * FROM '.$DBPrefix.'constants WHERE 1'); $constants = Array(); while($const = mysql_fetch_assoc($r)){ $constants[$const[name]] = $const[value]; } return $constants; } function GetJavaScripts(){ global $DBPrefix; global $js_folder; $r = mysqlquery('SELECT * FROM '.$DBPrefix.'js WHERE 1'); $jss = Array(); while($js = mysql_fetch_assoc($r)){ $jss[] = $js_folder.$js[module].'.js'; } return $jss; } if($_REQUEST['action']=='click_banner'){ $place = query('SELECT * FROM '.$DBPrefix.'banner_places WHERE id='.intval($_REQUEST['place_id']).''); $ban = query('SELECT * FROM '.$DBPrefix.'banners WHERE id='.intval($_REQUEST['ban_id'])); $referer = $_SERVER['HTTP_REFERER']; $url = $_SERVER['PHP_SELF'].($_SERVER['QUERY_STRING']?'?'.$_SERVER['QUERY_STRING']:''); $r = query('SELECT COUNT(*) as cnt FROM '.$DBPrefix.'banner_click_logs WHERE firstvisit="1" AND ip="'.addslashes($_SERVER['REMOTE_ADDR']).'" AND date >= CURDATE()'); mysqlquery('INSERT INTO '.$DBPrefix.'banner_click_logs SET firstvisit="'.($r[cnt]==0?'1':'0').'", referer="'.addslashes($_SERVER['HTTP_REFERER']).'", ip="'.addslashes($_SERVER['REMOTE_ADDR']).'", url="'.addslashes($url).'", date=NOW(), ban_id='.intval($ban[id]).', place_id='.intval($place[id]).''); header('Location: '.$ban[url]); exit; } $topic = query('SELECT * FROM '.$DBPrefix.'topics WHERE id ='.intval($tid).''); $mod = GetModule($topic['type']); if(!$_REQUEST['search_text']){ eval('$class = new '.$mod['cname'].';'); } $tids = GetTids($tid); $menu_first = GenMainMenu($tids); //$menu_second = GenSecondLevelMenu($tids); //$menu_third = GenThirdLevelMenu($tids); $constants = GetConstants(); $js = GetJavaScripts(); if(isset($_REQUEST['search_text'])){ $page_title = 'яПНяПНяПНяПНяПН: '.$_REQUEST['search_text']; $page_keywords = 'яПНяПНяПНяПНяПН: '.$_REQUEST['search_text']; $page_description = 'яПНяПНяПНяПНяПН: '.$_REQUEST['search_text']; $content = SearchResults(); }else{ $page_title = $class->GenPageTitle(); $page_keywords = $class->GenPageKeywords(); $page_description = $class->GenPageDescription(); $content = $class->GetContent(); } echo ApplyTemplate('./tpl/main.php', Array('tid'=>$tid, 'topic'=>$topic, 'menu_first'=>$menu_first, 'content'=>$content, 'constants'=>$constants, 'tids'=>$tids, 'page_title'=>$page_title, 'page_keywords'=>$page_keywords, 'page_description'=>$page_description, 'js'=>$js, 'class'=>$class)); disconnect(); ?>

7

Re: Вместо интерфейса в окне браузера отображается скрипт

fantasma
И MySQL тоже у вас стоит?
Что с простыми скриптами? Как они работают?

8

Re: Вместо интерфейса в окне браузера отображается скрипт

да MySQL 5.1 стоит простые скрипты работают нормально
WordPress, DLE, работают нормально

9

Re: Вместо интерфейса в окне браузера отображается скрипт

fantasma
Пока нет идей. Посмотрите в логах Apache, может там будут какие-нибудь зацепки.

10 (изменено: Hanut, 2009-01-18 22:14:32)

Re: Вместо интерфейса в окне браузера отображается скрипт

error.log Apache содержит после запуска

[Sun Jan 18 16:10:22 2009] [notice] Apache/2.2.11 (Win32) PHP/5.2.8 configured -- resuming normal operations
[Sun Jan 18 16:10:22 2009] [notice] Server built: Dec 10 2008 00:10:06
[Sun Jan 18 16:10:22 2009] [notice] Parent: Created child process 6132
[Sun Jan 18 16:10:23 2009] [notice] Child 6132: Child process is running
[Sun Jan 18 16:10:23 2009] [notice] Child 6132: Acquired the start mutex.
[Sun Jan 18 16:10:23 2009] [notice] Child 6132: Starting 64 worker threads.
[Sun Jan 18 16:10:23 2009] [notice] Child 6132: Starting thread to listen on port 80.

11

Re: Вместо интерфейса в окне браузера отображается скрипт

В httpd.conf попробуйте добавить строку:
ServerName localhost:80

Корень попробуйте прописать так:
<Directory />
    Options Includes Indexes FollowSymLinks
    AllowOverride All
    Allow from all
</Directory>

А остальные настройки <Directory "I:/server/apache-sborka/htdocs"> закомментируйте.

php.ini, измените:
short_open_tag = On
register_long_arrays = On
magic_quotes_gpc = Off
session.save_path поместите внутрь контейнера [Session]

12

Re: Вместо интерфейса в окне браузера отображается скрипт

Огромное спасибо все заработало как надо

13

Re: Вместо интерфейса в окне браузера отображается скрипт

Hanut сказал:

Ars22
Перво-наперво проверьте 7 и 11 пункты из установки Apache.
DirectoryIndex index.html index.htm index.shtml index.php
AddType application/x-httpd-php .php

Если здесь ошибок нет, то отошлите все конфигурационные файлы на hanut@php-myadmin.ru, со ссылкой на эту тему.

А обязательно добавлять и зачем он нужен?

 AddType application/x-httpd-php-source .phps

14

Re: Вместо интерфейса в окне браузера отображается скрипт

hozman
.phps - для вывода исходного кода PHP скрипта. Иногда, при разработке, бывает удобно, но обязательной данная строка не является. А на рабочем сервере ей вообще делать нечего.

15

Re: Вместо интерфейса в окне браузера отображается скрипт

Hanut сказал:

hozman
.phps - для вывода исходного кода PHP скрипта. Иногда, при разработке, бывает удобно, но обязательной данная строка не является. А на рабочем сервере ей вообще делать нечего.

В пояснении к порту php (файл vi /usr/ports/lang/php5/pkg-message.mod) находится запись:

Make sure index.php is part of your DirectoryIndex.

You should add the following to your Apache configuration file:

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

Вот это и поспособствовало тому, чт оя прописал.