Для тех, кто работает с проектом на удаленном сервере, наверняка важна комфортность этой работы, особенно если используется IDE. В моем случае IDE NetBeans. У этой иде есть особенность, она сканирует проект при открытии, а при открытии большого удаленного проекта это сканирование может происходить и 30 минут. Во время сканирования иде превращается в тормозящий тектовый редактор, невозможно перейти к ф-ии по ctrl и вообще ничего, кроме написания кода. Да и то файлик может сохраняться долго.

Для монтирования удаленной системы раньше я использовал sshfs. Описывал в этом посте.
Преимущества:
+ защищенное соединение, запрашивает пароль
+ возможность автомонтирования
+ не плохая скорость доступа..
Недостатки:
– все же не достаточная скорость доступа
– соединение часто отваливается (по таймауту, неактивности или отвалу инета).

В итоге мне приходилось часто открывать проект заново и ждать пока он пересканируется >_<.

Позже я услышал о NFS – Network File System. По сути это как подключение сетевого диска. Для развертывания необходима установка серверного пакета на сервере:

и клиентского на своей машине:

*portmap может быть заменен на rpcbind

Далее прописать папку и ip которому открыт доступ в

Строчка настройки выглядит примерно так:

или можно указать диапазон или * для всех.

Доступные опции:
ro: Только на чтение, стоит по умолчанию
rw: Доступна запись
no_root_squash: ограничивать ли рута. если не установлена эта опция, то доступ к файлам идет от пользователя nobody. если опция установлена и на клиентской машине у вас пользователь с уровнем доступа root, то он будет как бы root на серверной папке.
no_subtree_check: проверять или нет поддиректории. если открыта только одна папка и нет подпапок, то включение этой опции ускорит запросы
sync: по умолчанию asynk. включение synk более безопасно, если вдруг соединение оборвется или сервер перезагрузится, то данные в редактируемом файле не потеряются. asynk быстрее.

После настройки надо перезапустить сервер:

Хотя можно применять настройки после изменений так:

Для подключения папки на клиентской машине произвести описанную выше установку, далее просто:

Таким образом я замонтировал открытую папку /home с сервера с ip в свою домашнюю папку /mnt/srv.

Можно настроить монтирование в fstab

Тогда подключить можно

NFS
Преимущества:
+ перманентное соединение. разрывы гораздо реже (не было уже 2 дня)
+ скорость доступа. по моему проект подключенный так отсканировался быстрее, так же файлы сохраняются без задержек
Недостатки:
– безопасность. (доступ указывается для ИП, пароль не запрашивается)

memcached

Понадобилась настройка memcached (memcache) на 2 сервера. Задача оказалась не такой тривиальной. С доступом на localhost, где демон слушает по умолчанию, проблем не было. Однако на удаленный сервер достучаться не получалось. Сервера оба debian.
Возможно этот пост актуален только для меня и проблем может не возникать.
Домашняя страница проекта на code.google.

Для начала установка. Тут все просто:

Взято с мануала по memcached на php.net. Хотя при установке туда не заглядывал.
После установки можно проверить слушается ли теперь порт 11211.

Так же можно проверить настройки конфига.

После изменений конфига делаем:

Примеры выше взяты с Хабра.

В коде php используется очень просто. В данном случае у меня создается класс CACHE с singlton, приведен кусок.

И тут то и выяснилось, что на второй сервер обращения не доходят. Элементарная подмена в конфиге адреса прослушивания ничего не дала (-l *.*.*.*).
Диагностику помогут провести следующие ф-ии:

1. Показать есть ли процесс memcached

Тут мы видим, что процесс есть и запущен на нужном адресе. Памяти выделено 1000мб, пользователь nobody. 127.0.0.1 тут оказался лишним, memcached не поддерживает несколько ip.
2. Показать слушаемые порты

Точно слушает.
3. Включить вывод ошибок в php. :) Ошибок не было.
4. Догадка о закрытом порте. Если не установлено, то ставим nmap. Проверяем localhost или ip.

Можно еще так проверить. Если нет соединения, то закрыт.

Выдаст список открытых портов. В моем списке 11211 не оказалось. “Вот в чем собака зарыта”. :)
5. Смотрим iptables.

Собственно есть еще много ключей, -nat например, но этого хватит. Выдаст список установленных для этого фаерволла правил. Еще можно так:

