За последние 24 часа нас посетили 17819 программистов и 1608 роботов. Сейчас ищут 1370 программистов ...

Проблемы с установкой PHP v5.2.3 + MySQL v4.1.22 на IIS 5.0

Тема в разделе "Установка PHP", создана пользователем Mielofon, 2 авг 2007.

  1. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    Ну ни как не получается.

    Проблем несколько:

    1. Код:
    index1.php:
    PHP:
    1. <?php
    2.  
    3.  
    4. echo '<p>1 Hello World</p>';
    5. require_once( 'init.php' );
    6. echo '<p>2 Hello World</p>';
    7. require_once( '.\init.php' );
    8. echo '<p>3 Hello World</p>';
    9. ?>
    приводит к тому, что выводится:

    Код (Text):
    1. 1 Hello World
    2.  
    3. 2 Hello World
    4. ПРЕДУПРЕЖДЕНИЕ: [2] require_once(.\init.php) [function.require-once]: failed to open stream: No such file or directory (Строка: 8 файла C:\Inetpub\test\index1.php)
    т.е. файл init.php есть в том же каталоге, что и index1.php, но вот обнаруживать его как require_once( '.\init.php' ); отказывается :-(

    Тут фрагмент не моего кода (IPB форум), так что править его не стоит и вина явно в том, что я что то не так поставил настроил.

    2. MySQL стоит, PHP стоит (версии в топике). И Connector/PHP http://www.mysql.org/downloads/connector/php/ слил и поставил. А при попытке обратится к MySQL в логе получаем:

    Код (Text):
    1. [02-Aug-2007 19:31:06] PHP Warning:  PHP Startup: mysql: Unable to initialize module
    2. Module compiled with module API=20050922, debug=0, thread-safety=1
    3. PHP    compiled with module API=20060613, debug=0, thread-safety=1
    4. These options need to match
    5.  in Unknown on line 0
    Ну не совместимы они промеж друг друга.

    Ну и вопрос:
    Что со всем этим можно сделать?
    Или где взять дистрибутивы (требования IPB * PHP 4.1.0 (или выше) * MySQL 3.23 (или выше)), которые можно поставить и они не будут между собой конфликтовать.
    Правда MySQL ниже 4.1 не выйдет - база у нас уже..
     
  2. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    2й вопрос снялся. Осталось только с require_once( '.\init.php' ); разобраться.
     
  3. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    а
    PHP:
    1. require_once( '.[b]/[/b]init.php' );
    cработает?
    Бэкслэши это ж линуховые разделители...
    Или должно понимать и прямые, и обратные?..
     
  4. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Ничего не путаешь? :) Это дефолтный вендовый разделитель. Но венде, мягко говоря, пофиг, какой слеш ты используешь.
     
  5. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    Нее. Таже самая ошибка.
    Да и не могу (и не хочу) я лезть в чужие исходники.
     
  6. pel

    pel Активный пользователь

    С нами с:
    19 янв 2007
    Сообщения:
    569
    Симпатии:
    0
    Адрес:
    Симферополь
    ага, ясно. Значит, путаю :)
     
  7. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    .\ ./ .\\ - эффект одинаковый..
     
  8. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    *nix это не только линукс, но и еще много ОС.
     
  9. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    Mielofon
    когда в файле вызывается include* или require*, поиск файла происходит не относительно того файла, в котором происходит вызов, а относительно файла, который вызывался пользователем в адресной строке клиента (ну и ещё include_path из php.ini). если вызываются файлы из разных директорий, то часто проблема именно в этом.

    взгляни на примеры на
    http://www.php.net/manual/en/function.include.php
     
  10. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    файл index1.php (исходник которого я указал), init.php лежат в одном каталоги и это корень домашнего каталога сайта.

    и теперь при вызове requery_once из index1.php с параметрами 'init.php' и './init.php' это не есть вызов одного и того же файла?

    ЗЫ по ссылке пошел - пытаюсь понять, что написано.. :)
     
  11. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    какой у вас include_path в php.ini?
     
  12. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    include_path ./;C:/Inetpub/test/
    где C:/Inetpub/test/ - домашний каталог сайта
     
  13. stas_t

    stas_t Активный пользователь

    С нами с:
    24 апр 2007
    Сообщения:
    500
    Симпатии:
    0
    Адрес:
    Courbevoie, France
    а если записать его так (и перезапустить апач, конечно):
    include_path = "./;C:/Inetpub/test/"
     
  14. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    Тоже самое выходит.
     
  15. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    И кстати перезагрузить апач я не могу - у меня IIS
     
  16. Mielofon

    Mielofon Активный пользователь

    С нами с:
    2 авг 2007
    Сообщения:
    9
    Симпатии:
    0
    Маразм крепчает :-(

    Выяснилось, что в корне не работает, а в подпапке сайта работает :-(

    Сайт http://s-test.sprut.ru домашняя папка c:\inetpub\test\

    hemindex.php:
    Код (Text):
    1. <?php
    2. error_reporting(E_ALL);
    3. $d = date("i:s");
    4. echo $d."<br />";
    5. echo '<p>1 Hello World</p>';
    6. $t = 1;
    7. require_once( './heminit.php' );
    8. echo '<p>2 Hello World</p>';
    9. $t = 2;
    10. require_once( './heminit.php' );
    11. echo '<p>3 Hello World</p>';
    12. ?>
    heminit.php:
    Код (Text):
    1. <?php
    2.   echo "init$t ";
    3. ?>
    результат:
    Код (Text):
    1. 03:29
    2.  
    3. 1 Hello World
    4.  
    5. Warning: require_once(./heminit.php) [function.require-once]: failed to open stream: No such file or directory in C:\Inetpub\stest\hemindex.php on line 7
    6.  
    7. Fatal error: require_once() [function.require]: Failed opening required './heminit.php' (include_path='.\;C:\Inetpub\sapromat_test.sprut.ru\') in C:\Inetpub\stest\hemindex.php on line
    Но те же 2 php файла помещённые в подкаталог h\ и получаем по
    PHP:
    1. http://s-test.sprut.ru/h/hemindex.php
    :
    Код (Text):
    1. 05:32
    2.  
    3. 1 Hello World
    4. init1
    5.  
    6. 2 Hello World
    7.  
    8. 3 Hello World
    Мда..