Показаны сообщения с ярлыком CPanel. Показать все сообщения
Показаны сообщения с ярлыком CPanel. Показать все сообщения

вторник, 8 марта 2011 г.

Автоматическое резервное копирование домашнего каталога на ftp на хостинге с CPanel

Полное резервное копирование домашнего каталога сайта на ftp можно осуществить с использованием следующего php-скрипта

<?php

// PHP script to allow periodic cPanel backups automatically, optionally to a remote FTP server.
// This script contains passwords.  KEEP ACCESS TO THIS FILE SECURE! (place it in your home dir, not /www/)

// ********* THE FOLLOWING ITEMS NEED TO BE CONFIGURED *********

// Info required for cPanel access
$cpuser = "username"; // Username used to login to CPanel
$cppass = "password"; // Password used to login to CPanel
$domain = "example.com"; // Domain name where CPanel is run
$skin = "x"; // Set to cPanel skin you use (script won't work if it doesn't match). Most people run the default x theme

// Info required for FTP host
$ftpuser = "ftpusername"; // Username for FTP account
$ftppass = "ftppassword"; // Password for FTP account
$ftphost = "ftp.example.com"; // Full hostname or IP address for FTP host
$ftpmode = "ftp"; // FTP mode ("ftp" for active, "passiveftp" for passive)

// Notification information
$notifyemail = "you@example.com"; // Email address to send results

// Secure or non-secure mode
$secure = 0; // Set to 1 for SSL (requires SSL support), otherwise will use standard HTTP

// Set to 1 to have web page result appear in your cron log
$debug = 0;

// *********** NO CONFIGURATION ITEMS BELOW THIS LINE *********

if ($secure) {
   $url = "ssl://".$domain;
   $port = 2083;
} else {
   $url = $domain;
   $port = 2082;
}

$socket = fsockopen($url,$port);
if (!$socket) { echo "Failed to open socket connection... Bailing out!\n"; exit; }

// Encode authentication string
$authstr = $cpuser.":".$cppass;
$pass = base64_encode($authstr);

$params = "dest=$ftpmode&email=$notifyemail&server=$ftphost&user=$ftpuser&pass=$ftppass&submit=Generate Backup";

// Make POST to cPanel
fputs($socket,"POST /frontend/".$skin."/backup/dofullbackup.html?".$params." HTTP/1.0\r\n");
fputs($socket,"Host: $domain\r\n");
fputs($socket,"Authorization: Basic $pass\r\n");
fputs($socket,"Connection: Close\r\n");
fputs($socket,"\r\n");

// Grab response even if we don't do anything with it.
while (!feof($socket)) {
  $response = fgets($socket,4096);
  if ($debug) echo $response;
}

fclose($socket);

?>



Этот скрипт нужно поместить в файл в кодировке UTF-8(без BOM) и загрузить на сервер в не публичный каталог(в файле содержатся пароли, поэтому нежелательно чтобы кто-то мог его посмотреть). Затем добавить в cron в качестве задания.

Статья (на английском языке) из которой взят скрипт, находится здесь

понедельник, 7 марта 2011 г.

Связываем Redmine с репозиторием svn на хостинге с CPanel

На самом деле ничего сложного, все делается точно также как и на любом другом типе хостинга.
 
Кратко: из под аккаунта администратора заходим  в настройки проекта -> репозитории (administration -> projects -> projectname -> Repository). Там выбираем тип subversion, указываем адрес, логин, пароль и жмем применить. 

 Все остальное можно почитать здесь.

среда, 2 марта 2011 г.

Установка svn (Subversion) на хостинг с CPanel

Подключаемся по ssh к серверу. Создаем папку с репозиториями.
mkdir /home/username/svn
mkdir /home/username/svn/repos

Создаем пустую папку для первого репозитория
mkdir /home/username/svn/repos/repo1

Далее создаем репозиторий в папке repo1
svnadmin create /home/username/svn/repos/repo1/

