RewriteEngine on
RewriteRule (.*) http://domen.ru/$1 [R=301,L]
Может быть косяк с циклическим редиректом, если дальше есть правила вида RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
Варианты - или сделать остановку на данном правиле, или (что более верно) - проверять, тот ли это домен: например, поставить сначала
RewriteCond %{HTTP_HOST} ^host.ru$ [NC]
Или ещё более кошерно
RewriteCond !%{HTTP_HOST} ^need-host.ru$ [NC]
как-то так.
редирект без-www на www
RewriteEngine On
RewriteCond %{HTTP_HOST} ^host.ru$ [NC]
RewriteRule (.*) http://www.host.ru/$1 [R=permanent,L]
вариант 2
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www.host.ru
RewriteRule (.*) http://www.host.ru/$1 [R=permanent,L]
понедельник, 29 ноября 2010 г.
пятница, 26 ноября 2010 г.
Особенности стягивания wget-ом
Добавил к часто используемым ключам
-r - рекурсивно
--limit-rate=
--ftp-user=
--ftp-password=
еще один:
-l depth
--level=depth
Specify recursion maximum depth level depth. The default maximum
depth is 5.
Если качать по фтп сайт, 5 часто оказывается мало, ставлю 15.
-r - рекурсивно
--limit-rate=
--ftp-user=
--ftp-password=
еще один:
-l depth
--level=depth
Specify recursion maximum depth level depth. The default maximum
depth is 5.
Если качать по фтп сайт, 5 часто оказывается мало, ставлю 15.
понедельник, 22 ноября 2010 г.
немного про репликацию mysql
Понадобилось внести в набор master-slave еще одну базу.
Бинлог ведется по всем базам.
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000416 | 6253340 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Пробуем..
master:
create database db character set cp1251;
slave:
vi my.cnf
вносим базу в список replicate-do-db=
перезапускаем слейв (стоит скип-старт). Базы нет. Да и не должно.
slave start;
базы нет. Но в show slave status она есть.
Попробуем создать.
create database db character set cp1251;
use db;
база есть.
show tables пока пуст, но и на мастере нету ничего. А теперь проверим "живую" заливку.
master:
mysql -u root -p db
slave:
show tables - заливка прошла!
Теперь осталось залить пользователей, потому что слейв не слушает базу mysql.
master и slave:
grant all privileges on db.* to 'db'@'localhost' identified by 'pass';
flush privileges;
В принципе все.
Бинлог ведется по всем базам.
mysql> show master status;
+------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+------------------+----------+--------------+------------------+
| mysql-bin.000416 | 6253340 | | |
+------------------+----------+--------------+------------------+
1 row in set (0.00 sec)
Пробуем..
master:
create database db character set cp1251;
slave:
vi my.cnf
вносим базу в список replicate-do-db=
перезапускаем слейв (стоит скип-старт). Базы нет. Да и не должно.
slave start;
базы нет. Но в show slave status она есть.
Попробуем создать.
create database db character set cp1251;
use db;
база есть.
show tables пока пуст, но и на мастере нету ничего. А теперь проверим "живую" заливку.
master:
mysql -u root -p db
slave:
show tables - заливка прошла!
Теперь осталось залить пользователей, потому что слейв не слушает базу mysql.
master и slave:
grant all privileges on db.* to 'db'@'localhost' identified by 'pass';
flush privileges;
В принципе все.
PuTTY Connection Manager
По работе приходится запускать до 30 сессий putty, пора делать это удобно.
Нашел менеджер: PuTTY Connection Manager
Требует .NET 2.0
Оттуда же желательно сразу AES библиотеку скачать.
Из недостатков - я использую portaputty, сессии которого несовместимы с этим менеджером. Надо сделать запрос фичи.
Из моментов реальной работы:
сессии portaputty с менеджером несовместимы, а использование простого putty делает непортабельным комплект. Но использовать сессии от portaputty можно! Для этого создаем Database, там нужный нам хост и в свойствах в разделе Putty session прописываем туда:
-load "my profile"
Теперь такие вещи, как ключ, таймауты, логин итд - берутся оттуда.
Стабильность на 1 окне с 1 путтей - нормальна, но когда памяти занято много, и несколько отдельных окон (для удобства у меня 1 окно - 1 база, разделены внутренние сервера, виртуальные сервера, внешние...) - периодически падают как putty внутри, так и сами процессы менеджера. Более того, менеджер может упасть, есть вызвать putty menu - бывало у меня и такое. Так что за стабильность выше двочеки не поставить. При этом открытая пачка отдельных putty - падало только вместе с системой, или пока я не закрою.
Нашел менеджер: PuTTY Connection Manager
Требует .NET 2.0
Оттуда же желательно сразу AES библиотеку скачать.
Из недостатков - я использую portaputty, сессии которого несовместимы с этим менеджером. Надо сделать запрос фичи.
Из моментов реальной работы:
сессии portaputty с менеджером несовместимы, а использование простого putty делает непортабельным комплект. Но использовать сессии от portaputty можно! Для этого создаем Database, там нужный нам хост и в свойствах в разделе Putty session прописываем туда:
-load "my profile"
Теперь такие вещи, как ключ, таймауты, логин итд - берутся оттуда.
Стабильность на 1 окне с 1 путтей - нормальна, но когда памяти занято много, и несколько отдельных окон (для удобства у меня 1 окно - 1 база, разделены внутренние сервера, виртуальные сервера, внешние...) - периодически падают как putty внутри, так и сами процессы менеджера. Более того, менеджер может упасть, есть вызвать putty menu - бывало у меня и такое. Так что за стабильность выше двочеки не поставить. При этом открытая пачка отдельных putty - падало только вместе с системой, или пока я не закрою.
суббота, 20 ноября 2010 г.
меняем в ФФ поиск по умолчанию с яндекса на нормальный
Открываем about:settings
находим keyword.URL и присваиваем ему значение http://www.google.ru/search?q=
Все, больше яндекс нас не потревожит.
И еще вверху можно открыть "управление поисковыми плагинами" и удалить оттуда яндекс или просто вниз перенести.
Еще я повесил бинды g для гугла и w для вики.
находим keyword.URL и присваиваем ему значение http://www.google.ru/search?q=
Все, больше яндекс нас не потревожит.
И еще вверху можно открыть "управление поисковыми плагинами" и удалить оттуда яндекс или просто вниз перенести.
Еще я повесил бинды g для гугла и w для вики.
четверг, 18 ноября 2010 г.
nginx+passenger во FreeBSD
UP
Сейчас в nginx конфигураторе есть штатно passenger - ничего патчить не надо, ставим галочку и собираем. Про зависимости вроде rubygem не проверяли, но должно автоматом подтянуться всё нужное.
Из блока ниже понадобится разве что пример конфигурации для nginx.
Старая версия:
Сейчас в nginx конфигураторе есть штатно passenger - ничего патчить не надо, ставим галочку и собираем. Про зависимости вроде rubygem не проверяли, но должно автоматом подтянуться всё нужное.
Из блока ниже понадобится разве что пример конфигурации для nginx.
Старая версия:
eaccelerator
Попробовал поставить eaccelerator.
#yum install php-eaccelerator
---> Package php-eaccelerator.i386 1:0.9.5.2-2.el5 set to be updated
--> Processing Dependency: php-zend-abi = 20050922 for package: php-eaccelerator
--> Finished Dependency Resolution
1:php-eaccelerator-0.9.5.2-2.el5.i386 from epel has depsolving problems
--> Missing Dependency: php-zend-abi = 20050922 is needed by package 1:php-eaccelerator-0.9.5.2-2.el5.i386 (epel)
Error: Missing Dependency: php-zend-abi = 20050922 is needed by package 1:php-eaccelerator-0.9.5.2-2.el5.i386 (epel)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
Что за..
#yum install php-zend-abi
Package php-common-5.2.10-1.el5.centos.i386 already installed and latest version
Nothing to do
Ага, было слияние пакетов. Но та версия, что в epel, пока об этом не знает. А в centos-testing такого пакета просто нет.
Попробуем поставить remi
#rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
#yum install --enablerepo=remi php-eaccelerator
И... Оно хочет мне обновить php версию до 5.3!
5.3.3-1.el5.remi
Последняя попытка.
yum install --skip-broken php-eaccelerator
И все-равно не оно. И опции --nodeps или --force тоже нету. И даже банального --version=x.x
Вот за что ненавижу предкомпилированные пакеты -- чуть отклонение от нормы и собирай из исходников.
Дальше-больше. php-eaccelerator-0.9.5.2-2.el5.i386 похоже вообще не заработает.
http://eaccelerator.net/ticket/338
А потом я нашел решение.
#rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm
#yum install php-eaccelerator
Все, стоит 0.9.6 и на той версии, что мне нужна.
#yum install php-eaccelerator
---> Package php-eaccelerator.i386 1:0.9.5.2-2.el5 set to be updated
--> Processing Dependency: php-zend-abi = 20050922 for package: php-eaccelerator
--> Finished Dependency Resolution
1:php-eaccelerator-0.9.5.2-2.el5.i386 from epel has depsolving problems
--> Missing Dependency: php-zend-abi = 20050922 is needed by package 1:php-eaccelerator-0.9.5.2-2.el5.i386 (epel)
Error: Missing Dependency: php-zend-abi = 20050922 is needed by package 1:php-eaccelerator-0.9.5.2-2.el5.i386 (epel)
You could try using --skip-broken to work around the problem
You could try running: package-cleanup --problems
package-cleanup --dupes
rpm -Va --nofiles --nodigest
The program package-cleanup is found in the yum-utils package.
Что за..
#yum install php-zend-abi
Package php-common-5.2.10-1.el5.centos.i386 already installed and latest version
Nothing to do
Ага, было слияние пакетов. Но та версия, что в epel, пока об этом не знает. А в centos-testing такого пакета просто нет.
Попробуем поставить remi
#rpm -Uvh http://rpms.famillecollet.com/enterprise/remi-release-5.rpm
#yum install --enablerepo=remi php-eaccelerator
И... Оно хочет мне обновить php версию до 5.3!
5.3.3-1.el5.remi
Последняя попытка.
yum install --skip-broken php-eaccelerator
И все-равно не оно. И опции --nodeps или --force тоже нету. И даже банального --version=x.x
Вот за что ненавижу предкомпилированные пакеты -- чуть отклонение от нормы и собирай из исходников.
Дальше-больше. php-eaccelerator-0.9.5.2-2.el5.i386 похоже вообще не заработает.
http://eaccelerator.net/ticket/338
А потом я нашел решение.
#rpm -ihv http://centos.alt.ru/repository/centos/5/x86_64/centalt-release-5-3.noarch.rpm
#yum install php-eaccelerator
Все, стоит 0.9.6 и на той версии, что мне нужна.
ставим bitrix в centos
В принципе, ставится оно просто (не то что redmine, ага)
yum install httpd nginx mysql php php-mysql gd php-gd
Если что, может понадобиться доставить freetype, zlib, php_mbstring
Но они должны сами вытянуться по зависимостям. И поэтому же я ставлю только основные модули всегда, чтобы зависимости сами вытягивались и при удалении также удалялись как более ненужные.
Если что, nginx есть в epel, php - в el5.centos (который CentOS-Testing, есть в заметках)
Дальше настраиваем nginx, apache, даем права apache:apache папке, куда ставим, заливаем скрипт установки
http://www.1c-bitrix.ru/download/cms.php#tab-bitrixsetup-link
и запускаем. Должно все заработать. Выбираем ознакомительный режим, любую сборку, и доходим до "Предварительная проверка"
Доставляем если чего не хватает, выставляем mbstring.func_overload и mbstring.internal_encoding в /etc/php.ini ...
И запускаем тесты производительности.
Оптимизация - отдельная тема, тут трогать не буду.
Есть какой-то скрипт автоматической установки, но пока не нашел. Более того, мне показалось, что во фре оно есть прямо в портах.
Также может понадобиться eaccelerator/аналоги и zend.
yum install httpd nginx mysql php php-mysql gd php-gd
Если что, может понадобиться доставить freetype, zlib, php_mbstring
Но они должны сами вытянуться по зависимостям. И поэтому же я ставлю только основные модули всегда, чтобы зависимости сами вытягивались и при удалении также удалялись как более ненужные.
Если что, nginx есть в epel, php - в el5.centos (который CentOS-Testing, есть в заметках)
Дальше настраиваем nginx, apache, даем права apache:apache папке, куда ставим, заливаем скрипт установки
http://www.1c-bitrix.ru/download/cms.php#tab-bitrixsetup-link
и запускаем. Должно все заработать. Выбираем ознакомительный режим, любую сборку, и доходим до "Предварительная проверка"
Доставляем если чего не хватает, выставляем mbstring.func_overload и mbstring.internal_encoding в /etc/php.ini ...
И запускаем тесты производительности.
Оптимизация - отдельная тема, тут трогать не буду.
Есть какой-то скрипт автоматической установки, но пока не нашел. Более того, мне показалось, что во фре оно есть прямо в портах.
Также может понадобиться eaccelerator/аналоги и zend.
среда, 17 ноября 2010 г.
баги хена-2
end_request: I/O error, dev xvda, sector 323805
end_request: I/O error, dev xvda, sector 323893
end_request: I/O error, dev xvda, sector 323261
Buffer I/O error on device dm-0, logical block 14254
lost page write due to I/O error on dm-0
Aborting journal on device dm-0.
ext3_abort called.
EXT3-fs error (device dm-0): ext3_journal_start_sb: Detected aborted journal
Remounting filesystem read-only
end_request: I/O error, dev xvda, sector 218861
Buffer I/O error on device dm-0, logical block 1204
lost page write due to I/O error on dm-0
end_request: I/O error, dev xvda, sector 853869
Buffer I/O error on device dm-0, logical block 80580
lost page write due to I/O error on dm-0
Buffer I/O error on device dm-0, logical block 80581
lost page write due to I/O error on dm-0
end_request: I/O error, dev xvda, sector 323893
end_request: I/O error, dev xvda, sector 323261
Buffer I/O error on device dm-0, logical block 14254
lost page write due to I/O error on dm-0
Aborting journal on device dm-0.
ext3_abort called.
EXT3-fs error (device dm-0): ext3_journal_start_sb: Detected aborted journal
Remounting filesystem read-only
end_request: I/O error, dev xvda, sector 218861
Buffer I/O error on device dm-0, logical block 1204
lost page write due to I/O error on dm-0
end_request: I/O error, dev xvda, sector 853869
Buffer I/O error on device dm-0, logical block 80580
lost page write due to I/O error on dm-0
Buffer I/O error on device dm-0, logical block 80581
lost page write due to I/O error on dm-0
ejabberd в CentOS
Немного погуглил и расстроился, что придется собирать ejabberd из исходников, а это много мороки.. Да и просто собирать глупо, надо сначала пакет делать, это лишние усилия и время. Но потом нашел, что оно есть в epel!
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
или
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86-64/epel-release-5-4.noarch.rpm
Обращу внимание, что периодически нужный пакет обновляется, так что если что, идем http://download.fedora.redhat.com/pub/epel и далее по нужным нам атрибутам.
yum install ejabberd
Дальше можно посмотреть
http://privats.ru/tag/ejabberd
http://plone.lucidsolutions.co.nz/linux/im/ejabberd-centos-vm
Не забываем внести нужные строки в днс.
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
или
rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/x86-64/epel-release-5-4.noarch.rpm
Обращу внимание, что периодически нужный пакет обновляется, так что если что, идем http://download.fedora.redhat.com/pub/epel и далее по нужным нам атрибутам.
yum install ejabberd
Дальше можно посмотреть
http://privats.ru/tag/ejabberd
http://plone.lucidsolutions.co.nz/linux/im/ejabberd-centos-vm
Не забываем внести нужные строки в днс.
создание sparse файла
Например, когда надо сделать iso файл для xen-а, а времени на простое заполнение через dd нету.
dd if=/dev/zero of=guest.img bs=1M count=0 seek=5000
или
truncate -s 4G guest.img
dd if=/dev/zero of=guest.img bs=1M count=0 seek=5000
или
truncate -s 4G guest.img
монтирование iso во FreeBSD
mount -t cd9660 /dev/`mdconfig -a -t vnode -f discimg.iso` /cdrom
отсюда http://www.commandlinefu.com/commands/view/1014/loopback-mount-.iso-on-freebsd
"Полный" вариант выглядит так:
# mdconfig -a -t vnode -f /home/steven/5.4-RELEASE-i386-disc1.iso -u 0
# mount -t cd9660 /dev/md0 /var/ftp/pub/freebsd-5.4/
Но он менее удобен, особенно в скриптах.
отмонтировать
mdconfig -d -u 0
отсюда http://www.commandlinefu.com/commands/view/1014/loopback-mount-.iso-on-freebsd
"Полный" вариант выглядит так:
# mdconfig -a -t vnode -f /home/steven/5.4-RELEASE-i386-disc1.iso -u 0
# mount -t cd9660 /dev/md0 /var/ftp/pub/freebsd-5.4/
Но он менее удобен, особенно в скриптах.
отмонтировать
mdconfig -d -u 0
apache+nginx и Keepalive
Когда работает связка apache+nginx, по идее Keepalive надо ставить на максимум - экономим ресурсы на коннектах. Поскольку там создали страницу, отдали быстро проксе и снова ждем данных, существующие коннекты должны использоваться эффективно. Но есть подозрение, что надо его все-таки отключать.
Судя по http://markmail.org/message/24r67x3kaztl4qpf#query:apache%20nginx%20keepalive+page:1+mid:djcpsyst2kewktf6+state:results
и смежным темам, надо отключать, поскольку nginx шлет close
"Наверно потому что используется HTTP/1.0 - оно не умеет keepalive"
Судя по http://markmail.org/message/24r67x3kaztl4qpf#query:apache%20nginx%20keepalive+page:1+mid:djcpsyst2kewktf6+state:results
и смежным темам, надо отключать, поскольку nginx шлет close
"Наверно потому что используется HTTP/1.0 - оно не умеет keepalive"
redmine варианты запуска
Редмайн написан на руби, что делает его запуск несколько проблемным.
Пока нашел варианты запуска:
1) через встроенный веб сервер webrick (на 3000 порту). Увы, весьма нестабилен и за 2 недели падал 3 раза.
2) mongrel и mongrel-cluster
3) Thin
4) nginx + passenger
5) apache + mod_ruby
Гугль говорит, что webrick и thin не рекомендуются, cо встроенным я убедился, что не стоит...
Даже если проект локальный, желательно отдавать статику через nginx, так что вариант с прокси будет оптимальным.
Осталось определиться, mongrel или passenger.
http://www.modrails.com/documentation.html
Похоже, производительность примерно равна.
В оф.доке
http://www.redmine.org/wiki/redmine/HowTo_configure_Nginx_to_run_Redmine
используется вообще Thin.
mongrel
rubygem-mongrel.x86_64 : A small fast HTTP library and server for Ruby apps
rubygem-mongrel_cluster.noarch : GemPlugin wrapper for the mongrel HTTP server
Mongrel-cluster ставится так:
yum install rubygem-mongrel_cluster
Дальше можно делать по доке
http://seriyps.ru/blog/2010/01/14/ustanovka-redmine-na-ubuntu-9-10-pod-nginx-chast-2/
passenger ставится так:
gem install passenger
Потом модуль для nginx
passenger-install-nginx-module
Тут: http://www.modrails.com/documentation/Users%20guide%20Nginx.html
основная дока.
И не забываем настроить почту, это делается в config/email.yml
Чтобы просто отправлять от обычного пользователя (с существующего ящика), вписываем туда в production: настройки почтового сервера и наслаждаемся.
Если же надо еще и обрабатывать ответы по почте, смотрим доку ниже.
Еще полезная дока:
http://ru.gentoo-wiki.com/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Redmine
В частности, там есть немного по подключению баз и настройке exim.
Увы, sqlite3 у меня так и не заработал... Пришлось делать на mysql.
Пока нашел варианты запуска:
1) через встроенный веб сервер webrick (на 3000 порту). Увы, весьма нестабилен и за 2 недели падал 3 раза.
2) mongrel и mongrel-cluster
3) Thin
4) nginx + passenger
5) apache + mod_ruby
Гугль говорит, что webrick и thin не рекомендуются, cо встроенным я убедился, что не стоит...
Даже если проект локальный, желательно отдавать статику через nginx, так что вариант с прокси будет оптимальным.
Осталось определиться, mongrel или passenger.
http://www.modrails.com/documentation.html
Похоже, производительность примерно равна.
В оф.доке
http://www.redmine.org/wiki/redmine/HowTo_configure_Nginx_to_run_Redmine
используется вообще Thin.
mongrel
rubygem-mongrel.x86_64 : A small fast HTTP library and server for Ruby apps
rubygem-mongrel_cluster.noarch : GemPlugin wrapper for the mongrel HTTP server
Mongrel-cluster ставится так:
yum install rubygem-mongrel_cluster
Дальше можно делать по доке
http://seriyps.ru/blog/2010/01/14/ustanovka-redmine-na-ubuntu-9-10-pod-nginx-chast-2/
passenger ставится так:
gem install passenger
Потом модуль для nginx
passenger-install-nginx-module
Тут: http://www.modrails.com/documentation/Users%20guide%20Nginx.html
основная дока.
И не забываем настроить почту, это делается в config/email.yml
Чтобы просто отправлять от обычного пользователя (с существующего ящика), вписываем туда в production: настройки почтового сервера и наслаждаемся.
Если же надо еще и обрабатывать ответы по почте, смотрим доку ниже.
Еще полезная дока:
http://ru.gentoo-wiki.com/wiki/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_Redmine
В частности, там есть немного по подключению баз и настройке exim.
Увы, sqlite3 у меня так и не заработал... Пришлось делать на mysql.
Подписаться на:
Сообщения (Atom)