If you have troubles with kernel-headers in CentOS 5.2 like:
Error: Missing Dependency: kernel-headers is needed by package glibc-headers
Error: Missing Dependency: kernel-headers >= 2.2.1 is needed by package glibc-headers
install kernel headers:
#uname -a
Linux myserver 2.6.18-92.1.18.el5 #1 SMP Wed Nov 12 09:19:49 EST 2008 x86_64
for x86_64
#wget http://vault.centos.org/5.2/os/x86_64/CentOS/kernel-headers-2.6.18-92.el5.x86_64.rpm
#rpm -i kernel-headers-2.6.18-92.el5.x86_64.rpm
for i386
#wget http://vault.centos.org/5.2/os/i386/CentOS/kernel-headers-2.6.18-92.el5.i386.rpm
#rpm -i kernel-headers-2.6.18-92.el5.i386.rpm
Thursday, September 10, 2009
Wednesday, September 2, 2009
Enable mysql replication on production server
How to add slave mysql server without stopping master?
Bin-logging must be enabled on master. Then just dump all data from master:
Copy gzipped dump to slave. Ungzip and apply (mysql < yourfile.sql). Execute "slave start;" (slave must be configured for replication before this step :)
Bin-logging must be enabled on master. Then just dump all data from master:
mysqldump --defaults-file=/etc/mysql/debian.cnf -BA --master-data | gzip > /pathtogzipfile/filenameThis command dump all data from master and store master "binlog filename" and log position.
Copy gzipped dump to slave. Ungzip and apply (mysql < yourfile.sql). Execute "slave start;" (slave must be configured for replication before this step :)
Saturday, August 1, 2009
Friday, July 31, 2009
Wednesday, July 22, 2009
nginx basic auth (htpasswd)
Nginx supports basic auth (ngx_http_auth_basic_module)
directives:
auth_basic [|off]
auth_basic_user_file path/to/file
htpasswd file format:
# comment
login:password
Command htpasswd should be used with option -d , because nginx supports crypt() algorithm only.
Example:
htpasswd -c -d /etc/nginx/htpasswd asalnikov
nginx.conf part:
location /
{
auth_basic "closed site";
auth_basic_user_file /etc/nginx/htpasswd;
...
}
directives:
auth_basic [
auth_basic_user_file path/to/file
htpasswd file format:
# comment
login:password
Command htpasswd should be used with option -d , because nginx supports crypt() algorithm only.
Example:
htpasswd -c -d /etc/nginx/htpasswd asalnikov
nginx.conf part:
location /
{
auth_basic "closed site";
auth_basic_user_file /etc/nginx/htpasswd;
...
}
Sunday, July 12, 2009
Kubuntu Jaunty Wi-Fi Speed with WPA2 encryption
After upgrading my Kubuntu to Jaunty, I had problems with Internet access via Wi-Fi. Speed was many times less than before the upgrade (only then I use WPA2 encryption). This way solve the problem:
$ sudo aptitude install linux-image-2.6.28-11-generic
and reboot, choosing this kernel
P.S. in KDE4, NetworkManager replaced by plasma-widget-network-manager. If you can't connect to your wi-fi network with WPA2 encryption just install "linux-backports-modules-jaunty-generic" package.
$ sudo aptitude install linux-image-2.6.28-11-generic
and reboot, choosing this kernel
P.S. in KDE4, NetworkManager replaced by plasma-widget-network-manager. If you can't connect to your wi-fi network with WPA2 encryption just install "linux-backports-modules-jaunty-generic" package.
Thursday, July 9, 2009
ssh tunnels
In many cases, development projects are on the same data center, and the server product is on the other. And often it is necessary to provide the link between the test and product servers.
Simply ssh tunnel:
ssh -p40088 -2 -N -C -f -L 172.11.5.58:3307:10.20.1.103:3306 tunnel@x.x.x.x
-p40088 - gateway to production DC ssh port
172.11.5.58:3307 - host:port on local server
10.20.1.103:3306 - host:port on remote server
tunnel@x.x.x.x - username@host of gateway to production DC
And now when I connect to port 3307 on local server I get connect with 10.20.1.103:3306 on production server.
Simply ssh tunnel:
ssh -p40088 -2 -N -C -f -L 172.11.5.58:3307:10.20.1.103:3306 tunnel@x.x.x.x
-p40088 - gateway to production DC ssh port
172.11.5.58:3307 - host:port on local server
10.20.1.103:3306 - host:port on remote server
tunnel@x.x.x.x - username@host of gateway to production DC
And now when I connect to port 3307 on local server I get connect with 10.20.1.103:3306 on production server.
Monday, July 6, 2009
How to copy directories structure
cd olddir
find . -type d > /tmp/dirlist
cd newdir
for i in `cat /tmp/dirlist` ; do mkdir -p $i ; done
very simply :)
find . -type d > /tmp/dirlist
cd newdir
for i in `cat /tmp/dirlist` ; do mkdir -p $i ; done
very simply :)
Tuesday, June 30, 2009
Nginx rewrite for user subdomains
For example you need to store few userpics for each user with possibility to set default userpic. First we must determine that for static content we will use nginx as one of the fastest web server. Userpics will be stored by scheme: "files/userpics/[first two letters from username]/[username]/"
directories scheme:
Default userpic will be addressed to 0.[jpg|png|gif] (file extension depends on extension the parent file)
Http request http://test11.mydomain.com/userpics/1246347162.gif must return this file:
/opt/www/files/userpics/te/test11/1246347162.gif
if file does not exist, nginx must return default userpic for this user:
/opt/www/files/userpics/te/test11/0.[jpg|png|gif]
if default userpic does not exist, nginx return default userpic for all users "/userpic-default.png"
part of nginx.conf:
directories scheme:
root@server:~# tree files
files
`-- userpics
|-- te
| |-- test11
| | |-- 0.gif
| | |-- 1246347162.gif
| | |-- 1246362446.jpg
| | `-- 1246363739.gif
| `-- test44
| |-- 0.gif
| |-- 1246365659.gif
| `-- 1246366597.gif
`-- tu
|-- turkish
| |-- 0.gif
| |-- 1246357650.gif
| |-- 1246357669.gif
| `-- 1246363992.gif
`-- tuzik
|-- 0.jpg
|-- 1246365938.jpg
`-- 1246365974.jpg
Default userpic will be addressed to 0.[jpg|png|gif] (file extension depends on extension the parent file)
Http request http://test11.mydomain.com/userpics/1246347162.gif must return this file:
/opt/www/files/userpics/te/test11/1246347162.gif
if file does not exist, nginx must return default userpic for this user:
/opt/www/files/userpics/te/test11/0.[jpg|png|gif]
if default userpic does not exist, nginx return default userpic for all users "/userpic-default.png"
part of nginx.conf:
location /userpics/ {
default_type image/jpeg;
root /opt/www;
access_log /var/log/nginx/static.access.log main;
if ($host ~* "(..)(.*)\.mydomain\.com") {
set $a $1;
set $b $2;
rewrite ^/userpics/(.*)$ /files/userpics/$a/$a$b/$1;
}
if (!-f $request_filename) {
rewrite ^/files/userpics/(.*)$ /files/userpics/$a/$a$b/0.jpg;
}
if (!-f $request_filename) {
rewrite ^/files/userpics/(.*)$ /files/userpics/$a/$a$b/0.gif;
}
if (!-f $request_filename) {
rewrite ^/files/userpics/(.*)$ /files/userpics/$a/$a$b/0.png;
}
break;
error_page 404 =200 /userpic-default.png;
}
UPD Best way: don't use "if" in location level.
try_files /files/userpics/$a/$a$b/0.jpg /files/userpics/$a/$a$b/0.gif /files/userpics/$a/$a$b/0.png /userpic-default.png;
Thursday, June 25, 2009
regular expressions
Some tips about regular expressions:
(..) - two symbols
([0-9]{4}) - 4 numeric symbols
([a-c]+) - letters from a to c. many times as you like
(.*) - any symbols. many times as you like
A bit later I'll write about useful rewrite :)
(..) - two symbols
([0-9]{4}) - 4 numeric symbols
([a-c]+) - letters from a to c. many times as you like
(.*) - any symbols. many times as you like
A bit later I'll write about useful rewrite :)
Monday, June 22, 2009
Disable Midnight Commander tab and spaces highlighting
In file ~/.mc/ini check these parameters
editor_visible_tabs = 0
editor_visible_spaces = 0
They must be equal "0"
editor_visible_tabs = 0
editor_visible_spaces = 0
They must be equal "0"
Subscribe to:
Posts (Atom)