I noticed that the spam bots like christmas too. The number of detected spam increased . The pictures show it.
first script for mod_lua apache2.3/2.4
function handle(r) r.content_type = "text/html" --r.headers_out["X-Powered-By"] = "mod_lua; " .. _VERSION r:puts("Hi!") return apache2.OK end
Mod lua expects a function with the name handle() else there is a 500 Error. The error handling is pretty anoying…
compile lua on windows
Grab the “newest” (2008) http://www.lua.org/ftp/lua-5.1.4.tar.gz
unpack it. Compiling with VC++ is very easy.
Open the x64 %comspec% /E:ON /V:ON /T:0E /K “C:\Program Files\Microsoft SDKs\Windows\v7.0\Bin\SetEnv.cmd” /Release
or x86 command line
%comspec% /k “”C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat”” x86
browse to lua folder and run
etc\luavs copy /y src\*.* .\
Done!
build mod_geoip
Obtain GeoIP-1.4.6 from maxmind.com and built per included instructions.
Build Module against an IPv6 Enabled Apache Build
Obtain GeoIP-1.4.6 from maxmind.com and built per included instructions. Build Module against an IPv6 Enabled Apache Build del *.obj *.exp *.lib *.so set APACHE=C:\Apache22 set GEOIPROOT=C:\Build\GeoIP-1.4.6 cl /nologo /MD /O2 /LD /W3 -DWIN32 -D_WIN32 -I%GEOIPROOT%\libGeoIP -I%APACHE%\include /c /Fomod_geoip.obj mod_geoip.c link /NODEFAULTLIB:LIBCMT kernel32.lib "%APACHE%\lib\libhttpd.lib" "%APACHE%\lib\libapr-1.lib" "%APACHE%\lib\libaprutil-1.lib" "%GEOIPROOT%\libGeoIP\GeoIP.lib" /nologo /subsystem:windows /dll /machine:I386 /out:mod_geoip.so mod_geoip.obj
patch requires admin privileges on Windows 7
The patch.exe requires admin privileges on Windows 7. This is pretty annoying! The first thing that worked was just renaming the file to pach.exe Stupid windows. But I didn’t like that cause than I mostly typed it wrong and patch command was missing. I found a better solution:
Create a text file in the same directory with the name patch.exe.manifest
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2"> <security> <requestedPrivileges> <requestedExecutionLevel level="asInvoker"/> </requestedPrivileges> </security> </trustInfo> </assembly>
Save as UTF8. Now it works. Well I have to test if it is possible to embedd the manifest than good bye $%&# asking for admin permission
Giving mod_logrotate a signature
This is my first trial giving a third party module a signature.
--- mod_log_rotate.c.orig 2008-07-24 13:17:45.000000000 +0200 +++ mod_log_rotate.c 2010-11-21 02:31:43.123503300 +0100 @@ -399,6 +399,19 @@ return add; } +/* map into the first apache */ +static int log_rotate_post_config( apr_pool_t * p, apr_pool_t * plog, apr_pool_t * ptemp, server_rec * s) +{ + ap_add_version_component(p, "mod_log_rotate/1.00"); + return OK; +} + +static void log_rotate_register_hooks(apr_pool_t *p) +{ + ap_hook_post_config( log_rotate_post_config, NULL, NULL, APR_HOOK_MIDDLE ); +} + + module AP_MODULE_DECLARE_DATA log_rotate_module = { STANDARD20_MODULE_STUFF, NULL, /* create per-dir config */ @@ -406,6 +419,6 @@ make_log_options, /* server config */ merge_log_options, /* merge server config */ rotate_log_cmds, /* command apr_table_t */ - NULL /* register hooks */ + log_rotate_register_hooks /* register hooks */ };
reverse proxy for utorrent part 2
In my last post about utorrent (µtorrent) I was frustrated that I wasn’t able to change the url from /gui/ to /tor/
Woot! In apache 2.3 which will be apache 2.4 and I think it will be released in early 2011 the proxy module is much better and there it works to have a different URL :-) Even as ALPHA or BETA version the new apache rocks a lot and runs stable. In condition with mod_fcgid it is real cool technology e.g. running PHP separated form apache that allows to run different PHP version of the server in vhosts or directories. Also running a non thread safe PHP version. Speed! IPv6 would be fine, but the offered patches are not applied to trunk :-/There is an annoying bug in mod_fcgid. I’m glad I found a fix for it (help from Tom Donovan and Sob).
Disable AllowOverride (htaccess to httpd.conf)
AllowOverride is one of the things that slow down a lot. Disabling it makes apache faster. It is a horror to migrate all .htaccess files by hand. BUT here is a PHP script from Paul Reinheimer which makes it realy easy :-)
Get it htaccess.php
tune your server!
webdesigners vs developers
There’s a nice picture about webdevs vs pixeldroppers xD
crashing fcgid 2.3.6 on windows
On Windows fcgid crashes apache when apache do a graceful restart (httpd -k restart). Here is a patch that should fix that. This patch in inspired from Tom Dovovan.
Index: modules/fcgid/fcgid_pm_main.c =================================================================== --- modules/fcgid/fcgid_pm_main.c (revision 1037552) +++ modules/fcgid/fcgid_pm_main.c (working copy) @@ -375,7 +375,9 @@ proc->diewhy = FCGID_DIE_SHUTDOWN; proc_print_exit_info(proc, exitcode, exitwhy, main_server); - apr_pool_destroy(proc->proc_pool); + #ifndef Win32 + apr_pool_destroy(proc->proc_pool); + #endif proc->proc_pool = NULL; return 1; } Index: modules/fcgid/fcgid_pm_win.c =================================================================== --- modules/fcgid/fcgid_pm_win.c (revision 1037552) +++ modules/fcgid/fcgid_pm_win.c (working copy) @@ -123,7 +123,9 @@ "mod_fcgid: can't create wake up thread"); exit(1); } - + apr_pool_cleanup_register(pconf, main_server, + procmgr_stop_procmgr, apr_pool_cleanup_null); + return APR_SUCCESS; } @@ -249,8 +251,6 @@ apr_status_t procmgr_child_init(server_rec * main_server, apr_pool_t * pchild) { - apr_pool_cleanup_register(pchild, main_server, - procmgr_stop_procmgr, apr_pool_cleanup_null); return APR_SUCCESS; }
Download this patch