家を建てる
システムにはまだユーザーさえいません。 はい、ほとんどの場合、ホスト名も上記の例ではなく、「56-78-vps-small」のようなものです。 注文ではありません。
変更:
#> nano /etc/hostname
#> nano /etc/hosts
再起動:
shutdown -r now
システムが起動するのを待っています。 ファイアウォールルールをすぐに追加します。
#> nano /etc/rc.local
# Drop all incoming traffic<br>
/sbin/iptables -P INPUT DROP<br>
# Drop all forwarded traffic<br>
/sbin/iptables -P FORWARD DROP<br>
# Allow all outgoing traffic<br>
/sbin/iptables -P OUTPUT ACCEPT<br>
# Allow returning packets<br>
/sbin/iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT<br>
# Allow incoming traffic on port 80 for web server<br>
/sbin/iptables -A INPUT -p tcp -m tcp --dport 80 -j ACCEPT<br>
# Allow local traffic<br>
/sbin/iptables -A INPUT -i lo -j ACCEPT<br>
# Allow incoming SSH on port 22<br>
/sbin/iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT<br>
# Allow ping<br>
/sbin/iptables -A INPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT<br><br>
exit 0
風水では、構成を別のファイルに保存し、別のコマンドで復元できます。 しかし、そうかもしれません:)吸い込む:
#> /etc/rc.local
私達は試みます:
#> asdlkjflaskdjf
文字が表示されている場合-息を吐き、彼らは座っていた枝を切り倒しませんでした(ルールとのssh接続を閉じなかった)。 続けましょう。
#> adduser deployer<br>
#> adduser eugzol<br>
#> adduser eugzol sudo
パスワードを覚えてください。
デプロイヤの下では、すべてのwwwが機能します。 eugzolの下で、sshを使用します(お気に入りのユーザー名を選択します)。 私たちは去り、私たちは来ます...
root@my-awesome-host#> exit<br>
eugzol@home$> ssh my-awesome-host<br>
eugzol@my-awesome-host$> sudo echo test
すべてがうまくいく-良い。 キーを追加します。
$> mkdir .ssh<br>
$> echo "ssh-rsa ........... == eugzol@home" > .ssh/authorized_keys<br>
$> chmod 700 .ssh<br>
$> cd .ssh<br>
$> chmod 600 *
接続を切断し、パスワードを要求するべきではありません。 同様に、キーをデプロイヤーユーザーに追加します。
カラーコンソールが好きな場合は、.bashrcの対応する行からコメントマークを削除します。
$> nano ~/.bashrc<br>
# ...<br>
force_color_prompt=yes<br>
...
パッケージ、パッケージ、パッケージ
便利なものはすべて事前に用意しています。 まあ、多分彼らは何かを忘れてしまった、それは怖くない、我々は後で状況を追加します
Rubyをビルドするには:
$> sudo apt-get -y install build-essential zlib1g zlib1g-dev libxml2 libxml2-dev libxslt-dev sqlite3 libsqlite3-dev locate git-core
MySQL(rootパスワードを覚えておいてください):
$> sudo apt-get -y install mysql-server libmysqlclient-dev
Passengerを構築するには:
$> sudo apt-get -y install libcurl4-openssl-dev
アプリケーションを展開する
$> sudo su deployer
次に、ディレクトリ構造を作成します。
/ホーム/デプロイヤ/リポジトリ-gitリポジトリ
/ホーム/デプロイヤ/プロジェクト-プロジェクトの作業コピー
$> mkdir repos<br>
$> mkdir projects
こする:
$> bash < <(curl -s rvm.beginrescueend.com/install/rvm)
最後に彼が書いたものを見る。 ただし、2つのことが重要です。
-おそらく、指定された行を.bashrcに追加する必要があります(まだない場合)
-おそらく、すべてのパッケージが指定されたパッケージから以前に配信されたわけではありません。 一歩戻って配信する必要があります
続けましょう。
$> rvm install 1.8.7
このバージョンのRubyが必要でした。 あなたが別のメインバージョンを持っている場合-別のものを入れてください。
次に、アプリケーションをインストールする方法、たとえば、ロールオンレールを見てみましょう。 科学によると、これをCapistranoまたは同様のツールでラップする必要があります。 しかし、初心者にとっては、簡単な方法で行うことができます。
そして最後に:
$> echo "gem: --no-rdoc --no-ri" > ~/.gemrc"
そのため、rubygemsによってドキュメントのインストールが遅くなることはありませんが、それでもローカルコンピューターからは誰も見ていません。
$> rvm use 1.8.7<br>
$> rvm gemset use global<br>
$> gem install bundler
リポジトリと作業ディレクトリ
cd ~/repos<br>
git init --bare rolling-on-rails.git
次に、プロジェクトディレクトリ内のローカルマシンで:
eugzol@home$> git remote add my-awesome-host ssh://deployer@my-awesome-host.ru/home/deployer/repos/rolling-on-rails.git<br>
eugzol@home$> git push my-awesome-host master
リモートに戻ります。
cd ~/projects<br>
mkdir rolling-on-rails<br>
cd rolling-on-rails<br>
git init<br>
git remote add local /home/deployer/repos/rolling-on-rails.git<br>
git fetch local<br>
git checkout master
プロジェクトのファイルがディレクトリに表示されます。
ベースをセットアップする
mysql -u root -p
パスワードを入力してください。
mysql> create user 'rolling-on-rails'@'localhost' identified by 'sakdl5&%1';<br>
mysql> create database rolling-on-rails charset utf8 collate utf8_bin;<br>
mysql> grant all on rolling-on-rails.* to 'rolling-on-rails'@'localhost';
構成を作成します。
cd ~/projects/rolling-on-rails<br>
echo "production:<br>
adapter: mysql<br>
host: localhost<br>
database: rolling-on-rails<br>
username: rolling-on-rails<br>
password: sakdl5&%1<br>
encoding: utf8" > config/database.yml
ジェムズアンドゴー!
$> echo "rvm 1.8.7@rolling-on-rails > .rvmrc"<br>
$> rvm gemset create rolling-on-rails<br>
$> cd ..<br>
$> cd rolling-on-rails
RVMは、.rvmrcに記述した内容を信頼するかどうかを尋ねます。 自分でこの行を思いついたのではなく、オープンネットワークのソースからコピーし、これらのインターネットサイトの構成ファイルに書き込むために何を提供するのかを知っているので、もう一度読み直します。
$> rvm info
もう一度、Rubyとgemsetの正しいバージョンがあることを確認します。
$> bundle install<br>
$> RAILS_ENV=production rake db:migrate<br>
$> RAILS_ENV=production rake db:seed
すべてが機能するかどうかを確認します。
乗客を置きます
一時的なデプロイヤをsudoグループに追加します。
eugzol@my-awesome-host$> sudo adduser deployer sudo<br>
sudo su deployer
インストール自体:
cd ~/projects/rolling-on-rails<br>
gem install passenger<br>
rvmsudo passenger-install-nginx-module
インストーラーに指示-すべてをダウンロードしてインストールします。
nginxログの場所を作成します。
mkdir ~/nginx
設定ファイルの編集:
cd /opt/nginx/conf<br>
sudo nano nginx.conf
最終的に、 http://pastie.org/2625120のようなものが得られます。
initスクリプトを配置します。
cd<br>
git clone git://github.com/jnstq/rails-nginx-passenger-ubuntu.git<br>
sudo mv rails-nginx-passenger-ubuntu/nginx/nginx /etc/init.d/nginx<br>
sudo chown root:root /etc/init.d/nginx
pidファイルへのパスを変更します。
$> sudo nano /etc/init.d/nginx
...<br>
PIDSPATH=/home/deployer/nginx<br>
...
私たちはチェックします:
$> sudo service nginx configtest
$> sudo service nginx start
IPまたはドメイン名でブラウザからサーバーにアクセスします。 「nginxへようこそ!」プロンプトが表示されます。
アプリケーション構成を追加します。
$> cd /opt/nginx/conf<br>
$> sudo su<br>
#> mkdir sites-available<br>
#> mkdir sites-enabled<br>
#> nano sites-available/rolling-on-rails.conf
http://pastie.org/2625166のようなものをそこに追加します。
含まれるもの:
#>cd sites-enabled<br>
#> ln -s ../sites-available/rolling-on-rails.conf .
再起動:
#> service nginx reload
rolling-on-rails.ruにアクセスします。 すべてが正しく行われていれば、作業アプリケーションを楽しんでいます。
尾をきれいにします
残りのゴミを削除します。
deployer@my-awesome-host$> rm -rf ~/rails-nginx-passenger-ubuntu
deployer@my-awesome-host$> exit
デプロイヤユーザーをsudoグループから削除します。
eugzol@my-awesome-host$> sudo nano /etc/group
「sudo:x:27:eugzol、deployer」のような行を「sudo:x:27:eugzol」に変更します。
exit
すべてが機能している間に他のことをやっています:)
PSこのトピックは、主にeugzol habrayuzerと私の小さな追加で書かれたので、カルマにすべての質問とプラスを送信する方が良い