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

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

[IMG]

Skuteczny Adwokat Opinie, 16 января

Excellent goods from you, man. I have understand your stuff previous to and you’re just
extremely magnificent. I really like what you’ve acquired here, really like what you’re stating and the way in which you
say it. You make it enjoyable and you still take care
of to keep it sensible. I can’t wait to read much more from you.

This is really a great site.

[IMG]

blogi warte odwiedzenia, 7 августа 2020 года

Aw, this was a really good post. Spending some time and actual
effort to create a good article… but what can I say… I procrastinate a lot and don’t seem to
get anything done.

[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 – сайт знакомств иркутск для серьезных отношений бесплатно