Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Чем extension отличаеться от zend_extension и zend_extension_ts в php.ini?
 
 автор: dump   (22.11.2011 в 07:59)   письмо автору
 
 

Чем опция extension отличаеться от опций zend_extension и zend_extension_ts в php.ini?

  Ответить  
 
 автор: cheops   (22.11.2011 в 11:47)   письмо автору
 
   для: dump   (22.11.2011 в 07:59)
 

Первое - это расширение PHP, второе - движка Zend, на котором PHP работает. Т.е. если захотите написать свой отладчик, вам придется писать расширение Zend.

zend_extension_ts сейчас не используется, вместо него всегда следует указывать zend_extension. Раньше zend_extension_ts сообщала, что это потоково-безопасное расширение (Thread Safe).

  Ответить  
 
 автор: dump   (22.11.2011 в 13:25)   письмо автору
 
   для: cheops   (22.11.2011 в 11:47)
 

>Первое - это расширение PHP, второе - движка Zend, на котором PHP работает.
А какая разница между ними? Расширение движка Zend - это софт, который более глубоко интегрирован в интерпретатор, а расширение php, это просто добалеине новых функций? И для этих двух случаев есть своё api в php-интерпретаторе?

>zend_extension_ts сообщала, что это потоково-безопасное расширение (Thread Safe)
Всмысле "потоково-безопасное расширение"?

>zend_extension_ts сейчас не используется,
А почему не используеться?

  Ответить  
 
 автор: cheops   (22.11.2011 в 14:00)   письмо автору
 
   для: dump   (22.11.2011 в 13:25)
 

>А какая разница между ними? Расширение движка Zend - это софт, который более глубоко
>интегрирован в интерпретатор, а расширение php, это просто добалеине новых функций? И для
>этих двух случаев есть своё api в php-интерпретаторе?
Грубо говоря да. На Zend можно создать интерпретатор какого-то другого языка. У этого языка могут быть расширения. А можно создать расширение для движка и быстро интегрировать их в оба языка, которые на нем будут построены.

>>zend_extension_ts сообщала, что это потоково-безопасное расширение (Thread Safe)
>Всмысле "потоково-безопасное расширение"?
Может безопасно выполняться в составе модуля Apache (т.е. речь идет не о CGI-подключении). Это не очень актуально для UNIX-подобных систем, там модель немного другая... но под Windows очень актуально, так как все реализовано через потоки (нити), а не через процессы.

>>zend_extension_ts сейчас не используется,
> А почему не используеться?
Сейчас для PHP, который устанавливается как внешнее CGI-приложение и как модуль Apache - два разных дистрибутива, нет смысла явно указывать, что это Thread Safe, так как это определяется на уровне дистрибутива и подключения к Apache. Вы сейчас просто не можете подключить дистрибутив для CGI в качестве модуля.

  Ответить  
 
 автор: dump   (22.11.2011 в 15:31)   письмо автору
 
   для: cheops   (22.11.2011 в 14:00)
 

>Может безопасно выполняться в составе модуля Apache (т.е. речь идет не о CGI-подключении)

Т.е. раньше, если скажем мы в php.ini указали zend_extension = php_debug.dll
то при загрузки сервера с php-модулем, php выдало бы ошибку, что в составе имееться "потоково-опасное" zend-расширение, и поэтому запустить не получиться в составе модуля сервера?

И можно ли раньше было применить по выбору опции zend_extension или zend_extension_ts, сделав таким образом расширение либо опасным, либо нет?

  Ответить  
 
 автор: cheops   (22.11.2011 в 15:59)   письмо автору
 
   для: dump   (22.11.2011 в 15:31)
 

Я не очень отслеживал ситуацию, так как эта проблема вообще поставила крест на использовании Apache 2.0 под Windows (в качестве рабочего, а не локального сервера). Посмотрите на динамику использования серверов NetCraft - видите провал 2006-2010 годов? Он вызван оттоком пользователей Apache под Windows. Т.е. Windows, в качестве серверной системы все-равно приходится использовать, а вот использовать Apache 2.0 под ним было опасно и не использовали. Только с появлением Apache 2.2 ситуация стала меняться и Apache снова занял свои позиции (ну и понятно экономический кризис бюджеты подкосил).

