You need to be Payday Loans UK Why would you

subsystem request for sftp

Пытаясь подключиться к серверу по sftp используя FileZilla:
Nov 28 08:25:51 server01 sshd[19577]: Accepted password for root from 77.120.137.175 port 55070 ssh2
Nov 28 08:25:51 server01 sshd[19577]: subsystem request for sftp
Nov 28 08:25:51 server01 sshd[19577]: error: subsystem: cannot stat /usr/libexec/sftp-server: No such file or directory
Nov 28 08:25:51 server01 sshd[19577]: subsystem request for sftp failed, subsystem not found

Но при этом без проблем могу подключиться по ssh.

Это легко решается путем создания симлинка в нужное место.
Найдем где находится нужный файл :

root@server01 ~]# locate sftp-server
/usr/libexec/openssh/sftp-server

и создадим ссылку на него:

ln -s /usr/libexec/openssh/sftp-server /usr/libexec/sftp-server

1030 – Got error -1 from storage engine

На одном из проектов я использую тип таблиц InnoDB. В этом проекте очень важно сохранять целостность данных. Поэтому я довольно активно использую внешние ключи для связи таблиц. И вот однажды я столкнулся с проблемой удаления записи (CASCADE), когда попытался удалить из таблицы (`group`), которая была связанна внешним ключем с таблицей (`subgroup`), которая в, свою очередь, была связана еще с одной таблицей (`item`).
Ошибка которую показал phpmyadmin:
Error
SQL query:
DELETE FROM `fancypets`.`groups` WHERE `groups`.`group_id` =1
MySQL said: Documentation
#1030 - Got error -1 from storage engine

Аналогичная ошибка при использовании консоли mysql:

mysql> delete from groups where `group_id`=4;
ERROR 1030 (HY000): Got error -1 from storage engine

Логи mysql сервера:
Cannot delete/update rows with cascading foreign key constraints that exceed max depth of 250

Решение: Если вы используете mysql-server-5.1.51, то вам повезло – вы узнаете причину уже в слудующий момент, в противном случае вы, наверное, действительно превысили лимит в глубину 250 :) .
Если коротко, то это баг версии mysql-server-5.1.51.
После того как я выполнил:
#portupgrade mysql-server

проблема исчезла.

Установка Redmine в FreeBSD

Вам, вероятно, известно, что redmine портирован в FreeBSD. Прежде всего я попытался его собрать:

#cd /usr/ports/www/redmine
===> redmine-1.2.1_1 is marked as broken: Does not work with RubyGems 1.8.
*** Error code 1

Stop in /usr/ports/www/redmine.

Конечно, Вы бы врядли читали сейчас этот пост если бы порт собрался успешно ;)
Автор порта пометил его как “broken” из-за бага в Gem 1.8.

В результате мне пришлось ставить его вручную по официальноу руководству
В процессе установки я столкнулся с рядом проблемами. Таким образом данный пост является дополненным, а также адаптированным под FreeBSD руководством установки Redmine. Рассмотрены возможные ошибки и способы их решения.
Надеюсь это пригодится кому-нибудь. итак, поехали…

1) Качаем Redmine (I used svn for it):

#svn co http://redmine.rubyforge.org/svn/branches/1.2-stable redmine-1.2

2) Создаем базу данных (конечно, Вы можете использовать для этого phpmyadmin или что угодно):
mysql -uuser -ppasword
mysql> create database redmine character set utf8;
mysql> create user 'redmine'@'localhost' identified by 'passforuser';
mysql> grant all privileges on redmine.* to 'redmine'@'localhost';
mysql>exit;


3) Правим конфиг для подключения к базе данных ( копируем из config/database.yml.example). config/database.yml:

production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: passforuser

4) Генерируем session store secret.
#rake generate_session_store
Missing the i18n 0.4.2 gem. Please `gem install -v=0.4.2 i18n`

