PhoenixServerインストール(CentOS編)
概要
Ubuntu編のインストール手順をアップしたのですが、CentOSのインストール手順もアップしようと思います。
手順サマリー
1.AWSインスタンスの用意
2.OSの基本設定/パッケージアップデートとサーバー再起動
3.各種前提パッケージのインストール
4.erlang/Elixirのインストール
5.PostgreSQLの設定
6.Elixirの初期設定/Phoenixサーバーの起動と設定
1.AWSインスタンスの用意
使用したAMIは以下です。
画像だとOSのバージョンが分からないのですが、CentOS Linux release 7.6.1810 (Core)
です。
インスタンスタイプはUbuntuのインストール時と異なりt2.large
を指定しています。
理由ですが、途中でElixirをソースコンパイルしたのですが、
その際にメモリが不足している旨のエラーが出力されたためです(汗
2.OSの基本設定/パッケージアップデートとサーバー再起動
ほぼほぼ、Ubuntuの時と変わらないです。
1.ホスト名の設定
2.selinuxの無効化
3.sudoユーザーの作成(パスワード設定含む/rootも一緒に設定)
hostnamectl set-hostname <MyHostName>
cp -p /etc/selinux/config /etc/selinux/config.org
vi /etc/selinux/config
1
2 # This file controls the state of SELinux on the system.
3 # SELINUX= can take one of these three values:
4 # enforcing - SELinux security policy is enforced.
5 # permissive - SELinux prints warnings instead of enforcing.
6 # disabled - No SELinux policy is loaded.
7 # SELINUX=enforcing
追加 SELINUX=Disabled
8 # SELINUXTYPE= can take one of three values:
9 # targeted - Targeted processes are protected,
10 # minimum - Modification of targeted policy. Only selected processes are protected.
11 # mls - Multi Level Security protection.
12 SELINUXTYPE=targeted
useradd work01
passwd work01
usermod work01 -g wheel
Ubuntuの時と同様にここまで終了したら、パッケージを最新化して、再起動します。
yum update -y
reboot
サーバーが起動してきたら、以下のコマンドを実行し、実行結果がDisabled
と表示されることを確認します。
$ getenforce
Disabled
3.各種前提パッケージのインストール
この後の導入手順でepelリポジトリが必要になるので追加します。
sudo yum install epel-release -y
sudo yum -y update && sudo yum -y upgrade
sudo yum install postgresql-server postgresql postgresql-contrib -y
yum install inotify-tools -y
sudo yum install gcc gcc-c++ glibc-devel make ncurses-devel openssl-devel autoconf java-1.8.0-openjdk-devel git -y
sudo yum install wxBase.x86_64 -y
sudo yum install wget -y
4.erlang/Elixirのインストール
erlangインストール用のリポジトリが用意されていますのでそちらを落とします。
wget http://packages.erlang-solutions.com/erlang-solutions-1.0-1.noarch.rpm
sudo rpm -Uvh erlang-solutions-1.0-1.noarch.rpm
ちなみに私はこのタイミングで1回reboot
を実行しました。
sudo yum install esl-erlang -y
ここまででErlangのインストールに成功したので、次はElixirのインストールを行います。
まずはElixirを配置するためのディレクトリを作成します。
sudo mkdir /opt/elixir
GitからElixirの最新版リポジトリをクローンします。
sudo git clone https://github.com/elixir-lang/elixir.git /opt/elixir
クローンが完了したら、ディレクトリを移動して、Elixirをソースコンパイルします。
cd /opt/elixir
sudo make clean test
上記のコマンドを実行するとコンパイル後にElixirの各種コマンドに対するテストが行われます。
それが完了したら、以下のコマンドでシンボリックリンクを作成して、パスが通るようにします。
sudo ln -s /opt/elixir/bin/iex /usr/local/bin/iex
sudo ln -s /opt/elixir/bin/mix /usr/local/bin/mix
sudo ln -s /opt/elixir/bin/elixir /usr/local/bin/elixir
sudo ln -s /opt/elixir/bin/elixirc /usr/local/bin/elixirc
Elixirが導入されたことを確認するため、以下のコマンドを実行します。
elixir -v
バージョンが表示されればElixirのインストールに成功してます。OKです。
5.PostgreSQLの設定
Ubuntuの時と同様にpostgresユーザーのパスワードを設定したいところなのですが、
CentOSの場合、起動するまでに少し手間が必要でしたので、記載しておきます。
postgresql-setup initdb
上記を実行しないとPostgreSQLのサービスを起動できませんでした。
あと、Ubuntuの時と違う手順になるのですが、PostgreSQLのローカル認証メソッドを
Ident
からmd5
に変更しておきます。
81 # IPv4 local connections:
82 #host all all 127.0.0.1/32 ident
追加 host all all 127.0.0.1/32 md5
83 # IPv6 local connections:
84 #host all all ::1/128 ident
追加 host all all ::1/128 md5
sudo systemctl start postgresql
sudo systemctl enable postgresql
以下のコマンドを実行して、PostgreSQLのサービスが起動していることを確認します。
sudo systemctl status postgresql
サービスが確認した後、改めて、postgresユーザーのパスワードを変更します。
sudo -u postgres psql -c "ALTER USER postgres PASSWORD '<YourPassword>';"
Ubuntuの時と同様にALTERROLE
が表示されれば、パスワードが変更されたことを意味します。
6.Elixirの初期設定/Phoenixサーバーの起動と設定
こちらの手順はほぼUbuntuの時と同じになります。
ここまでの手順でElixirをコンパイルしたフォルダにいると思いますので、
別のフォルダに移動しておきます。(私の場合、work01ユーザーのホームに移動しています)
cd
mix local.hex
唯一、Ubuntuと違う点なのですが、Elixirをシンボリックリンク作成でパスを通したため、
sudoを使用するとコマンドが見つからなくなりますので、mixを実行する際はsudo不要です。
Hexのインストールが完了したら、次にPhoenixをダウンロードし、ビルドします。
mix archive.install https://github.com/phoenixframework/archives/raw/master/phx_new.ez
Phoenixのプロジェクトを作成します。
mix phx.new <YourProjectName>
プロジェクトのディレクトリに移動して、DB作成のタスクを実行します。
cd <YourProjectName>/
mix ecto.create
これはUbuntuの時も同じでしたが、やはり、"plug_cowboy dependency missing"
の
問題が発生しますので、予め解消しておきます。
sudo cp -p <YourProjectName>/mix.exs <YourProjectName>/mix.exs.org
sudo vi <YourProjectName>/mix.exs
31 # Specifies your project dependencies.
32 #
33 # Type `mix help deps` for examples and options.
34 defp deps do
35 [
36 {:phoenix, "~> 1.3.4"},
37 {:phoenix_pubsub, "~> 1.0"},
38 {:phoenix_ecto, "~> 3.2"},
39 {:postgrex, ">= 0.0.0"},
40 {:phoenix_html, "~> 2.10"},
41 {:phoenix_live_reload, "~> 1.0", only: :dev},
42 {:gettext, "~> 0.11"},
43 {:cowboy, "~> 1.0"},
追加 {:plug_cowboy, "~> 1.0"}
45 ]
46 end
設定の編集が終わったら、ライブラリの読み込みを実施します。
mix deps.get
そして、ここでUbuntuの時と同様に、node.jsとnpmコマンドのインストール、
アセットのダウンロードまで実施しておきます。
sudo yum install nodejs -y
sudo yum install npm -y
cd assets && npm install
そして、ここまでが終わったら、以下のコマンドでPhoenixを起動します。
注意ですが、アセットをダウンロードするためにassetsフォルダに移動しているため、
以下のコマンドはcd ..
で階層上がってから実行してくださいね。
mix phx.server
セキュリティグループはもう大丈夫だと思いますので割愛します。
Webブラウザから4000番でアクセスするとPhoenixサーバーが起動していることを確認できます。
Author And Source
この問題について(PhoenixServerインストール(CentOS編)), 我々は、より多くの情報をここで見つけました https://qiita.com/Blue2012/items/0d08ef55329de5a453c3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .