В связи с последними тенденциями в вебе (в том числе и недавний запуск webstore), возникла идея попрактиковаться в написании плагина под Google Chrome. Решил написать плагин, который бы показывал цитаты с сайта Forismatic.com, после прочтения статьи о написании аналогичного апплета для gnome. Страница установки плагина. Требования: показ уведомлений через всплывающее окошко. двуязычность: русский и английский, причём язык должен подцепляться автоматически в зависимости от выставленного в браузере. Но при этом оставлять выбор на каком языке получать цитаты.
Настройка Netbeans для yii с поддержкой xdebug, тестов phpunit и selenium
После прочтения книги Agile Web Application Development with Yii 1.1 and PHP5 захотелось рассказать о настройке NetBeans для работы с yii, включая поддержку unit-тестов + тесты через selenium. Selenium позволяет проводить тесты, почти полностью эмулируя действия через браузер: кликать по ссылкам, вводить текст. Это очень мощно! Имеются: Сервер (ip: 192.168.0.3) Debian или другой linux-сервер с настроенным nginx, php5-fpm, xdebug Компьютер разработчика (ip: 192.168.0.2) Ubuntu 10.10 с установленным NetBeans 7.0m2 Сайт будет располагаться в /var/www/yii/www, а yii в /var/www/yii-lib/yii
MySQL запросы через консоль
Обнаружил очень простой способ выполнения MySQL запросов в Debian. Причём без указания логина и пароля. В Debian’е создаётся системный пользователь debian-sys-maint, от которого и будут идти запросы. Например выборка: echo "SELECT * FROM database.table WHERE id > 10" | mysql --defaults-file=/etc/mysql/debian.cnf -Bs Можно мониторить нагрузку: watch 'echo "show full processlist" | mysql --defaults-file=/etc/mysql/debian.cnf -Bs'
Apt: управление приоритетами пакетов из stable, testing, unstable, experimental
Есть несколько “виртуальных” релизов у debian: stable - на текущий момент это 5 версия (lenny), testing - squeeze (когда он будет выпущен, то перейдёт в релиз stable). Unstable и experimental - экспериментальные релизы, не для продакшена!. Пакет проходит путь из experimental => unstable => testing => stable. Иногда бывают ситуации, когда нужно установить пакеты поновее. Можно, конечно, скачать отдельно deb-пакет и установить его, но в этом случае одни минусы: возможно требуются удовлетворения зависимостей и лишаемся обновлений.
Bash completion - расширенная автоподстановка
Очень нужная тулза для ленивых админов. Может работать автодополнением для разных консольных программ: aptitude, git, invoke-rc.d, ssh и других. Список поддерживающих программ находиться в директории /etc/bash_completion.d По желанию можно самому расширить этот список. Не забудьте прислать ваши труды мейнтейнеру пакета. aptitude install bash-completion Добавляем в ~/.bashrc # Use bash-completion, if available if [ -f /etc/bash_completion ]; then . /etc/bash_completion fi
Debian. Часть 4. Настройка веб-сервера: nginx, apache, mysql, postgresql
У меня работает связка nginx -> apache2 + mysql + postgresql. Поставим memcached, APC (кэшер для php), и несколько модулей для php5. Для того, чтобы nginx проксировал через локальный адрес (192.168.1.254, например), необходимо добавить в bind наш домен. Это ещё пригодиться для доступа из локальной сети, чтобы запросы не шли через «внешку», а также для однозначной идентификации того, что заходят из «доверенной» сети. Добавляем в файл /etc/bind/named.conf.local наш домен: zone "zagirov.
Debian. Часть 3. Настройка iptables: NAT, фаервол
Фаервол нам нужен для ограничения подключения из вне, NATа, а также проброса портов. Для удоства написал скрипт на bash. Вставляем в файл /etc/init.d/rc.firewall #!/bin/bash IPTABLES="/sbin/iptables" ############### Config ####### LNETS="eth1 eth2 wlan0" DESKTOP="192.168.1.1" DESKTOP_OPEN_PORT="8010 9000" DESKTOP2="192.168.2.1" DESKTOP2_OPEN_PORT="9003" HOME_MASKS="192.168.1.0/24 192.168.2.0/24 192.168.3.0/24" PROVIDER="eth0" PROVIDER_IP="10.0.4.59" PROVIDER_MASK="10.0.0.0/8" INET="ppp+" WHITE_IP="77.77.77.77" OPEN_PORTS="22,80" ################### echo 1 > /proc/sys/net/ipv4/conf/default/rp_filter echo 1 > /proc/sys/net/ipv4/ip_forward modprobe ip_conntrack modprobe ip_conntrack_ftp modprobe nf_nat_pptp modprobe nf_conntrack_pptp modprobe nf_conntrack_proto_gre modprobe nf_nat_proto_gre modprobe iptable_nat modprobe ip_nat_ftp modprobe ipt_LOG $IPTABLES -P INPUT ACCEPT $IPTABLES -P OUTPUT ACCEPT $IPTABLES -P FORWARD DROP $IPTABLES -F $IPTABLES -X $IPTABLES -t nat -F PREROUTING $IPTABLES -t nat -F POSTROUTING ############ DELETE IF ALL WORKING FINE ###### #$IPTABLES -A INPUT -j ACCEPT ##################################### #mtu for vpn magick command, mega debian epic fail $IPTABLES -o $INET -A FORWARD -p tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 800:1536 -j TCPMSS --clamp-mss-to-pmtu # DENY SECTIONS $IPTABLES -A INPUT -p tcp !
Debian. Часть 2. Настройка сети: dhcp, bind9, vpn, wifi-точка на карте dlink dwa-520
После установки, сперва настроим локальную сеть провайдера и vpn для интернета. Напоминаю схема сети: Локальная сеть провайдера будет на интерфейсе eth0. Внутренняя сеть на интерфейсах eth1 и eth2. Сами настройки сети находятся в файле: /etc/network/interfaces Настройки сети провайдера: ip: 10.0.4.59, маска: 255.255.255.0, шлюз: 10.0.4.254, dns: 10.0.0.1 и 10.0.0.10 В домашней сети у сервера будут ip 192.168.1.254 и 192.168.2.254 nano /etc/network/interfaces auto lo iface lo inet loopback # The primary network interface auto eth0 iface eth0 inet static address 10.
Debian. Часть 1: установка
Есть цель написать статьи по настройке домашнего сервера для различных нужд: шлюз для выхода всех компьютеров в квартире в интернет через vpn (pptp) + wi-fi веб-сервер торрент-качалка + samba эксперименты Схема сети такая: Эти статьи будут и как напоминающая инструкция самому себе. Начну с самого начала: установка системы GNU/Linux. Лирическое отступление: Есть довольного много серверных дистрибутивов: Debian, Ubuntu, Gentoo, Arch, Slackware, etch. Можно много холиварить на эти темы. Мой выбор Debian был обусловлен несколькими факторами:
Зачем нужен Firewall на веб-проектах
Не так давно написал статейку на хабре. Здравствуйте, обычно при создании проектов в интернете при вопросе безопасности большее внимание уделяют веб-приложению, а о защите самого сервера забывают, а именно о firewall’е. Я понимаю, что настройкой сервера, и в том числе firewall’а, должен заниматься специальный человек — сисадмин, но во многих ситуациях получается так, что программист сам себе админ. На настройку firewall’а даже у программиста уйдёт всего лишь около 1 дня — это избавит от потенциальных проблем.