Вот здесь начинаются проблемы. Без паники делаем то, что предлагаетcя:
#gem install -v=0.4.2 i18n
Fetching: i18n-0.4.2.gem (100%)
Successfully installed i18n-0.4.2
1 gem installed
Installing ri documentation for i18n-0.4.2...
Installing RDoc documentation for i18n-0.4.2...

снова пробуем:

#rake generate_session_store
Missing the Rails 2.3.11 gem. Please `gem install -v=2.3.11 rails`, update your RAILS_GEM_VERSION setting in config/environment.rb for the Rails version you do have installed, or comment out RAILS_GEM_VERSION to use the latest version installed.

Я попробовал изменить значение RAILS_GEM_VERSION (on 3.0.5) но Redmine еще не работает с версией 3.0.5 (у меня была установлена именно она) так что устанавливаем раннюю версию:
# gem install -v=2.3.11 rails

и снова пробуем:
# rake generate_session_store
rake/rdoctask is deprecated. Use rdoc/task instead (in RDoc 2.4.2+)
WARNING: 'task :t, arg, :needs => [deps]' is deprecated. Please use 'task :t, [args] => [deps]' instead.
at /vol1/www/www.slim/httdocs/redmine/redmine-1.2/lib/tasks/email.rake:170

Немного погуглив, выяснилось, что это связано с версией rake которую тоже нужно “опустить”:
# gem install -v=0.8.7 rake
Fetching: rake-0.8.7.gem (100%)
Successfully installed rake-0.8.7
1 gem installed
Installing ri documentation for rake-0.8.7...
Installing RDoc documentation for rake-0.8.7...

# gem uninstall -v=0.9.2 rake
Successfully uninstalled rake-0.9.2

В конечном итоге сработало:
# rake generate_session_store
(in /vol1/www/www.slim/httdocs/redmine/redmine-1.2)

