Archive for the ‘Linux’ Category

Установка eAccelerator на CentOS

Приближается предел ресурсов на моем сервер. Висит там порядка 200 всевозможных сайтов + мои скрипты. Я этот предел, есстественно, стараюсь отдалить, потому как лень переносить сайты на новый| охота повозиться | не хочу покупать новый серв (ненужное потом зачеркну). Еще и пыхыпеЧувак его тут пиарит, ну как не установить )
Акселератор требует autoconf, automake, libtool, m4. Также весьма желателен пакет php-devel, а именно утилита phpize, дабы не пересобирать пхп руками.
Исходная ось — CentOS 5.3(Final)

# cat /etc/redhat-release
CentOS release 5.3 (Final)

Качаем сам акселератор:

 wget http://bart.eaccelerator.net/source/0.9.5.3/eaccelerator-0.9.5.3.tar.bz2

Доставляем необходимые пакет

yum install autoconf automake libtool php-devel

Далее по порядочку:

phpize 
./configure --enable-eaccelerator=shared --with-php-config=/usr/bin/php-config
make
make install
vi /etc/php.ini

extension="eaccelerator.so"
eaccelerator.shm_size = "160"
eaccelerator.cache_dir = "/var/cache/php-eaccelerator"
eaccelerator.enable = "1"
eaccelerator.optimizer = "1"
eaccelerator.debug = 0
eaccelerator.log_file = "/var/log/httpd/eaccelerator_log"
eaccelerator.name_space = ""
eaccelerator.check_mtime = "1"
eaccelerator.filter = ""
eaccelerator.shm_max = "0"
eaccelerator.shm_ttl = "3600"
eaccelerator.shm_prune_period = "0"
eaccelerator.shm_only = "0"
eaccelerator.compress = "1"
eaccelerator.compress_level = "9"
eaccelerator.keys = "none"
eaccelerator.sessions = "none"
eaccelerator.content = "none"
eaccelerator.allowed_admin_path = ""

Создаются папки для временных файлов:

  
mkdir /var/cache/php-eaccelerator
chmod 777 /var/cache/php-eaccelerator

Все. Осталось только перезагрузить апача.

Если yum отказывается работать с родными репозиториями

И выдает вот такой бред

Traceback (most recent call last):
File "/usr/bin/yum", line 29, in ?
yummain.user_main(sys.argv[1:], exit_code=True)
File "/usr/share/yum-cli/yummain.py", line 229, in user_main
errcode = main(args)
File "/usr/share/yum-cli/yummain.py", line 145, in main
(result, resultmsgs) = base.buildTransaction()
File "/usr/lib/python2.4/site-packages/yum/__init__.py", line 647, in buildTransaction
(rescode, restring) = self.resolveDeps()
File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 704, in resolveDeps
for po, dep in self._checkFileRequires():
File "/usr/lib/python2.4/site-packages/yum/depsolve.py", line 939, in _checkFileRequires
if not self.tsInfo.getOldProvides(filename) and not self.tsInfo.getNewProvides(filename):
File "/usr/lib/python2.4/site-packages/yum/transactioninfo.py", line 414, in getNewProvides
for pkg, hits in self.pkgSack.getProvides(name, flag, version).iteritems():
File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 300, in getProvides
return self._computeAggregateDictResult("getProvides", name, flags, version)
File "/usr/lib/python2.4/site-packages/yum/packageSack.py", line 470, in _computeAggregateDictResult
sackResult = apply(method, args)
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 861, in getProvides
return self._search("provides", name, flags, version)
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 43, in newFunc
return func(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 837, in _search
for pkg in self.searchFiles(name, strict=True):
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 43, in newFunc
return func(*args, **kwargs)
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 586, in searchFiles
self._sql_pkgKey2po(rep, cur, pkgs)
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 470, in _sql_pkgKey2po
pkg = self._packageByKey(repo, ob['pkgKey'])
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 413, in _packageByKey
po = self.pc(repo, cur.fetchone())
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 68, in __init__
self._read_db_obj(db_obj)
File "/usr/lib/python2.4/site-packages/yum/sqlitesack.py", line 94, in _read_db_obj
setattr(self, item, _share_data(db_obj[item]))
TypeError: unsubscriptable object

помогает вот это заклинание:

yum clean all
rm -f /var/lib/rpm/__db*
rpm --rebuilddb
yum update

WordPress и memcache 2

[audio:9d179c38ffe0.mp3]
Первая часть тут была.
Написал я тогда как сделать, а сам так и не сделал и результатов не посмотрел, насколько сильно помогает memcache для вп.
Кратко, для чего нужен memcache: при определенной нагрузке, вордпресс начинает генерить очень много запросов и завешивает базу. Меня когда одни редиски досили, первое, что отвалилось так это база. Не могу установить соединение с базой данных — частенько выдает вордпресс. Memcached кеширует запросы к базе, тем самым снимая ее с БД (и перекладывая на оперативку 🙂 )
Также я изначально отказался от плагинов, например batcache. Как установить плагин итак все знают.
Read On…

Вышла первая альфа FireFox 3.6 с улучшенной поддержкой CSS3

Огнелис, под кодовым именем Nomaroka, альфа1 3.6 релизнулся вчера, т.е. 7 августа, ночью.
Разработчики обещают поддержку множества вкусных плюшек от css3, например css градиенты, background-size, разные картинки в фон.
Новый браузер еще и по тесту acid3 набирает 94 балла из 100.
Скачать можно тут
Плагины, естесственно не работают. И называется почему-то MineFields Read On…

Vim

[audio:123.mp3]
Знал единственную команду в нем — как выйти )) Прочитал тут статейку, что есть почти во всех линях под него учитель — vimtutor. Ради интереса запустил, блин, правда мега редактор. Абсолютно непохожее управление, но довольно удобное. Прошел три урока из семи, завтра остальные доделаю, очень понравился принцип управления.Удалять можно, например, один символ, одно слово, всю строку до конца, всю строку до начала, строку полностью, несколько строк нажатием двух(!!!) кнопок. Вообще сильно. А следующий пример просто супер:

