1. Зарегистрировать новый аккаунт на clodo.ru.

2. Купить, оплатить и включить сервер. Например, минимальный:

Операционная система: Ubuntu 12.04 64bit
Оперативная память: 256MB – 512MB
Процессор: 1 core
Жесткий диск: 5GB
Трафик: 20GB
Операционная система:
Датацентр: KIAEHOUSE

3. Получить рутовый доступ, залить ключи. Публичный IP сервера можно посмотреть в
панели управления clodo. Там же в панели можно посмотреть пароль от рута. Далее считаем, что ваш ip — 3.15.0.0.

ssh-copy-id root@3.15.0.0

Если на вашей машине нет ключа (нет файла ~/.ssh/id_rsa.pub) — создайте его командой

ssh-keygen -t rsa

4. Под рутом установить passenger, mysql, git. Поставить bundler (если у вас в rails-проекте есть Gemfile, в противном случае сами ставьте все gem-ы).

apt-get install python-software-properties
apt-add-repository ppa:brightbox/passenger-nginx
apt-get update
apt-get install nginx-full git mysql-server libmysqld-dev rubygems
gem install bundler

При установке mysql предложат ввести пароль рутового пользователя.

5. Создать в mysql пользователя и базу для нового приложения, дать пользователю права.

mysql -uroot -pmypass
CREATE USER 'my_username'@'localhost' IDENTIFIED BY 'my_password';
CREATE DATABASE `my_database` CHARACTER SET utf8 COLLATE utf8_general_ci;
GRANT ALL PRIVILEGES ON my_database.* TO 'my_username'@'localhost' IDENTIFIED BY 'my_password';
exit;

6. Под рутом настроить nginx, например, командой vi /etc/nginx/nginx.conf. Этот файл примерно таким и будет по умолчанию. По идее, его можно не трогать.

user www-data;
worker_processes 4;
pid /var/run/nginx.pid;

events {
	worker_connections 768;
	# multi_accept on;
}

http {

	##
	# Basic Settings
	##

	sendfile on;
	tcp_nopush on;
	tcp_nodelay on;
	keepalive_timeout 65;
	types_hash_max_size 2048;
	# server_tokens off;

	# server_names_hash_bucket_size 64;
	# server_name_in_redirect off;

	include /etc/nginx/mime.types;
	default_type application/octet-stream;

	##
	# Logging Settings
	##

	access_log /var/log/nginx/access.log;
	error_log /var/log/nginx/error.log;

	##
	# Gzip Settings
	##

	gzip on;
	gzip_disable "msie6";

	# gzip_vary on;
	# gzip_proxied any;
	# gzip_comp_level 6;
	# gzip_buffers 16 8k;
	# gzip_http_version 1.1;
	# gzip_types text/plain text/css application/json application/x-javascript text/xml application/xml application/xml+rss text/javascript;

	##
	# nginx-naxsi config
	##
	# Uncomment it if you installed nginx-naxsi
	##

	#include /etc/nginx/naxsi_core.rules;

	##
	# nginx-passenger config
	##
	# Uncomment it if you installed nginx-passenger
	##
	
	#passenger_root /usr/lib/phusion-passenger;
	#passenger_ruby /usr/bin/ruby;

	##
	# Virtual Host Configs
	##

	include /etc/nginx/conf.d/*.conf;
	include /etc/nginx/sites-enabled/*;
}


#mail {
#	# See sample authentication script at:
#	# http://wiki.nginx.org/ImapAuthenticateWithApachePhpScript
# 
#	# auth_http localhost/auth.php;
#	# pop3_capabilities "TOP" "USER";
#	# imap_capabilities "IMAP4rev1" "UIDPLUS";
# 
#	server {
#		listen     localhost:110;
#		protocol   pop3;
#		proxy      on;
#	}
# 
#	server {
#		listen     localhost:143;
#		protocol   imap;
#		proxy      on;
#	}
#}

/etc/nginx/conf.d/passenger.conf

passenger_root /usr/lib/phusion-passenger;

Делаем отдельный файл для конфигурации приложения.

/etc/nginx/sites-available/my_site

server { 
	listen   80; 
	passenger_enabled on; 
	server_name www.my_site.com my_site.com; 

	access_log  /var/log/nginx/my_site.access.log; 

	root /home/my_site/www/public; 

	# Redirect from www.my_site.com to my_site.com

	if ($host ~* www\.(.*)) { 
		set $host_without_www $1; 
		rewrite ^(.*)$ http://$host_without_www$1 permanent; 
	}

	# Redirect from various domain names to my_site.com

	if ($host !~* (.*\.)?my_site\.com) { 
		rewrite ^(.*)$ http://my_site.com$1 permanent; 
	} 
}

ln -s /etc/nginx/sites-available/my_site /etc/nginx/sites-enabled/my_site
service nginx restart

7. Создать пользователя my_site с паролем, сделать ему bash оболочкой по умолчанию, залить ключи:

useradd -d /home/my_site -m my_site
passwd my_site
chsh -s /bin/bash my_site

И, вернувшись на свою машину, выполнить

ssh-copy-id my_site@3.15.0.0

8. Залить публичный ключ нового пользователя в deploy-ключи github-а:

ssh my_site@3.15.0.0
ssh-keygen -t rsa
cat ~/.ssh/id_rsa.pub

Deploy-ключи заливают здесь: https://github.com/my_github_username/my_site/settings/keys.

9. Под новым пользователем залить код в папку www в домашней директории, поставить gem-ы, настроить базу…

git clone git@github.com:my_github_username/my_site.git www
cd www
bundle config path vendor/bundle
bundle install
vi config/database.yml
production:
   adapter: mysql
   encoding: utf8
   host: localhost
   database: my_database
   username: my_username
   password: my_password

Если начинаете жизнь с нуля:

bundle exec rake db:migrate RAILS_ENV=production

или залейте дамп старой базы, если он у вас есть.

10. Настроить всё остальное, что нужно вашему приложению, например

git submodule init && git submodule update

и прочее.

11. Для перезапуска сервера создать файл tmp/restart.txt

mkdir tmp
touch tmp/restart.txt

2 комментария [написать ещё один]

[IMG]

What causes pain in the Achilles tendon?, 3 сентября 2017 года

Have you ever considered publishing an e-book or guest authoring
on other sites? I have a blog centered on the same subjects you
discuss and would love to have you share some stories/information. I
know my visitors would appreciate your work. If you are even remotely interested, feel
free to shoot me an e mail.

[IMG]

CraigCleld, 28 ноября 2016 года

http://loveawake.ru – сайт знакомств иркутск для серьезных отношений бесплатно