Если без перенаправления, то в консоли выведутся правила. Через эту команду можно организовать сохранение настроек, т.к. после перезагрузки они сбросятся.

Далее порт 11211 надо открыть, но только для одного IP адреса.
Тут мне пригодились следующие ф-ии:
1. Показать нумерованный список правил и удалить правило по номеру

2. закрыть все входящие, для которых нет правил на открытие

Еще примеры:
открыть все исходящие порты
iptables -P OUTPUT ACCEPT
открыть порт 80 для всех входящих соединений
iptables -A INPUT –dport 80 -j ACCEPT
открыть 22 и 5432 порты только для конкретного IP
iptables -A INPUT -m multiport –dports 22,5432 -s IP_ADDRESS -j ACCEPT

Так же не забудьте открыть другие нужные порты для нужных ИП.

Более подробная настройка iptables в этом посте, с примерами скриптов.

Еще можно подкрутить сессии в php.ini на использование с memcached.

Для мониторинга была установлена утилита phpmemcachedadmin. В ней можно создать стек ваших серверов с memcached и смотреть статистику в приятном интерфейсе.

skype: error while loading shared libraries: libXss.so.1: cannot open shared object file: No such file or directory

А я просто хотел sudo apt-get install skype. Что же делать?

Сначала проверим, возможно не установилась нужная библиотека. Хотя apt тянул все нужные библиотеки и libXss.so в том числе.
Проверяем
sudo apt-get install libXss.so
или
apt-file search libXss.so
или
dpkg -S  libXss.so

Скорее всего вам выдаст что-то вроде

Конечно же установщик потянул с собой нужные ia32-libs и libxss1 библиотеки. Но скайп все равно не работает. Дело в том, что скайп написан в 32 битной архитектуре, а у нас 64 битная система, значит нам нужны библиотеки под 32 бит – i386.

Решение:

UPD. 10.08.13
Еще одна ошибка

error while loading shared libraries: libGL.so.1: cannot open shared object file: No such file or directory

Фиксится таким образом:

Добавить туда это

И запускаем конфиг.

Для ubuntu 13.04

Если необходимо работать с кодом на удаленном сервере то можно пойти несколькими путями:

  1. FTP – качает tmp файл, редактирует и закачивает обратно на лету. Можно использовать редактор с подсветкой.
  2. Зайти по ssh и пользоваться консольными редакторами nano, vim и др, а так же mc. Необходимо постоянно вводить пароль, достает.
  3. Примонтировать файловую систему через FTP или SSH. В этом случае получим как будто папку в нашей файловой системе типа /mnt/server и тогда возможно использовать IDE с доступом ко всему проекту сразу.

Сейчас рассмотрим третий вариант. Монтирование по FTP осуществляется в Ubuntu с помощью пакета curlftpfs. Однако подключение будет очень медленным, отрывать большие проекты в IDE будет практически невозможно. Монтирование по ssh не смотря на шифрование поддерживает скорость 200-250кб.

Для начало надо установить пакет sshfs.

Следующие действия уже выполнять не нужно, они выполняются автоматически, но все же приведу пример. Возможно нужно будет перезагрузиться.

Пример использования sshfs

Чтобы отмонтировать

И вот в момент подключения будет запрошен пароль. Открытая сессия будет сохраняться до перезагрузки или завершения сеанса, т.е. не надо будет восстанавливать сессию как с ssh после перерыва в работе. Но когда работаешь с сервером каждый день, то подключаться каждый раз перед работой тоже надоедает. Стоит сделать автоматическое монтирование по sshfs.

Для начала генерируем открытый и закрытый ключ.

На все вопросы генерации жмем Enter, пароль вводить не надо. В итоге будут созданы ключи в ~/.ssh директории.
id_rsa – закрытый ключ, должен быть секретным и никому не виден.
id_rsa.pub – открытый, его и будем использовать для входа без пароля.

Все, что остается сделать, это записать открытый ключ в файл .ssh/authorized_keys на сервере для нужного пользователя. Если для root то /root/.ssh/ иначе в /home/user/.ssh

Способ первый длинный:
Копируем открытый ключ на сервер. Выполняется на клиентской машине.

Копируем ключ в нужный файл. Выполняется на сервере.

