Since the idiots in the Russian government passed a law similar to ‘SOPA’ i started to modify routing scheme at my home. Many times i used internet.ya.ru to determine my current outgoing IP address, but i wanted to use more minimalistic tool for this purpose. So i created my own tool with blackjack and hookers, there it is: https://ivanbayan.com/uip.php i using different routes for TLS and http traffic, so it is also available there https://ivanbayan.com/uip.php.
This script produce simple image with you outgoing ip:
Tag: php
How to fix ‘Timezone database is corrupt – this should *never* happen!’
Today i upgraded to wheezy. When i entered my blog i observed that it does not work anymore. I looked into logs and found next errors:
[26-Jun-2013 12:59:41 UTC] PHP Fatal error: date(): Timezone database is corrupt - this should *never* happen! in ... [26-Jun-2013 12:59:49 UTC] PHP Fatal error: strtotime(): Timezone database is corrupt - this should *never* happen! in /html/wp-includes/functions.php on line 33...
After a little investigation I discovered that happens when you use php in chroot enviroment (i using php5-fpm with chroot, so it is my case). I tried to copy /usr/share/zoneinfo in chroot environment with parent dir structure and correct permissions, but nothing change. Somewhere i read that it problem can happen in debian, because maintainers of php packages, patch source files, the solution – is to install tzdatadb:
apt-get install php-pear php5-dev pecl install timezonedb echo 'extension=timezonedb.so'> /etc/php5/mods-available/timezonedb.ini ln -sf /etc/php5/mods-available/timezonedb.ini /etc/php5/conf.d/30-timezonedb.ini service php5-fpm restart |
After that all work like a charm.
PS
strings /usr/sbin/php5-fpm|grep Quake| head -n8 Quake I save: ddm4 East side invertationa Quake I save: d7 The incinerator plant Quake I save: d12 Takahiro laboratories Quake I save: e1m1 The slipgate complex Quake I save: e1m2 Castle of the damned Quake I save: e2m6 The dismal oubliette Quake I save: e3m4 Satan's dark delight Quake I save: e4m2 The tower of despair |
Easter egg?
Password protected access to “/wp-admin” on nginx
Here i found advice how to make wordpress more securely, idea is to protect access to “/wp-admin” by http auth, but “/wp-admin/admin-ajax.php” must stay available for everyone, same is true for some .css files.
I spend some time to research solution, it was a bit complicated:
location /wp-admin { location ~ /wp-admin/admin-ajax.php$ { # Php handler } location ~* /wp-admin/.*\.php$ { auth_basic "You shall not pass!"; auth_basic_user_file $document_root/.htpasswd; # Php handler } } |
It is possible to add additional location to serve static content, but i am too lazy to do it.
PS
Also here i found receipts for apache and lighttpd if anybody interesting. Continue reading
Forbid access to php into “wp-content”.
I expected in few articles an advice to disable direct access to php scripts into “/wp-content/uploads” i done small research and observed, than .php placed into “/wp-content” and into subdirs was newer directly accessed thru web. So i just completely disabled direct access to php scripts placed into that dir and subdirs. Looks more securely.
PS
I made mistake. At least tiny-mce php scripts must be accessible thru web. So i just convert this rules that touch ‘/wp-include’ for nginx:
location ~* /wp-includes { location ~* /wp-includes/[^/]+\.php$ { deny all; } location ~* /wp-includes/js/tinymce/langs/.+\.php$ { deny all; } location ~* /wp-includes/theme-compat { deny all; } location ~ /wp-includes/.+\.php$ { include php_wordpress_handler; } } |
How to change page order of top menu in wordpress.
I try to reorder menu items by setting page order into Dashboard/Pages/Quick Edit, also i try plugin called ‘my page orders’, but anyway menu items was sorted alphabetically by page title, so i started to dig deeper.
In my template ‘top menu’ generated by function ‘wp_nav_menu
‘ placed into header.php. When i looked at template, i saw that in parameters specified ‘fallback_cb
‘ function defined in function.php. When i found this function, i saw that this function uses ‘get_pages
‘ with default arguments to get pages, so i just define 'sort_column'
now function looks like get_pages(array( ‘sort_column’ => ‘menu_order’))
After that modification pages in menu sorted by as i expected.