Настраиваем права пользователей. Для этого в файл /home/username/svn/repos/repo1/conf/svnserve.conf добавляем следующие строки.

[general]
anon-access = none
auth-access = write
realm = Test Repository
password-db = passwd

Информация об авторизации пользователей хранится в файле ‘passwd’ в той же директории что и файл svnserve.conf в формате
Username = password
Теперь необходимо запустить сервис свн
svnserve -d -r /home/username/svn/repos/
Для отладки удобнее запускать svnserve с параметром --foreground, тогда можно в любом момент остановить сервис нажатием ctrl + c.

Теперь на клиентском компьютере импортируем необходимую нам папку в репозиторий
svn import -m ‘Initial Import’ path/to/folder/ svn://domainname/repo1/
Проверяем работает ли свн с помощью команды
svn info svn://domainname/repo1/

воскресенье, 27 февраля 2011 г.

Автоматическое резервное копирование баз данных MySql на сервере с CPanel и отправка их на емаил

Создаем скрипт

sqldbbackup.sh
set -e
MYSQL_USER="user"
MYSQL_PASS="pass"
MAIL_TO="my@email.com"

cd /tmp

(mysqldump -u$MYSQL_USER -p$MYSQL_PASS --all-databases | gzip -9 - > dump.sql.gz) && \
(echo | mutt -a dump.sql.gz -s "[DB BACKUP]" $MAIL_TO)
rm -f dump.sql.gz

Данный скрипт делает бэккап всех баз данных в один файл и отправляет этот файл на указанный почтовый ящик.

После копирования этого скрипта на сервер, нужно не забыть установить права на выполнения его командой chmod +x sqldbbackup.sh.

Далее добавляем этот скрипт на автовыполнение в cron и радуемся жизни :)

суббота, 26 февраля 2011 г.

установка Redmine на сайт с cPanel и MySql базой данных

Для начала подключаемся к серверу по ssh (например с помощью putty). При подключении указываем имя сервера через который идет вход на CPanel и логин и пароль от CPanel.
Выполняем команды указанныездесь (далее "инструкция") до п. 1, а именно
gem install rails -v=2.3.5
gem install rack -v=1.0.1
gem install mysql
На команде gem install rack -v=1.0.1 может быть выдано сообщение " ERROR: could not find gem rack locally or in a repository ". Если это случилось - не отчаиваемся, есть как минимум 2 варианта решения проблемы.
1. Изменить источник, с которого загружаются gems.
Чтобы посмотреть этот источник выполняем команду
gem source

У меня выдало сообщение следующего содержания:
*** CURRENT SOURCES ***


http://gems.rubyforge.org/

Далее добавляем сайт http://rubygems.org/ в источники.
gem sources -a http://rubygems.org/
Если сайт успешно добавлен - пробуем установить rack ещё раз
gem install rack -v=1.0.1

2. Второй способ - это загрузить gem вручную с сайта rack.rubyforge.org
Далее выполняем:
wget http://rubyforge.org/frs/download.php/71197/rack-1.0.1.tar.gz
tar zxf rack-1.0.1.tar.gz
gem install rack



Создаем базу данных. Для этого заходим в раздел CPanel "базы данных", и создаем там бд и пользователя, которого redmine будет использовать для доступа к этой бд. Пользователя связываем с бд, привилегии ставим - разрешить все.
Далее загружаем редмайн к себе на хостинг.
Через файловый менеджер CPanel или ftp выполняем действия п. 3 инструкции.
3. Copy config/database.yml.example to config/database.yml and edit this file in order to configure your database settings for "production" environment.

Example for a MySQL database:
production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: my_password

