Наше самолюбование, 18 февраля 2013 года
Наше самолюбование, 18 февраля 2013 года
Евгений Золотарев: пик ебанутости и влюблённости
Евгений Золотарев: это кажется общий момент
Евгений Золотарев: в отношениях
Евгений Золотарев: с ебанутыми
Евгений Золотарев: и влюблёнными
Наше самолюбование, 7 февраля 2013 года
Евгений Золотарев: полезно налаживать приятный внутренний мир, потому что ты там, ёпта, живёшь
Вы не поверите, всё нормально!
Очередной безупречный день, 19 января 2013 года
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
Наше самолюбование, 30 ноября 2012 года
EugZol: давай бренд придумаем
EugZol: блять, что со мной
EugZol: *зачёркивает*
EugZol: давай охуенное название придумаем
Наше самолюбование, 9 ноября 2012 года
EugZol: как говорится
EugZol: “что-нибудь не так?”
EugZol: “всё-нибудь так”
Installero Online, 7 ноября 2012 года
Музыка отвлекает меня от научной деятельности, но никак не мешает программированию или проектированию интерфейса. Писать текст под музыку сложно, а читать — отлично, даже лучше, чем без неё.
Наше самолюбование, 7 ноября 2012 года
EugZol: в Симплоге бы вёл
Installero: с тобой я и так попиздеть могу
Наше самолюбование, 7 ноября 2012 года
Собеседница: Вот специально кроме конфет купила нам сухофруктов, чтобы эти конфеты не есть. И вот что, думаешь, я их не буду есть?
Наше самолюбование, 23 октября 2012 года
eugzol: обстоятельства падают сверху фигурками
eugzol: и тебе их надо уложить в заранее заданную форму
eugzol: при этом если завалило в пизду то проще
eugzol: начать с начала