Способ второй короткий:
Копируем с клиентской машины ключ сразу куда надо на сервер.

Та-да! Теперь еще можно выставить права на чтение на сервере:

Пробуем зайти по ssh.

Если вход произошел успешно и главное без ввода пароля, то полдела уже сделано. Теперь задействуем установленный ранее sshfs. Но сделаем это хитро. Создадим bash скрипт и добавим его в автозагрузку.

Тут например монтируем домашнюю удаленную папку в папку server на локальной машине.

Меняем права на выполнение для файла

В автозагрузку можно добавить просто команду или переместить этот файл в /etc/init.d/ или создать правило в cron с меткой @reboot.

Теперь при каждой перезагрузке файловая система будет монтироваться автоматически по sshfs и не надо вводить пароль!

Можно сделать автоматическое монтирование и без rsa ключей. Для этого надо добавить в автозагрузку команду:

Пароль берется автоматически из стандартного потока ввода-вывода.

Возможные проблемы.

1. Agent admitted failure to sign using the key.Permission denied (publickey).

Означает, что сгенерированный rsa ключ не установлен в системе, не привязан. Для привязки надо выполнить:

2. Что если не вышло выполнить команду из пункта 1 и выдалась ошибка
Could not open a connection to your authentication agent

Надо выполнить сначала

И уже после ssh-add из пункта 1.

Т.к. для работы я использую Linux, можно было бы обойтись и без Photoshop. Мне пришлось устанавливать его, т.к. надо было выполнить верстку по PSD файлу, а GIMP не поддерживает работу со слоями полностью. В итоге Photoshop CS5 версии Portable встал в Linux Ubuntu 11.10 и работает исправно без сбоев. Можно попробовать и установить.

Для начала  установим wine. Тут написано как установить версию wine 1.4.

Теперь необходимо получить библиотеки gdiplus.dll и atmlib.dll. Найти их можно в гугле на каком-то сайте – хранилище dll или взять из windows. Библиотеки копируем в

Если скрытую папку не видно, можно нажать Ctrl + H или лучше сделать cp из консоли.

Так же понадобятся еще 2 библиотеки (odbc32.dll и odbcint.dll), одна из которых уже есть в Wine (odbcint.dll). Их нужно скопировать туда же, куда и предыдущие или сюда, что одно и то же.

Далее произведем настройку библиотеки gdiplus.dll в winecfg.

Перейдите во вкладку Библиотеки, возможно в списке уже будет gdiplus, не трогайте ее. Нажмите кнопку Добавить/Установить. Выберите из списка gdiplus.dll и установите ей атрибуты сторонняя, встроенная.

Произведите установку Photoshop CS5 или извлеките из архива portable версию.

Теперь перейдите во кладку Приложения в winecfg, добавьте в список приложений Photoshop.exe.

Все, можно запускать и работать. :)

Часто скринкасты и видеокурсы записывают с использованием g2m3 кодека. Все было бы хорошо, если бы этот кодек поддерживался не только windows. Что делать, если мы хотим смотреть GoToMeeteng видео под Ubuntu Linux?

На данный момент поддержка кодека g2m3 в Linux не реализована, поэтому придется соорудить костыль через wine конечно же.

Добавлено: Лучше всего установить версию wine 1.4 и выше. Для этого добавляем репозиторий и обновляем перед установкой.

Далее будет установка wine 1.3 но это не так. Это просто название, не соответствующее версии. Будет установлена wine 1.4.

Сначала делаем:

Если что-то из этого не установлено, установить обязательно. Пакет wine потянет за собой полезные winecfg и winetricks. Что дальше?
На сайте gotomeeteng кодека написано следующее:

You’ll need to install mplayer, win32 codecs, wine, the gotomeeting codec (copy the G2M.dll codec to /usr/lib/codecs). Then run the video with WMV. You also might want to see this post on downloading the g2m3 codec.

Устанавливаем  g2m_codec.exe под wine. Топаем в папку Program Files, ищем там G2M.dll и копируем в /usr/lib/codecs с затиранием того, что там есть (если есть).

