На моем сервере был установлен Redmine 2.6 на Apache + Passenger связке. Но учитывая, что у меня наконец-то дошли руки до сервера и я переехал с PHP + Apache на Nginx + PHP-FPM, мне пришлось так же поменять для Redmine сервер на Nginx + Thin. О настройке redmine и thin в этом посте.
Метка: linux
Ubuntu error: symbol ‘grub_term_highlight_color’ not found. grub rescue> – решение
В данном посте решение проблемы с GRUB ( у меня возникло при обновлении Ubuntu с 13.10 на 14.04 ).
Welcome to GRUB!
error: symbol ‘grub_term_highlight_color’ not found.
grub rescue>
Ubuntu Dropbox: pylinux/__pycache__/ _cffi__xa0c4f46bx1d95b4de.so’: No module named _cffi__xa0c4f46bx1d95b4d
После обновления с Ubuntu 13.10 на 14.04 перестал работать dropbox. При запуске по иконке получаю либо окно перезапуска Nautilus либо ничего. При запуске из консоли ошибка:
1 2 3 |
pylinux/__pycache__/_cffi__xa0c4f46bx1d95b4de.so': No module named _cffi__xa0c4f46bx1d95b4d |
Решение Читать далее
Nginx + php5-fpm + mysql конфиг. Будет обновляться.
Пример, чтобы сохранить конфиг nginx 1.8, php5-fpm 5.6 и mysql 5.6
Читать далее
bashrc для красивой консоли в linux
Для раскраски консоли надо править файл ~/.bashrc. Я использую Ubuntu и у меня файл присутствовал. Если его нет, надо создать.
Список различных раскрасок и ссылка на документацию под катом.
Фатальная ошибка при обновлении ядра Debian Squeeze.
Решил сделать dist-upgrade на рабочем сервере. Сервер выделенный, конечно linux, установлен Debian Squeeze. На сервере крутится только mysql, которая ценна на вес золота и больше ничего. Есть апач с пхп для тестов.
И так, команда введена и тут на обновлении ядра fatal error.
Опыт общения на форумах по Linux
Случилась у меня казалось бы неразрешимая проблема. Во время обновления Debian 6 не захотело вставать ядро. Все идеи иссякли и я полез на форумы по linux искать совета.
В этом посте хочу описать свои впечатления о 5-ти форумах, крупных и первых в списке гугла. Я грамотно составил текст сообщения и разместил на всех форумах, как делал уже это с php форумами.
Список полезных команд для Linux (Ubuntu, Debian) – ОБНОВЛЯЕМЫЙ
Давно хотел создать эту тему. Поехали..
Упрощение установки программ в WINE (Ubuntu style)
Автоматическое монтирование по sshfs, автоматический вход по ssh
Если необходимо работать с кодом на удаленном сервере то можно пойти несколькими путями:
- FTP – качает tmp файл, редактирует и закачивает обратно на лету. Можно использовать редактор с подсветкой.
- Зайти по ssh и пользоваться консольными редакторами nano, vim и др, а так же mc. Необходимо постоянно вводить пароль, достает.
- Примонтировать файловую систему через FTP или SSH. В этом случае получим как будто папку в нашей файловой системе типа /mnt/server и тогда возможно использовать IDE с доступом ко всему проекту сразу.
Сейчас рассмотрим третий вариант. Монтирование по FTP осуществляется в Ubuntu с помощью пакета curlftpfs. Однако подключение будет очень медленным, отрывать большие проекты в IDE будет практически невозможно. Монтирование по ssh не смотря на шифрование поддерживает скорость 200-250кб.
Для начало надо установить пакет sshfs.
1 2 3 |
sudo apt-get install sshfs |
Следующие действия уже выполнять не нужно, они выполняются автоматически, но все же приведу пример. Возможно нужно будет перезагрузиться.
1 2 3 4 5 6 7 8 |
# Загрузка модуля sudo modprobe fuse # Настройка прав доступа sudo adduser username fuse sudo chown root:fuse /dev/fuse |
Пример использования sshfs
1 2 3 4 |
mkdir ~/mnt/server sshfs username@host:/remotepath ~/mnt/server |
Чтобы отмонтировать
1 2 3 |
umount ~/mnt/server |
И вот в момент подключения будет запрошен пароль. Открытая сессия будет сохраняться до перезагрузки или завершения сеанса, т.е. не надо будет восстанавливать сессию как с ssh после перерыва в работе. Но когда работаешь с сервером каждый день, то подключаться каждый раз перед работой тоже надоедает. Стоит сделать автоматическое монтирование по sshfs.
Для начала генерируем открытый и закрытый ключ.
1 2 3 |
ssh-keygen -t rsa |
На все вопросы генерации жмем Enter, пароль вводить не надо. В итоге будут созданы ключи в ~/.ssh директории.
id_rsa – закрытый ключ, должен быть секретным и никому не виден.
id_rsa.pub – открытый, его и будем использовать для входа без пароля.
Все, что остается сделать, это записать открытый ключ в файл .ssh/authorized_keys на сервере для нужного пользователя. Если для root то /root/.ssh/ иначе в /home/user/.ssh
Способ первый длинный:
Копируем открытый ключ на сервер. Выполняется на клиентской машине.
1 2 3 |
scp .ssh/id_rsa.pub @:/home/user/.ssh |
Копируем ключ в нужный файл. Выполняется на сервере.
1 2 3 |
cat id_rsa.pub >> authorized_keys |
Способ второй короткий:
Копируем с клиентской машины ключ сразу куда надо на сервер.
1 2 3 |
ssh-copy-id -i ~/.ssh/id_rsa.pub @ |
Та-да! Теперь еще можно выставить права на чтение на сервере:
1 2 3 |
chmod 0700 ~/.ssh |
Пробуем зайти по ssh.
1 2 3 |
ssh user@server.com |
Если вход произошел успешно и главное без ввода пароля, то полдела уже сделано. Теперь задействуем установленный ранее sshfs. Но сделаем это хитро. Создадим bash скрипт и добавим его в автозагрузку.
1 2 3 4 |
#!/bin/sh sshfs @:/home/user /mnt/server |
Тут например монтируем домашнюю удаленную папку в папку server на локальной машине.
Меняем права на выполнение для файла
1 2 3 4 5 |
chmod +x name.sh #или chmod 777 name.sh |
В автозагрузку можно добавить просто команду или переместить этот файл в /etc/init.d/ или создать правило в cron с меткой @reboot.
Теперь при каждой перезагрузке файловая система будет монтироваться автоматически по sshfs и не надо вводить пароль!
Можно сделать автоматическое монтирование и без rsa ключей. Для этого надо добавить в автозагрузку команду:
1 2 3 |
echo 'password' | sshfs root@server.com:/srv /home/user/mnt/server/ -o password_stdin |
Пароль берется автоматически из стандартного потока ввода-вывода.
Возможные проблемы.
1. Agent admitted failure to sign using the key.Permission denied (publickey).
Означает, что сгенерированный rsa ключ не установлен в системе, не привязан. Для привязки надо выполнить:
1 2 3 |
ssh-add ~/.ssh/id_rsa |
2. Что если не вышло выполнить команду из пункта 1 и выдалась ошибка
Could not open a connection to your authentication agent
Надо выполнить сначала
1 2 3 |
ssh-agent /bin/bash |
И уже после ssh-add из пункта 1.