5) Миграция базы данных:
# rake db:migrate RAILS_ENV=production
(in /vol1/www/www.slim/httdocs/redmine/redmine-1.2)
rake aborted!
syntax error on line 8, col 2: ` encoding: utf8'

(See full trace by running task with --trace)
Нашел-таки проблему. Оказалось я допустил ошибку в конфигурации базы данных – пропустил проблем перед паролем. Далее:

# rake db:migrate RAILS_ENV=production
(in /vol1/www/www.slim/httdocs/redmine/redmine-1.2)
!!! The bundled mysql.rb driver has been removed from Rails 2.2. Please install the mysql gem and try again: gem install mysql.
rake aborted!
no such file to load -- mysql

устанавливаем gem mysql:
howtobsd# gem install mysql

и снова пробуем запустить миграцию:
howtobsd# rake db:migrate RAILS_ENV=production

На этот раз все прошло гладко, миграция завершена!

6) Импортируем дефолтные данные (рекомендуется):
# rake redmine:load_default_data RAILS_ENV=production
(in /vol1/www/www.slim/httdocs/redmine/redmine-1.2)

Select language: bg, bs, ca, cs, da, de, el, en, en-GB, es, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]

Выбираем язык и двигаемся дальше.

7) В соответствии с руководством устанавливаем права на папки (создаем, если каких-то нет):

chown -R username:username files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets

8) Тестируем установку:
#ruby script/server webrick -e production
=> Booting WEBrick
=> Rails 2.3.11 application starting on http://0.0.0.0:3000

Готово, теперь можете попробовать в браузере ввести http://localhost:3000

* login: admin
* password: admin

У меня заработало. Надеюсь у Вас тоже!

9) Нам осталось только сконфигурировать Apache для redmine.
Конфигурация ROR приложений для Apache описана в моей статье “Installing Ruby on Rails on FreeBSD” только сейчас я внес некоторые изменения в httpd.conf в связи с измененной версией passenger.
Теперь у меня в httpd.conf это выглядит так:
LoadModule passenger_module /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5/ext/apache2/mod_passenger.so
PassengerRoot /usr/local/lib/ruby/gems/1.8/gems/passenger-3.0.5
PassengerRuby /usr/local/bin/ruby18

10) Ну, и напоследок, мой пример конфигурации виртуального хоста для redmine:
<VirtualHost *:80>
ServerName my-projects.com
DocumentRoot /vol1/www/www.slim/httdocs/redmine/redmine-1.2/public/
RailsEnv production
ErrorLog /vol1/www/www.slim/httdocs/redmine/redmine-1.2/log/httpd.log
</VirtualHost>

Это все!

HTC Wildfire freebsd

Этот пост описывает как примонтиролвать флеш накопитель телефона htc wildfire на FreeBSD.
На самом деле это описание относиться не только к телефонам HTC, а и к другим flash накопителям, которые не определяются автоматически.

Первым делом смотрим dmesg:
howtobsd# dmesg -a | tail
.....
da0 at umass-sim0 bus 0 scbus0 target 0 lun 0
da0: Removable Direct Access SCSI-2 device
da0: 40.000MB/s transfers
da0: Attempt to query device size failed: NOT READY, Medium not present

Т.к. реальное имя раздела нам не известно – выполняем следущие команды, чтбы выяснить(надеюсь, точка монтирования /mnt/flash уже существует):

howtobsd#mount /dev/da0 /mnt/flash
mount: /dev/da0 : Invalid argument

Игнорируем ошибку, и смотрим в /dev – дам должно появиться устройство:
howtobsd#ls -l /dev/da*
crw-r----- 1 root operator 0, 143 16 окт 17:57 /dev/da0
crw-r----- 1 root operator 0, 144 16 окт 18:29 /dev/da0s1

Теперь можно монтировать раздел:

mount_msdosfs /dev/da0s1 /mnt/flash/

Готово.

Монтирование iso образа в FreeBSD

монтировать iso freebsd” – один из распространенных вопросов пользователей FreeBSD. Впрочем, сделать это очень легко. Давайте убедимся в этом:

Во-первых, нам необходимо создать виртуальное устройство для нашего iso образа (используем mdconfig для этого):
howtobsd# mdconfig -a -f /path_to_iso/Mac_OS_X.iso
md0

md0 (результат выполнения комманды) – это название виртуального устройства которое мы создали (должно появиться в /dev/md0).
Можно проверить, появилось ли оно в /dev:
howtobsd# ls /dev/ | grep md0
md0

Теперь виртульное устройство md0 готово к монтированию:

howtobsd# mount_cd9660 /dev/md0 /cdrom

Вот и все, данные iso образа теперь доступны в разделе /cdrom.

Для удаления и размонтирования виртуального устройства, соответственно, используйте комманды:
howtobsd# umount /cdrom
mdconfig -d -u md0

E575: viminfo: Illegal starting char in line: ^E14

Появляется следущая ошибка при каждом запуске vim (попытке открыть\сохранить файл при помощи редактора vim):
E575: viminfo: Illegal starting char in line: ^E14

Решение проблемы: удалить в домашней папке файл ~/.viminfo:

rm ~/.viminfo

Можете не беспокоиться о необходимости этого файла – это файл истории редактора и он восстановится автоматически.

Пакетное конвертирование файлов используя iconv

Конвертирование файла из KOI8-R в utf-8:
#iconv -f KOI8-R -t utf-8 originalfile > newfile
Измените KOIR-8 и utf-8 на нужные кодировки.

Пакетное конвертирование файлов используя iconv (определенного типа):

#mkdir new; for a in $(find . -name "*.php"); do iconv -f KOI8-R -t utf-8 <"$a" >new/"$a" ; done

Результатом выполнения этой комманды будет папка “new” с конвертированными файлами.

mysqldump на FreeBSD

Просто несколько заметок об утилите mysqldump.

Создание полной резервной копии базы:

# mysqldump -uDBUSER -pPASSWORD DBNAME > filename.sql

или
# mysqldump --user=username --password=password DBNAME > filename.sql

Если Вам необходимо создать резервную копию сразу нескольких баз данных, Вы можете использовать параметр -B (или -databases)

mysqldump -uDBUSER -pPASSWORD -B DBNAME1 DBNAME2 > filename.sql

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

mysqldump -uDBUSER -pPASSWORD -A > filename.sql

Для дампа только структуры базы (без данных)

mysqldump -uDBUSER -pPASSWORD --no-data DBNAME > filename.sql

Для того, чтобы ограничить количество записей при дампе (Очень полезная комманда, когда вам необходимо развернуть огромный проект с небольшим количеством данных – например, для тестов):

mysqldump -uDBUSER -pPASSWORD --where="true limit 100" DBNAME > filename.sql
эта комманда сделает резервную копию вашей базы данных с ограниченым количеством записей в каждой таблице.

Perl: Premature end of script headers

Internal Server Error 500
Эта ошибка появлялась когда я пытался запустить IPN скрипт для paypal на perl.
Логи апача:

Perl: Premature end of script headers

Длительное время я пытался решить проблему путем передачи скриптом заголовков типа:

print "Content-type: text/plain\n\n"; but unsuccessfully.

Оказалось, что проблема кроется в формате перевода строки, которые в DOS и UNIX, как известно, различаются. То есть нужно просто изменить формат окончания строки с DOS/WIN (CR/LF) на формат Unix (LF). Мою проблему это решило. Если Вашу нет, то обратите внимание на права скрипта.

Надеюсь, что кому-нибудь это поможет.

Обновление до php 5.3.6 (autoconf: required version 2.68 not found)

Обновлял php до 5.3.6
сам php обновился нормально но extensions не захотели – попробовал обновить extensions при помощи статьи посвященной обновлению php5

Также не срабатывает утилита portupgrade ( для php5-mcrypt, например):
howtobsd# portupgrade php5-mcrypt
[Updating the pkgdb
in /var/db/pkg ... - 951 packages found (-1 +0) (...) done]
---> Upgrading 'php5-mcrypt-5.3.3_2' to 'php5-mcrypt-5.3.6' (security/php5-mcrypt)
---> Building '/usr/ports/security/php5-mcrypt'
===> Cleaning for php5-mcrypt-5.3.6
===> Vulnerability check disabled, database not found
===> License check disabled, port has not defined LICENSE
===> Extracting for php5-mcrypt-5.3.6
=> SHA256 Checksum OK for php-5.3.6.tar.bz2.
===> Patching for php5-mcrypt-5.3.6
===> php5-mcrypt-5.3.6 depends on file: /usr/local/bin/phpize - found
===> php5-mcrypt-5.3.6 depends on file: /usr/local/bin/autoconf-2.68 - found
===> php5-mcrypt-5.3.6 depends on shared library: mcrypt.8 - found
===> php5-mcrypt-5.3.6 depends on shared library: ltdl.7 - found
===> PHPizing for php5-mcrypt-5.3.6
Configuring for:
PHP Api Version: 20090626
Zend Module Api No: 20090626
Zend Extension Api No: 220090626
autoconf: required version 2.68 not found
*** Error code 1
Stop in /usr/ports/security/php5-mcrypt.
** Command failed [exit code 1]: /usr/bin/script -qa /tmp/portupgrade20110417-89058-19avmgv-0 env UPGRADE_TOOL=portupgrade UPGRADE_PORT=php5-mcrypt-5.3.3_2 UPGRADE_PORT_VER=5.3.3_2 make
** Fix the problem and try again.
** Listing the failed packages (-:ignored / *:skipped / !:failed)
! security/php5-mcrypt (php5-mcrypt-5.3.3_2) (unknown build error)

Как написано выше нужен autoconf 2.68:

howtobsd# portupgrade autoconf

А также нжно обновить autoconf-wrapper:

howtobsd# portupgrade autoconf-wrapper

после этого все обновилось.