|
|
|
| Чем опция extension отличаеться от опций zend_extension и zend_extension_ts в php.ini? | |
|
|
|
|
|
|
|
для: dump
(22.11.2011 в 07:59)
| | Первое - это расширение PHP, второе - движка Zend, на котором PHP работает. Т.е. если захотите написать свой отладчик, вам придется писать расширение Zend.
zend_extension_ts сейчас не используется, вместо него всегда следует указывать zend_extension. Раньше zend_extension_ts сообщала, что это потоково-безопасное расширение (Thread Safe). | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 11:47)
| | >Первое - это расширение PHP, второе - движка Zend, на котором PHP работает.
А какая разница между ними? Расширение движка Zend - это софт, который более глубоко интегрирован в интерпретатор, а расширение php, это просто добалеине новых функций? И для этих двух случаев есть своё api в php-интерпретаторе?
>zend_extension_ts сообщала, что это потоково-безопасное расширение (Thread Safe)
Всмысле "потоково-безопасное расширение"?
>zend_extension_ts сейчас не используется,
А почему не используеться? | |
|
|
|
|
|
|
|
для: 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 в качестве модуля. | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 14:00)
| | >Может безопасно выполняться в составе модуля Apache (т.е. речь идет не о CGI-подключении)
Т.е. раньше, если скажем мы в php.ini указали zend_extension = php_debug.dll
то при загрузки сервера с php-модулем, php выдало бы ошибку, что в составе имееться "потоково-опасное" zend-расширение, и поэтому запустить не получиться в составе модуля сервера?
И можно ли раньше было применить по выбору опции zend_extension или zend_extension_ts, сделав таким образом расширение либо опасным, либо нет? | |
|
|
|
|
|
|
|
для: 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 - этого делать не будет и не позволит своим расширениям так поступать. | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 14:00)
| | >Вы сейчас просто не можете подключить дистрибутив для CGI в качестве модуля.
Ё-МОЁ, я извиняюсь! Вы бы еще это дописали бы в свою статью, по установке апача 2.2 и PHP.... Я например скачал PHP NTS и 3 дня бился над тем, чтоб подключить его как модуль =( Искал по сети подходящий php5apache2_2.dll, который заработает! Пока наконец не плюнул и не подключил как CGI. | |
|
|
|
|
|
|
|
для: Sfinks
(22.11.2011 в 20:10)
| | Да надо бы... на самом деле там 4 варианта дистрибутива, мы уж даже выложили нужный дистрибутив PHP, потому что невозможно сослаться по-нормальному на тот который нужно (да я сам его найти на php.net уже не могу - то ли убрали, то ли ищу плохо)... займусь правкой статьи на днях. | |
|
|
|
|
|
|
|
для: Sfinks
(22.11.2011 в 20:10)
| | Исправлено, можете попробовать подключить как модуль (если еще актуально) - теперь должно получится. | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 21:45)
| | Происходит интересная вешь..... Правлю httpd.conf, перезагружаю сервер....
service is restarting.
service has restarted.
Вроде все нормально.... НО! После этого PHP работает как модуль, апач тоже работает (в браузере), а в утилитке для перезапуска апача и в службах винды отображается что апач выключен!!!!! При этом его уже нельзя не запустить, не перезапустить, но, повторяю, в браузере все работает!!! Кошмар какой-то! В общем на локале это не принципиально. Пусть будет как было - нечто среднее - подключение через FastCGI. | |
|
|
|
|
|
|
|
для: Sfinks
(24.11.2011 в 00:52)
| | А какая версия Apache используется? | |
|
|
|
|
|
|
|
для: cheops
(24.11.2011 в 01:28)
| | Апач 2.2.17. ПХП 5.2.17 | |
|
|
|
|
|
|
|
для: cheops
(24.11.2011 в 01:28)
| | И после перезагрузки винды заработало как надо | |
|
|
|
|
|
|
|
для: cheops
(24.11.2011 в 01:28)
| | А, не, не как надо. Некоторые расширения пыха не подключены. Например mysql и mysqli. | |
|
|
|
|
|
|
|
для: Sfinks
(24.11.2011 в 22:51)
| | Так они по умолчанию все подключены, или соответствующие директивы в php.ini раскомментированы, а библиотеки не подцепились? | |
|
|
|
|
|
|
|
для: cheops
(25.11.2011 в 00:09)
| | именно так.
Даж не меняя php.ini меняю тип подключения на "как модуль" в httpd.conf, рестарт сервера и мускул отваливается. Меняю подключение обратно на "через фастцги" и он работает | |
|
|
|
|
|
|
|
для: cheops
(22.11.2011 в 11:47)
| | > zend_extension_ts сейчас не используется
Ошибаетесь.... Вот тока что подключал к пыху дебаггер и в инструкции в строке "zend_extension_ts= "C:\...." не заметил "_ts" и ниче не работало..... тыкался, тыкался.... Заметил описку, дописал и заработало. | |
|
|
|