Sziasztok !
Feltettem a PHP 5.2.5-öt az apache mellé úgy, hogy CGI-ként fusson, de az a gond, hogy 8másodpercet kell várni a php-s oldalaknál, hogy a php-cgi.exe elkezdje az oldal feldolgozását. ha modulként teszem be, akkor viszont alig 1másodperc kell, és be is töltötte az oldalt (ebből az következik, hogy nem maga az odalon levő kód a lassú).
Apache konfig (csak a fontosabbak):
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule cache_module modules/mod_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule dir_module modules/mod_dir.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule env_module modules/mod_env.so
LoadModule gzip_module modules/mod_gzip.so
LoadModule isapi_module modules/mod_isapi.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule mime_module modules/mod_mime.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule security2_module modules/mod_security2.so
LoadModule ssl_module modules/mod_ssl.so
LoadModule unique_id_module modules/mod_unique_id.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
<IfModule dir_module>
DirectoryIndex index.php index.html
</IfModule>
<IfModule mime_module>
TypesConfig conf/mime.types
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
<Location />
AddOutputFilterByType DEFLATE text/html text/plain text/css text/xml application/x-javascript application/x-httpd-php application/x-httpd-php-source
</Location>
<IfModule alias_module>
ScriptAlias /php/ "C:/win32/usr/local/php/"
</IfModule>
<IfModule actions_module>
Action application/x-httpd-php "/php/php-cgi.exe"
</IfModule>
<Directory "C:/win32/usr/local/php/">
Options None
AllowOverride None
Order allow,deny
Allow from all
</Directory>
Timeout 10
KeepAlive On
MaxKeepAliveRequests 500
MaxRequestsPerChild 1000
KeepAliveTimeout 5
SetEnv PHPRC "C:/win32/etc/apache2/php"
<IfModule mpm_prefork_module>
StartServers 100
MinSpareServers 65
MaxSpareServers 100
MaxClients 256
ServerLimit 256
</IfModule>
PHP konfiguráció (csak a fontosabbak):
; Language Options
;;;;;;;;;;;;;;;;;;
engine = On
safe_mode = On
safe_mode_include_dir = "C:/win32/usr/share/php;C:/win32/usr/share/php"
disable_functions = dl exec ini_alter leak openlog passthru proc_close proc_open shell_exec system virtual ini_restore syslog disk_free_space disk_total_space diskfreespace phpinfo
disable_classes =
expose_php = Off
max_execution_time = 60
max_input_time = 75
memory_limit = 64M
; Paths and Directories
;;;;;;;;;;;;;;;;;;;;;;;
include_path="C:/win32/usr/share/pear;C:/win32/usr/share/php"
extension_dir = "C:/win32/usr/lib/php5"
; Dynamic Extensions
;;;;;;;;;;;;;;;;;;;;
extension=php_gd2.dll
extension=php_mbstring.dll
extension=php_mcrypt.dll
extension=php_suhosin.dll
extension=php_mysql.dll
extension=php_openssl.dll
- 1998 megtekintés
Hozzászólások
fastcgi?
--
Unix, Perfectly "natural" after five or ten years.
- A hozzászóláshoz be kell jelentkezni
Nem, simán a php.net-en található leírás alapján csináltam. fastcgi modult nem használok.
Esetleg ha kell valami, amit nem írtam le, akkor szóljatok.
- A hozzászóláshoz be kell jelentkezni
A PHP CGI-ként sz*r, ezt a PHP-fejlesztők is beismerik.
It doesn't matter if you like my song as long as you can hear me sing
- A hozzászóláshoz be kell jelentkezni
"fastcgi modult nem használok."
azt probaltam sugallni, hogy kellene :)
--
Unix, Perfectly "natural" after five or ten years.
- A hozzászóláshoz be kell jelentkezni
mod_php miért nem jó?
It doesn't matter if you like my song as long as you can hear me sing
- A hozzászóláshoz be kell jelentkezni
mod_php is futott, de most az lett az igény, hogy futás közben lehessen változtatni a php.ini beálításait. Egyébként tuti, hogy nem az a gond, hogy CGI-ként fut a php, meg hogy nincs fastcgi modul, ugyanis más szerveren (amin szintén nincs fastcgi, és szintén CGI-ként fut a php) alig 1mp. a válaszolási idő.
- A hozzászóláshoz be kell jelentkezni
Windowson sajnos lassú. Esetleg a mod_cgid-t érdemes kipróbálni (php.net comment).
It doesn't matter if you like my song as long as you can hear me sing
- A hozzászóláshoz be kell jelentkezni
Hmmm ezt a mod_cgid-t honnan tudom letölteni ? A modules könyvtáramban csak mod_cgi.so van.
- A hozzászóláshoz be kell jelentkezni
Hát igen, windows alatt egy fél univerzum elmúlik, mire elindul egy processz.
Nemhiába nincsen ottan fork sem...
--
The Net is indeed vast and infinite...
http://gablog.eu
- A hozzászóláshoz be kell jelentkezni
Mert pl. mod_php-vel csak egy konfigod lehet, és opciók közül nem lehet mindent apache konfigbol oldalanként állítani.
Például ha nem szeretnéd, hogy php-ből működjön a sys tem("cat /etc/pass wd"), akkor le kell tiltanod az összes programfuttatásra lehetőséget adó függvényt. (Az ilyen típusú támadás ellen a base_dir nem nyújt semmilyen védelmet sem, apache chroot alatt túl sok minden nem hajlandó működni, alap webhostinghoz site based virtualizáció overkill.)
Ezt viszont szerver-instanciánként csak egyszer állíthatod, így ugyanott nem fogsz tudni programfuttatást igénylő szolgáltatást, pl. egy cactit kiszolgálni.
Ellenben ha cgi-ként futtatod, php-nként használhatsz másik konfigot.
--
The Net is indeed vast and infinite...
http://gablog.eu
- A hozzászóláshoz be kell jelentkezni
en spec szeretem php 5.2.5-ot apache 2.2.x-szel es mod_fcgid-vel
t
- A hozzászóláshoz be kell jelentkezni
Megpróbáltam az fcgid, és a fastcgi modult is, de az eredmény annyi lett, hogy most nem ~8mp.-et kell várni a válaszadási időre, hanem ~6-7mp-et "csak".
- A hozzászóláshoz be kell jelentkezni
CGI-s PHP-t használok, a végrehajtás legfeljebb 1-2 tizedmásodperc.
Úgyhogy más lehet a gond, pl. sokáig tarthat neki, amíg konnektál az adatbázisszerverbe, ilyesmire érdemes gondolni.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
Sebességmérés alapján az adatbázishoz csatlakozási idő: 0.01293s, és 0.05876s között van (Ezt a mérést elvégeztem modulként-, és CGIként futó php-n is. Az eredmény ugyanaz).
Közben rájöttem, hogy a CGI feldolgozza 1-2másodperc alatt a weblapot, aztán leáll a php-cgi.exe (ami azt jelenti, hogy kész a feldolgozással; mindezt a feladatkezelőből néztem), majd 5-6másodperc után hirtelen beadja a generált lapot a böngésző (több böngészőből is próbáltam mielőtt valaki erre gyanakodna). Fogalmam sincs mi lehet a probléma oka :(.
- A hozzászóláshoz be kell jelentkezni
Még egy ötlet. Nem fejeződik be a PHP program (vagyis nem záródik le az stdout-ja), a webszerver pedig csak vár.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
Az error log ezt írja ki:
[Thu Feb 21 22:00:03 2008] [error] [client 86.101.242.57] script not found or unable to stat: C:/web/etc/apache2/C
[Thu Feb 21 22:00:03 2008] [error] [client 86.101.242.57] script not found or unable to stat: C:/web/etc/apache2/C
[Thu Feb 21 22:00:36 2008] [error] [client 86.101.242.57] script not found or unable to stat: C:/web/etc/apache2/C
[Thu Feb 21 22:00:36 2008] [error] [client 86.101.242.57] script not found or unable to stat: C:/web/etc/apache2/C
[Thu Feb 21 22:01:17 2008] [error] [client 86.101.242.57] Error in my_thread_global_end(): 1 threads didn't exit\r<
Ennek lehet valami köze a lassúsághoz ?
- A hozzászóláshoz be kell jelentkezni
Nem talál egy fájlt (C:/web/etc/apache2/C), fogalmam sincs, mi ez.
Ez (1 threads didn't exit) belefér abba, amit gondoltam, hogy nem fejeződik be a PHP program.
Hogy világosabb legyen: A webszerver futtatja a CGI programot (jelen esetben a PHP-t) méghozzá úgy, hogy a PHP stdout-ja nem a konzolra megy, hanem a webszerver olvassa egy pipe-ból. Amit az stdoutra kiír a PHP program, azt küldi a webszerver a böngészőnek. A webszerver onnan veszi észre, hogy a PHP program elkészült, hogy amikor a PHP kilép, akkor lezáródik az a pipe, amit a webszerver olvasna. Ez az, ami nem történik meg. Ilyenkor a szerver vár egy kicsit (ez lehet az a 6-7 másodperc), aztán lelővi a PHP-t, és ami addig jött a pipe-on, azt küldi a böngészőnek. Legalábbis nekem ez jut eszembe a dologról.
--
CCC3
- A hozzászóláshoz be kell jelentkezni
Akkor jól gondoltam, hogy egy fájlt hiányol, már csak azt nem értem, hogy milyen "C"-t hiányol ?! Ilyen fájl abszolút nem volt soha és semmilyen konfigurációs fájlban nincs olyan elérési út, aminek "/C" lenne a vége :?.
- A hozzászóláshoz be kell jelentkezni
Sikerült eljutnom odáig, hogy a MySQL-le van valami. Ha csinálok egy phpinfo() tartalmú oldalt, akkor azt lefuttatja 1,229mp. alatt. Viszont ha egy oldal MySQL csatlakozást igényel, akkor a php kód lefut, de nem fejeződik be (mint ahogy kiderült a korábbiakban), így vár a webszerver, aztán 4-6mp. után lelövi a php-cgi.exe-t (és ez tart sokáig).
- A hozzászóláshoz be kell jelentkezni
ott valami nagyon el van qrva, ha 1.229 mp egy phpinfo. mielőtt bárki jön a windows-zal, azon is ~ugyanolyan gyors szokott lenni.
forduljon kezelőorvosához, gyógyszerészéhez.
- A hozzászóláshoz be kell jelentkezni
Ez van... a válaszidő 0,500s átlagban (és ~1mp. mire megjeleníti az adatokat, illetve a 3képet (a php képét, a suhosin-patch képét, és a zend engine képét). Tapasztalat szerint ha leveszem a suhosin-patcht, akkor ~0,378s a válaszidő.
- A hozzászóláshoz be kell jelentkezni
mint irtak fentebb windows, php cgi-kent fut, es windowson nem tul gyorsan indulnak a processek
Tyrael
- A hozzászóláshoz be kell jelentkezni
Sikerült megoldani. Utánanéztem, és ez egy php bug. A lényeg annyi, hogy le kell tölteni a php5.2.1-et, és abból ki kell szedni a libmysql.dll -t, majd ezzel a fájllal felül kell írni a már telepített php (esetemben a php5.2.5) libmysql.dll-jét. Ezután már rendesen fog működik :).
Mindenkinek köszönöm a segítséget !
- A hozzászóláshoz be kell jelentkezni
Kötelező windows-on kínlódnod apache-al? Nincs lehetőséged az apache stb. számára "natívabb" környezetben dolgozni?
szerk: látom megoldva.. :-)
Valaki tud valami saját tapasztalatot mondnai v. benchmark-ot windwos-os apache vs. linux (stb.) apache összehasonlításról?
- A hozzászóláshoz be kell jelentkezni