Теперь нам нужен Windows Media Player 11. Для его установки придется проделать танцы с бубном. В итоге этих танцев WMP 11 все же не будет работать полно функционально, но нужное нам видео проигрывать будет.

  1. Скачайте WMP 11 версию для Windows XP, это важно. Найти можно в гугле. Примерно 25мб.
  2. Держите winecfg открытым. Он пригодится на протяжении всей установки. Можно сконфигурировать wine использовать виртуальный рабочий стол, но не обязательно.
    Переводим wine в режим Windows 2003!
    Запускаем устновку WMP 11.
  3. wine wmp11-windowsxp-x86-enu.exe например. В Windows 2003 режиме пропускается валидация системы при установке, иначе установка сразу завершится. Подтверждаете валидацию, далее не соглашайтесь с лицензией.
    Поменяйте режим wine обратно на Windows XP.
    Теперь согласитесь с лицензией и продолжите установку.
  4. В процессе установка может вылетать на 25%, 50%, 75%. Ничего страшного, так и должно быть. При вылете установки делаете
  5. Повторите шаги 1-4 примерно 3-5 раз. Установка все равно не завершится успешно, будет написано, что не вышло установить. Вы должны добиться, чтобы ошибка вылетала постоянно на одном и том же шаге (75% например).
  6. Так же в процессе установки будет запрошена установка кодеков, соглашайтесь.
  7. Убедитесь, что ваш режим wine после установки – Windows XP, попробуйте запустить Windows Media Player 11.
  8. Скорее всего при первом запуске вы получите не активное, не рабочее или ужасно выглядещее окно. Закройте плеер (wineserver -k).
  9. Поменяйте режим wine на Windows 7. Запустите WMP 11. Вы получите чуть лучше выглядещее, но все еще не рабочее окно. Закройте плеер.
  10. Поменяйте режим окончательно на Windows XP. Окно по прежнему не будет работать, если вы будете запускать плеер из меню или просто .exe. Однако теперь можно кликнуть на нужном видео правой кнопкой и выбрать из списка программ Windows Media Player и открыть видео g2m3! У меня были скринкасты в формате .asf, отлично проигрываются. В режиме проигрывания видео WMP полностью рабочий.

Надеюсь вам поможет эта инструкция.

Начну с того, что недавно ip почтового сервера получил бан на gmail, а я получил больную голову на 2 недели от клиентов. В итоге бесконечных переделок конфига Postfix, писем в поддержку гугла и так же после найденного спам листа, в который и попал ip – письма на gmail начали ходить. Но как так вообще произошло, ведь сервер защищен smtp авторизацией (tsl) ???
А виноваты были во всем сами пользователи хостинга…

Читать далее

Собственно этот мануал описывался уже не раз в других блогах, самый лучший на мой взгляд в блоге Цинизм в IT. Найти можно в гугле. Сделал все по его мануалу. Очень странно, что на мое хостинге, который я админю, еще не было акселератора.

Вот что должно получиться в итоге:

This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.3.0, Copyright (c) 1998-2010 Zend Technologies
with eAccelerator v0.9.6.1, Copyright (c) 2004-2010 eAccelerator, by eAccelerator
with Zend Guard Loader v3.3, Copyright (c) 1998-2010, by Zend Technologies
with Suhosin v0.9.32.1, Copyright (c) 2007-2010, by SektionEins GmbH

Читать далее

 

Я задался вопросом какие из современных дистрибутивов GNU Linux больше всего подойдут для перехода пользователя с Windows. Лично я первый дистр на свою голову поставил Slackware, намучавшись бросил. Потом была Убунта 8-9, потом Дебиан, потом убунта 10 и апдейт до 11. Лично мне 11-я нравится, очень дружелюбная.
Сусе не ставил, но изучил документацию и скрины, они тоже позиционируют ее как и убунту – для людей (а не только для программистов).

Далее я создал опрос на Google вопросы.

Вопрос именно для начинающего пользователя для перехода. Чтобы работало из коробки, интуитивно понятно, как можно меньше лезть в конфиги и консоль.
Как по мне это Убунта и Сусе, ваше мнение?

Читать далее

Навесили на меня на работе администрирование хостинга. Конфигурация стандарт, ISPConfig. Сижу я значит, штудирую ООП в PHP и тут мне сообщают, что сервак подвис. Вообще задача администрирования – это задача системного администратора, а я программист. Это совсем разные профессии. Так же я всегда говорю – я не дизайнер.

Дальнейшие данные настроек с моего тестового сервера и ни в коем случае не относятся к реальной работе.
Читать далее