#vi httpd.conf
/SSLVerif[Enter]nwr1ZZ

В обычном редакторе, это соответствует:

  • * Открыть файл «httpd.conf»
  • * Открыть диалог поиска
  • * Ввести в поисковую строку «SSLVerif».
  • * Перейти ко второму по счету найденному слову
  • * Перенести курсор к его параметру
  • * Заменить параметр на 1
  • * Сохранить изменения
  • * Закрыть файл

Объяснение команд:

  • * / — Перейти в режим поиска
  • * Kлавиша [Enter] — Искать’.
  • * n — Перейти к следующему вхождению искомой строки
  • * w — Переместить курсор к следующему слову
  • * r — Заменить знак под курсором
  • * ZZ — Сохранить изменения и вый ти

Одной строкой сразу пятиминутное дело решают. Просто супер.
Поучиться можно в любом (я так думаю) линуксе, на викиучебниках, а у меня небольшой читшит по vi был

asus k40in и линукс 2

Первая тут и тут.

Ввиду того, что поставить линукс у меня не получилось, поставил седьмой оффтопик. Работать, естественно, не получалось, ну нафиг, еще упрут пароли от аськи и денег назанимают. Поэтому решил не ставить ничего. И сегодня в  фидридере читаю — релизнулась мандрива 2010!
Быстренько слил, записал, поставил. 32 бита дистр, стал как родной, хотя бубунта 9.04 даже не стартовала. Вайфай тоже подцепило сходу. Доставил флеш плеер и дрова под видюху — и экран заработал в родном разрешении 1366 на 768. Я весь в щастье. Мандрива самый крутой линупс )) Великий Онотоле сам использует мандриву! Read On…

Canon lbp 2900 и mandriva linux

Тут можно почитать как ставить.

Стал замечать, что через какое то время падает ccpd. Нет его в процессах и не запускается. Причем не запускается только при запущенном cups, что уже странно, они же должны в связке работать. Запускать удавалось только заглушив капс, при этом  captstatusui выдавал пустое окно без всего, а ccpd загружал проц на полную катушку. Процессов ccpd было один вместо положенных два, captmon тоже отсутствовал. Логи я фиг знает куда ccpd пишет. Дрова стояли 1.80. Снес их и поставил старые 1,60. Чудесным образом все заработало, сспд перестал загружать проц.

Чудные дрова под принтер тут

css.php