CentOS 7にApacheをインストールする方法
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
Redmineは無料でオープンソースのWebベースのプロジェクト管理ツールです。Ruby on Railsで記述され、データベースを格納するための複数のデータベースサーバーをサポートしています。これは、複数のプロジェクト、役割ベースのACL、および問題追跡システムをサポートする機能豊富なアプリケーションです。また、ガントチャートとカレンダーのサポート、ファイル管理、プロジェクトごとのWikiとフォーラム、その他の多くの機能も備えています。Git、SVN、CVSなどのバージョン管理システムをサポートしています。また、多言語対応で、49もの言語をサポートしています。
このガイドはRedmine 3.4.4向けに書かれていますが、新しいバージョンにも適用される場合があります。
このチュートリアルでは192.168.1.1
、パブリックIPアドレスおよびredmine.example.com
Vultrインスタンスを指すドメイン名として使用します。サンプルのドメイン名とIPアドレスをすべて実際のものに置き換えてください。
CentOS 7のアップデート方法ガイドを使用して、ベースシステムをアップデートします。システムが更新されたら、依存関係のインストールに進みます。
RedmineはRuby on Railsで記述されているため、アプリケーションを提供するには、Phusion PassengerがApache Webサーバーと統合する必要があります。Apacheをインストールします。
sudo yum -y install httpd httpd-devel libcurl-devel
Redmineアプリケーションをビルドするには、いくつかの開発ツールも必要です。必要なツールをインストールします。
sudo yum -y install ImageMagick ImageMagick-devel git libxml2-devel libxslt-devel gcc bzip2 openssl-devel zlib-devel gdbm-devel ncurses-devel autoconf automake bison gcc-c++ libffi-devel libtool patch readline-devel sqlite-devel glibc-headers glibc-devel libyaml-devel libicu-devel libidn-devel
Redmineは、MySQL、PostgreSQL、MSSQLなど、複数のタイプのデータベースサーバーをサポートしています。このチュートリアルでは、PostgreSQLを使用してRedmineデータベースサーバーをホストします。
PostgreSQLはオブジェクトリレーショナルデータベースシステムです。デフォルトのyum
リポジトリには古いバージョンのPostgreSQLが含まれているため、PostgreSQLリポジトリをシステムに追加します。
sudo yum -y install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-centos10-10-1.noarch.rpm
PostgreSQLデータベースサーバーをインストールします。
sudo yum -y install postgresql10-server postgresql10-contrib postgresql10
データベースを初期化します。
sudo /usr/pgsql-10/bin/postgresql-10-setup initdb
PostgreSQLサーバーを起動し、起動時に自動的に起動するようにします。
sudo systemctl start postgresql-10
sudo systemctl enable postgresql-10
デフォルトのPostgreSQLユーザーのパスワードを変更します。
sudo passwd postgres
PostgreSQLユーザーとしてログインします。
sudo su - postgres
Redmineの新しいPostgreSQLユーザーを作成します。
createuser redmine
の代わりに任意のユーザー名を使用できますredmine
。PostgreSQLは、psql
データベースでクエリを実行するためのシェルを提供します。PostgreSQLシェルに切り替えます。
psql
Redmineデータベース用に新しく作成したユーザーのパスワードを設定します。
ALTER USER redmine WITH ENCRYPTED password 'DBPassword';
DBPassword
安全なパスワードに置き換えます。Redmineインストール用の新しいデータベースを作成します。
CREATE DATABASE redmine WITH ENCODING='UTF8' OWNER=redmine;
psql
シェルを終了します。
\q
sudo
ユーザーに切り替えます。
exit
pg_hba.conf
ファイルを編集して、MD5ベースの認証を有効にします。
sudo nano /var/lib/pgsql/10/data/pg_hba.conf
次の行を検索し、値を変更peer
し、ident
中METHOD
に列をtrust
してmd5
、それぞれ。
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 ident
# IPv6 local connections:
host all all ::1/128 ident
更新すると、構成は次のようになります。
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
PostgreSQLを再起動して、変更を有効にします。
sudo systemctl restart postgresql-10
さらにいくつかの必要なPostgreSQL依存関係をインストールします。
sudo yum -y install libpqxx-devel protobuf-devel
システムを他のシステムから分離するために、権限のないユーザーを使用してアプリケーションを実行することをお勧めします。Redmineの新しいユーザーを作成し、新しく作成したユーザーに切り替えます。
sudo adduser redmine
sudo su - redmine
RubyバージョンマネージャーまたはRVMを使用して、最新バージョンのRubyをインストールします。Rubyの複数のバージョンをインストールおよび管理するために使用されます。
RVMのGPGキーをサーバーに追加します。
gpg --keyserver hkp://keys.gnupg.net --recv-keys 409B6B1796C275462A1703113804BB82D39DC0E3 7D2BAF1CF37B13E2069D6956105BD0E739499BDB
RVMをインストールします。
curl -sSL https://get.rvm.io | bash -s stable
source ~/.rvm/scripts/rvm
Rubyの利用可能なバージョンのリストを取得します。
rvm list known
Rubyバージョンの長いリストが表示されます。
[redmine@vultr ~]$ rvm list known
# MRI Rubies
[ruby-]1.8.6[-p420]
[ruby-]1.8.7[-head] # security released on head
[ruby-]1.9.1[-p431]
[ruby-]1.9.2[-p330]
[ruby-]1.9.3[-p551]
[ruby-]2.0.0[-p648]
[ruby-]2.1[.10]
[ruby-]2.2[.7]
[ruby-]2.3[.4]
[ruby-]2.4[.1]
ruby-head
...
リストから最新バージョンのRubyをインストールします。
rvm install 2.4
インストールされているバージョンのRubyを使用します。
rvm use 2.4
バージョンを確認できます。
ruby -v
同様の出力が表示されます。
[redmine@vultr ~]$ ruby -v
ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
Rubyアプリケーションの依存関係マネージャーであるbundlerをインストールします。
gem install bundler
Rubyがインストールされました。Redmineをインストールする前に、Phusion Passengerをインストールする必要があります。
次のコマンドを実行してPassengerをインストールします。
gem install passenger
redmine
ユーザーのホームディレクトリに実行権限を付与します。乗客は、アプリケーションを提供するためにバイナリを実行する必要があります。
chmod o+x "/home/redmine"
Passenger用のApacheモジュールをインストールします。
passenger-install-apache2-module
インストーラースクリプトはいくつかの質問をします。まず、インストールプロセスに関する情報を提供します。次に、使用する言語を選択するように求められます。アプリケーションはRuby on Railsで記述されているため、メニューから「Ruby Enter
」を選択し、「」を押して先に進みます。
Which languages are you interested in?
Use <space> to select.
If the menu doesn't display correctly, press '!'
‣ ⬢ Ruby
⬡ Python
⬡ Node.js
⬡ Meteor
インストーラーが要件を確認します。インストーラーは欠落している依存関係に遭遇することはなく、モジュールのコンパイルとインストールに自動的に進みます。
モジュールがインストールされると、モジュールをApache構成ファイルに追加するように求められます。
Almost there!
Please edit your Apache configuration file, and add these lines:
LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so
<IfModule mod_passenger.c>
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerDefaultRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
</IfModule>
After you restart Apache, you are ready to deploy any number of web
applications on Apache, with a minimum amount of configuration!
Press ENTER when you are done editing.
ここではこれをスキップし、チュートリアルの後半で完了します。現在ログインしているユーザーにはsudo
権限がないためです。Enter
この手順をスキップするには、「」を押します。
最後に、インストーラスクリプトがインストールを検証し、Apache構成でPassengerモジュールが指定されていないことを示す警告が表示されます。
Validating installation...
* Checking whether this Passenger install is in PATH... ✓
* Checking whether there are no other Passenger installations... ✓
* Checking whether Apache is installed... ✓
* Checking whether the Passenger module is correctly configured in Apache... (!)
You did not specify 'LoadModule passenger_module' in any of your Apache
configuration files. Please paste the configuration snippet that this
installer printed earlier, into one of your Apache configuration files, such
as /etc/httpd/conf/httpd.conf.
Detected 0 error(s), 1 warning(s).
Press ENTER to continue.
ApacheのPassengerモジュールをインストールしたので、Redmineのダウンロードとインストールに進みます。
Redmineの公式ダウンロードページから最新バージョンのRedmineをダウンロードしてください。
cd ~
wget http://www.redmine.org/releases/redmine-3.4.4.tar.gz
便宜上、アーカイブを抽出し、ディレクトリの名前を変更します。
tar -xf redmine-*.tar.gz
mv redmine-*/ redmine/
サンプル構成ファイルを本番ロケーションにコピーします。
cd redmine
cp config/configuration.yml.example config/configuration.yml
cp config/database.yml.example config/database.yml
コピーしたデータベース構成ファイルを開いて、データベースの詳細を入力します。
nano config/database.yml
デフォルトでは、データベースファイルはMySQL用に構成されています。本番環境と開発環境の構成を見つけ、MySQLアダプターを使用するテストを行います。これらの行をすべてコメント化します。
#production:
# adapter: mysql2
# database: redmine
# host: localhost
# username: root
# password: ""
# encoding: utf8
#development:
# adapter: mysql2
# database: redmine_development
# host: localhost
# username: root
# password: ""
# encoding: utf8
#test:
# adapter: mysql2
# database: redmine_test
# host: localhost
# username: root
# password: ""
# encoding: utf8
production
さらに、postgresql
アダプターの構成を含む、コメント化されている行を見つけます。これらの行のコメントを外して、データベース名とユーザー資格情報を更新します。必ず2つのスペースである正しいインデントを使用してください。
production:
adapter: postgresql
database: redmine
host: localhost
username: redmine
password: "DBPassword"
PostgreSQL構成を使用するようにアプリケーションを構成します。
bundle config build.pg --with-pg-config=/usr/pgsql-10/bin/pg_config
アプリケーションに必要なアプリケーションの依存関係をインストールします。
bundle install --without development test
インストールの最後に次のメッセージが表示されます。
Installing roadie-rails 1.1.1
Bundle complete! 31 Gemfile dependencies, 55 gems now installed.
Gems in the groups development and test were not installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
次のコマンドは、セッションデータのエンコードに使用されるシークレットトークンを生成します。
bundle exec rake generate_secret_token
PostgreSQLデータベースを書き込みます。
RAILS_ENV=production bundle exec rake db:migrate
次のコマンドを実行すると、デフォルトのデータがPostgreSQLデータベースに書き込まれます。
RAILS_ENV=production bundle exec rake redmine:load_default_data
上記のコマンドでは、アプリケーションで使用するデフォルトの言語を選択するように求められます。デフォルトの選択は英語です。お好みに合わせてお選びください。
[redmine@vultr redmine]$ RAILS_ENV=production bundle exec rake redmine:load_default_data
Select language: ar, az, bg, bs, ca, cs, da, de, el, en, en-GB, es, es-PA, et, eu, fa, fi, fr, gl, he, hr, hu, id, it, ja, ko, lt, lv, mk, mn, nl, no, pl, pt, pt-BR, ro, ru, sk, sl, sq, sr, sr-YU, sv, th, tr, uk, vi, zh, zh-TW [en]
====================================
Default configuration data loaded.
Redmineアプリケーションのインストールが完了しました。ディレクトリーとファイルの所有権と許可を変更します。
mkdir -p tmp tmp/pdf public/plugin_assets
chown -R redmine:redmine files log tmp public/plugin_assets
chmod -R 755 files log tmp public/plugin_assets
非特権ユーザーから必要なものすべてを構成しました。をsudo
実行して、ユーザーに切り替えますsu - <username>
。
ApacheのPassengerモジュールをApache構成ファイルに追加します。これは自動的にPassengerモジュールをロードします。
echo "LoadModule passenger_module /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/buildout/apache2/mod_passenger.so" | sudo tee -a /etc/httpd/conf.modules.d/00-base.conf
Redmineアプリケーション用の新しい仮想ホストファイルを作成します。
sudo nano /etc/httpd/conf.d/redmine.conf
ファイルに次の内容を入力します。
<VirtualHost *:80>
ServerName redmine.example.com
DocumentRoot /home/redmine/redmine/public
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
PassengerUser redmine
<Directory /home/redmine/redmine/public>
Allow from all
Options -MultiViews
Require all granted
</Directory>
</VirtualHost>
をredmine.example.com
実際のドメイン名に置き換えてください。また、PassengerRoot
およびへのパスPassengerRuby
が正しいことを確認してください。RubyまたはPassengerの新しいリリースがあると、バイナリへのパスが変更される可能性があります。これらのパスを見つけるには、次のコマンドを実行します。
sudo su redmine -c "passenger-config about ruby-command"
次の出力が表示されます。
[user@vultr ~]$ sudo su redmine -c "passenger-config about ruby-command"
passenger-config was invoked through the following Ruby interpreter:
Command: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
Version: ruby 2.4.1p111 (2017-03-22 revision 58053) [x86_64-linux]
To use in Apache: PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
To use in Nginx : passenger_ruby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
To use with Standalone: /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12/bin/passenger start
仮想ホストファイルが作成されたら、Apache Webサーバーを再起動します。
sudo systemctl restart httpd
ファイアウォール構成を変更して、ポート80
がファイアウォールを通過できるようにします。
sudo firewall-cmd --zone=public --add-service=http --permanent
sudo firewall-cmd --reload
これで、Redmineインターフェースにアクセスできますhttp://redmine.example.com
。ユーザー名admin
とパスワードでログインしますadmin
。最初のログイン時に、Redmineはパスワードの更新を要求します。
Redmineのインストールは公開サーバー上にあるため、サーバーからのデータ交換を保護するためにSSLを使用することをお勧めします。
Let's Encrypt CAのクライアントアプリケーションであるCertbotをインストールします。
sudo yum -y install epel-release
sudo yum -y install certbot mod_ssl
あなたが証明書を要求する前に、ポートできるようにする必要があります80
し、443
または標準HTTP
とHTTPS
ファイアウォールを介してサービスを。80
以前にすでにポートを許可しているので、ポートを許可しましょう443
。
sudo firewall-cmd --zone=public --add-service=https --permanent
sudo firewall-cmd --reload
注: Let's Encrypt CAから証明書を取得するには、証明書を生成するドメインをサーバーに向ける必要があります。そうでない場合は、ドメインのDNSレコードに必要な変更を加え、DNSが伝播するのを待ってから、証明書要求を再度行ってください。証明書ボットは、証明書を提供する前にドメイン認証局をチェックします。
SSL証明書を生成します。
sudo certbot certonly --webroot -w /home/redmine/redmine/public -d redmine.example.com
生成された証明書は、おそらくに保存され/etc/letsencrypt/live/redmine.example.com/
ます。SSL証明書はとして保存されcert.pem
、秘密鍵はとして保存されprivkey.pem
ます。
Let's Encrypt証明書は90日で期限切れになるため、cronジョブを使用して証明書の自動更新を設定することをお勧めします。
root
ユーザーのCronジョブファイルを開きます。
sudo crontab -e
ファイルの最後に次の行を追加します。
30 5 * * * /usr/bin/certbot renew --quiet
上記のCronジョブは、毎日午前5時30分に実行されます。証明書の有効期限が切れる場合、証明書は自動的に更新されます。
先ほどRedmine用に作成した仮想ホストファイルを編集します。
sudo nano /etc/httpd/conf.d/redmine.conf
仮想ホストファイルを次のように変更します。
<VirtualHost *:80>
Redirect permanent / https://www.example.com/
ServerName redmine.example.com
</VirtualHost>
<VirtualHost *:443>
ServerAdmin [email protected]
ServerName redmine.example.com
DocumentRoot "/home/redmine/redmine/public"
<Directory "/home/redmine/redmine/public">
Options None
Require all granted
</Directory>
PassengerAppEnv production
PassengerRoot /home/redmine/.rvm/gems/ruby-2.4.1/gems/passenger-5.1.12
PassengerRuby /home/redmine/.rvm/gems/ruby-2.4.1/wrappers/ruby
PassengerUser redmine
PassengerHighPerformance on
SSLEngine on
SSLCertificateFile /etc/letsencrypt/live/redmine.example.com/cert.pem
SSLCertificateKeyFile /etc/letsencrypt/live/redmine.example.com/privkey.pem
SSLCertificateChainFile /etc/letsencrypt/live/redmine.example.com/chain.pem
SSLProtocol all -SSLv2 -SSLv3
SSLHonorCipherOrder on
SSLCipherSuite ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-RSA-AES256-SHA:DHE-RSA-AES128-SHA256:DHE-RSA-AES128-SHA:DHE-RSA-AES256-SHA256:DHE-RSA-AES256-SHA:ECDHE-ECDSA-DES-CBC3-SHA:ECDHE-RSA-DES-CBC3-SHA:EDH-RSA-DES-CBC3-SHA:AES128-GCM-SHA256:AES256-GCM-SHA384:AES128-SHA256:AES256-SHA256:AES128-SHA:AES256-SHA:DES-CBC3-SHA:!DSS
<IfModule headers_module>
Header always edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure
Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains"
</IfModule>
</VirtualHost>
ファイルを保存して、エディターを終了します。
Apacheを再起動して、変更を有効にします。
sudo systemctl restart httpd
RedmineにHTTPS
からアクセスできるようになりましたhttps://redmine.example.com
。
おめでとうございます。CentOS7インスタンスにRedmineが正常にインストールされました。プロジェクトを作成またはインポートして、プロジェクトの開発を開始します。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
CentOS 7サーバーにApache 2.4をインストールする方法を説明します。安定したウェブサーバーを構築するための前提条件と手順を解説します。
FreeBSD 11.1におけるBlacklistdのインストール方法について詳しく解説します。この方法を通じて、強力なセキュリティ対策を実装できます。
サーバーマネージャーを使用して、Windows Serverの管理が向上します。セキュリティリスクを軽減し、効率的な管理を実現します。
CentOS 7にSeafileサーバーをインストールする方法。Seafile(コミュニティバージョン)は、ownCloudに似た無料のオープンソースファイル同期および共有ソリューションです。
Snortは無料のネットワーク侵入検知システムです。最新の方法で、SnortをDebianにインストールし、設定する手順を紹介します。ネットワークのセキュリティを強化しましょう。
CentOS 7にGraylogサーバーをインストールし、ログ管理を行う方法を学びます。
WindowsサーバーでWebサイトを実行している場合、電子メールも受信できるようにするためにhMailServerを使用する方法を解説します。
FiveMサーバーをUbuntu 19.04にインストールするための詳細なガイド。必要条件からインストール、起動、トラブルシューティングまで、すべてのステップを含みます。
Debian 10にWebDAVをデプロイする方法を学び、WsgiDAVとSSL証明書で安全な接続を実現しましょう。
ヘルスケアにおけるAIは、過去数十年から大きな飛躍を遂げました。したがって、ヘルスケアにおけるAIの未来は、日々成長を続けています。