Далее по ssh открываем папку с редмайном (команда cd) и в ней выполняем п.4 - п.6.
Могут быть выданы сообщения о необходимости установки некоторых гемов. Смело устанавливаем их. Если же и после установки все равно выдается сообщение о необходимости их установки, то скорее всего задан неверный путь к директориям GEM_PATH и GEM_HOME. В этом случае в файл .bash_profile (находится в корневой директории сайта) добавляем следующие строки
export GEM_HOME="/home/username/ruby/gems"
export GEM_PATH="/home/username/ruby/gems/gems"
где вместо username вписываем ваше имя пользователя для входа в CPanel.

Устанавливаем Mongrel
gem install mongrel --include-dependencies
Проверяем mongrel
mongrel_rails start -c /path/to/redmine/folder -e production -p 5555

Если все работает, то есть при открытии в браузере сайта по 5555 порту - открывается redmine, то все отлично. Нажимаем в консоли ctrl + c - останавливаем mongrel. Далее запускаем его ещё раз, но уже в фоновом режиме
mongrel_rails start -c /path/to/redmine/folder -e production -p 5555 -d
Должно запуститься без ошибок.

Теперь нужно позаботиться о том, чтобы mongrel запускался после перезагрузке сервера (как можно предположить в любом случае сервер иногда перезагружается, и тогда наше приложение перестанет работать).
Сделать это не так просто как может показаться на первый взгляд, однако все же возможно. Для этого воспользуемся планировщиком cron. Итак, идем в секцию advanced -> cron jobs

Далее вписываем в строку Command строку запуска нашего приложения (mongrel_rails start -c /path/to/redmine/folder -e production -p 5555 -d), в строку minute - @reboot

Как мы видим - CPanel поле minute подсвечивает как ошибочное. Но мы то знаем, что оно введено верно. Убедить CPanel, что ввели мы все верно, можно следующим образом (далее инструкция для пользователей браузера Opera 11, возможно что-то похожее можно сделать и в других браузерах).
Заходим в редактор исходного кода страницы (правая клавиша мыши -> исходный код). Там поиском находим функцию var validate_minute_field, заменяем возвращаемое ей значение на true (см. рисунок).

Далее аналогичным образом изменяем функции validate_hour_field, validate_day_field, validate_month_field, validate_weekday_field. Получилось вот так

Жмем применить изменения. Переходим на вкладку самой страницы добавления задания и жмем добавить задание. Задание добавлено.

Ярлыки

java (31) оптимизация (7) CPanel (5) svn (5) windows xp (5) ошибка (5) свой сервер (5) файлы и папки (5) gui (4) регулярные выражения (4) jacoco (3) redmine (3) windows (3) автоматизация (3) защита данных (3) резервное копирование (3) сервер (3) JavaScript (2) Oracle SQL (2) adsl модем (2) apache maven (2) apache tomcat (2) coverage (2) dropbox (2) excel (2) firewall (2) netbeans (2) office 2007 (2) samsung (2) system tray (системный трей) (2) xerox (2) вирусы (2) принтер (2) сериализация (2) удаленный рабочий стол (2) HTML (1) JFileChooser (1) MySQL (1) Nokia (1) Ovi (1) P660R-T1 (1) WakeOnLan (1) blogger.com (1) ctfmon.exe (1) email (1) flash память (1) ftp (1) integration testing (1) ip (1) jQuery (1) jvisualWm (1) log4j (1) look and feel (1) myBatis (1) php (1) serialVersionUID (1) skype (1) smtp (1) ssh (1) swing (1) torrents (1) unit-testing (1) unix (1) vpn (1) windows 7 (1) xStarter (1) zip (1) безопасность (1) вход в систему (1) дизайн (1) документация (1) заправка (1) интернет (1) логирование (1) мышь (1) патч (1) перенос (1) печать (1) плагины (1) почтовые сообщения (1) программирование (1) процессы (1) прошивка (1) сеть (1) сеть. ошибка (1) скрытые файлы (1) списки (1) фильтрация (1) фокус (1) часовые пояса (1) шифрование (1) экран (1)