>И можно ли раньше было применить по выбору опции zend_extension или zend_extension_ts,
>сделав таким образом расширение либо опасным, либо нет?
Это скорее режимы использования расширения, т.е. часть возможностей просто не работает или работает не так. Ведь выполнять код в составе Apache и просто php.exe - это две разные задачи, php.exe можно заставить что угодно делать - хоть окна открывать, хоть музыку проигрывать, хоть лоток компакт-диска открывать, Apache - этого делать не будет и не позволит своим расширениям так поступать.

  Ответить  
 
 автор: Sfinks   (22.11.2011 в 20:10)   письмо автору
 
   для: cheops   (22.11.2011 в 14:00)
 

>Вы сейчас просто не можете подключить дистрибутив для CGI в качестве модуля.

Ё-МОЁ, я извиняюсь! Вы бы еще это дописали бы в свою статью, по установке апача 2.2 и PHP.... Я например скачал PHP NTS и 3 дня бился над тем, чтоб подключить его как модуль =( Искал по сети подходящий php5apache2_2.dll, который заработает! Пока наконец не плюнул и не подключил как CGI.

  Ответить  
 
 автор: cheops   (22.11.2011 в 21:08)   письмо автору
 
   для: Sfinks   (22.11.2011 в 20:10)
 

Да надо бы... на самом деле там 4 варианта дистрибутива, мы уж даже выложили нужный дистрибутив PHP, потому что невозможно сослаться по-нормальному на тот который нужно (да я сам его найти на php.net уже не могу - то ли убрали, то ли ищу плохо)... займусь правкой статьи на днях.

  Ответить  
 
 автор: cheops   (22.11.2011 в 21:45)   письмо автору
 
   для: Sfinks   (22.11.2011 в 20:10)
 

Исправлено, можете попробовать подключить как модуль (если еще актуально) - теперь должно получится.

  Ответить  
 
 автор: Sfinks   (24.11.2011 в 00:52)   письмо автору
 
   для: cheops   (22.11.2011 в 21:45)
 

Происходит интересная вешь..... Правлю httpd.conf, перезагружаю сервер....
service is restarting.
service has restarted.
Вроде все нормально.... НО! После этого PHP работает как модуль, апач тоже работает (в браузере), а в утилитке для перезапуска апача и в службах винды отображается что апач выключен!!!!! При этом его уже нельзя не запустить, не перезапустить, но, повторяю, в браузере все работает!!! Кошмар какой-то! В общем на локале это не принципиально. Пусть будет как было - нечто среднее - подключение через FastCGI.

  Ответить  
 
 автор: cheops   (24.11.2011 в 01:28)   письмо автору
 
   для: Sfinks   (24.11.2011 в 00:52)
 

А какая версия Apache используется?

  Ответить  
 
 автор: Sfinks   (24.11.2011 в 22:09)   письмо автору
 
   для: cheops   (24.11.2011 в 01:28)
 

Апач 2.2.17. ПХП 5.2.17

  Ответить  
 
 автор: Sfinks   (24.11.2011 в 22:43)   письмо автору
 
   для: cheops   (24.11.2011 в 01:28)
 

И после перезагрузки винды заработало как надо

  Ответить  
 
 автор: Sfinks   (24.11.2011 в 22:51)   письмо автору
 
   для: cheops   (24.11.2011 в 01:28)
 

А, не, не как надо. Некоторые расширения пыха не подключены. Например mysql и mysqli.

  Ответить  
 
 автор: cheops   (25.11.2011 в 00:09)   письмо автору
 
   для: Sfinks   (24.11.2011 в 22:51)
 

Так они по умолчанию все подключены, или соответствующие директивы в php.ini раскомментированы, а библиотеки не подцепились?

  Ответить  
 
 автор: Sfinks   (25.11.2011 в 00:51)   письмо автору
 
   для: cheops   (25.11.2011 в 00:09)
 

именно так.
Даж не меняя php.ini меняю тип подключения на "как модуль" в httpd.conf, рестарт сервера и мускул отваливается. Меняю подключение обратно на "через фастцги" и он работает

  Ответить  
 
 автор: Sfinks   (25.11.2011 в 00:54)   письмо автору
 
   для: cheops   (22.11.2011 в 11:47)
 

> zend_extension_ts сейчас не используется
Ошибаетесь.... Вот тока что подключал к пыху дебаггер и в инструкции в строке "zend_extension_ts= "C:\...." не заметил "_ts" и ниче не работало..... тыкался, тыкался.... Заметил описку, дописал и заработало.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования