質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.34%
Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

Q&A

解決済

4回答

575閲覧

apache httpdを使った社内サーバーでホスト名にアプリケーション種別を含めることができるか(含めるべきか)

ttact

総合スコア171

Apache

Apacheは、Apache HTTP Serverの略で、最も人気の高いWebサーバソフトウェアの一つです。安定性が高いオープンソースソフトウェアとして商用サイトから自宅サーバまで、多くのプラットフォーム向けに開発・配布されています。サーバーソフトウェアの不具合(NCSA httpd)を修正するパッチ(a patch)を集積、一つ独立したソフトウェアとして開発されました。

0グッド

0クリップ

投稿2024/12/11 05:53

編集2024/12/11 22:55

なんちゃってサーバー管理者(普段は組み込み技術者)なので、頓珍漢な質問してたらすみません。

Redmineとsubversionをホストする1台のLinuxサーバーを運用しています。
現在は社内から
http://ホスト名/redmine/
http://ホスト名/svn/リポジトリ名/
みたいな感じでアクセスしております。
redmine向けの.confファイルでは、以下のように指定しています:

<Directory /opt/redmineインストールディレクトリ/public> Allow from all Options -MultiViews Require all granted </Directory> Alias /redmine /opt/redmineインストールディレクトリ/public <Location /redmine> PassengerBaseURI /redmine PassengerAppRoot /opt/redmineインストールディレクトリ </Location>

で、先日redmineを5.1系から6.0系にアップデートしたのですが、その後assetsディレクトリ内に格納されているアイコン用画像ファイルにアクセスできなくなっていました。
chromeの開発者ツールとhttpdのアクセスログを見たら、どうも /opt/redmineインストールディレクトリ/public/assets/ の中のファイルを http://ホスト名/assets/ でアクセスしているようでした。
(redmineのほうでアイコンを扱う.cssファイルが/assets/起点の指定に変わった?)

とりあえずの暫定対処として、redmineのhttpd向け.confファイルにて

Alias /assets /opt/redmineインストールディレクトリ/public/assets

を追加したのですが、対処として何か間違えているような気がしています。

redmineの開発者が、アプリケーションのホームディレクトリから/assets/でアクセスするように組んでいるということは、アクセスURLが http://ホスト名/redmine/ みたいな感じではなくて http://redmine.ホスト名/ みたいな感じでアクセスすることを意図しているのか?と思った次第です。

実際のところ、どうするべきなのか?何か知見をお持ちの方がおられましたら、ご教授下さると幸いです。


12/12 7:40 追記
TakaiYさん、utm.さん、ご回答ありがとうございます。
お二人の回答を見て思ったのですが、どうも私が質問をうまくできていないようですみません。
以下に質問の補足を記述します。

http://aaaa.bbbb.cccc/dir1/dir2」
と書いてアクセスする際、このaaaa.bbbb.ccccがどう解決されるのか、私には正確な知識がありません。それが質問の1つのポイントなのかなと思います。

現在は固定IPを割り当てたPCについて、そのIPとPC名を手動でActiveDirectory内のDNSに登録しているようです。この登録の部分は申し訳ないのですが私は知識がなくどのように行われているのか知りません(社内インフラ担当部署にお願いしております)。PC名は例えば「devsrv01」みたいな感じです。そのため各開発メンバーはredmineアクセス時にブラウザに
http://devsrv01/redmine/」
とURLを入力することでアクセスしています。

で、前述のaaaa.bbbb.ccccなのですが、私は「webの名前解決においては、ccccがまずjpならjpを担当する名前解決サーバーに問い合わせてbbbbを解決してもらい、その後bbbbにアクセスしに行ってaaaaを解決してもらう」程度の知識だけを持っています。
そして最初の質問に戻るのですが、開発メンバーが
http://redmine.devsrv01/」
とURLを入力した際、ActiveDirectory内のDNSサーバーの設定を変更せず、devsrv01上の設定のみで上記のURLを解決できるのか、それともアプリケーションを追加する度にDNSサーバーの設定を何か変更する必要があるのかどうかがわかりません。これを質問すべきでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

otn

2024/12/11 13:47 編集

質問タイトルへの回答としては、TakaiYさんの回答のようにしか言い様がないですね。 ・含めることができるか ⇒ 出来る ・含めるべきか ⇒ 貴社のことを何も知らない人に聞く話ではない。一般論としてはどっちでもいい > とりあえずの暫定対処として、redmineのhttpd向け.confファイルにて の部分については、Redmineをインストールしたことがないので一般論ですが、付属のドキュメントや公式サイトにそのあたりの説明は書いてないということでしょうか? メジャーバージョンアップだと、アップグレードガイド的な文書があるケースもあります。必ずあるとは限りませんが。
guest

回答4

0

redmineの開発者が、アプリケーションのホームディレクトリから/assets/でアクセスするように組んでいる

それはそうでしょう。 デフォルトの設定は決める必要があり、専用のサーバを建てていることをデフォルトにするのは妥当だと思います。
ですが、単にそういうことであり、そうすべきとしているわけではないでしょう。

社内サーバーでホスト名にアプリケーション種別を含めることができるか

それは社内でどのようにホスト名の解決を行なっているか、それらをどのようなポリシーで管理しているかによりますね。

(含めるべきか)

「べき」とは言えないでしょう。
どのような考えかたで運用するかということで、ホスト名を変えるにしても「同一のホストに複数の名前を付けるのは気持ち悪い」という人もいるでしょう。

すでに社内で使っているサーバのようですから、これまでの運用で問題なかったのであれば、従来通りアクセスできるようにしてあげるのがいいと思います。
ただ、どのようにしてそれを実現するかについては、redmineを使ったことはないので、現状の方法が最適なのかも含めてよくわかりません。

投稿2024/12/11 06:12

編集2024/12/11 07:19
TakaiY

総合スコア13904

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttact

2024/12/27 04:14

ご回答ありがとうございます。皆さんに頂いた内容を飲み込むのに時間がかかりお返事遅くなり申し訳ありません。 webアプリやアクセスURLについて、私が考えたような暗黙的なルールは特に存在しないと理解しました。ありがとうございます。
guest

0

このaaaa.bbbb.ccccがどう解決されるのか、私には正確な知識がありません。それが質問の1つのポイントなのかなと思います。

1.ホスト名からIPアドレスを調べて、そのIPアドレスの付いた機器(HTTPサーバーなど)と通信を行う話 ⇒ DNSサーバーに設定する
2.1つのHTTPサーバーに複数のホスト名を付けて、ホスト名によって、違うディレクトリ内容を表示できるようにする機能 ⇒ ApacheなどのHTTPサーバーに設定する
は、全く別の話です。

具体的に言うと、1については、「http://devsrv01/でアクセスしてもhttp://redmine.devsrv01/でアクセスしても、同じサーバー(同じIPアドレス)にアクセスしたい」という場合は、DNSサーバーにすでにdevsrv01というホスト名とそのIPアドレスが登録されいてるはずなので、新規にredmine.devsrv01というホスト名と同じIPアドレスを追加で登録します。
複数のホスト名に1つの同じIPアドレスを登録するのは、ごく当たり前に行われています。

2について、
「同じApacheサーバーなのだが、アクセスされるホスト名によって違う物を表示したい」というのは、「名前ベースのバーチャルホスト」と言って、下記のように書きます。

Apache

1<VirtualHost *:80> 2 ServerName devsrv01 3 DocumentRoot /opt/devsrv01 4 # 他に何かホスト名が devsrv01 の時だけに限って有効にしたい設定があればここに書く 5</VirtualHost> 6<VirtualHost *:80> 7 ServerName redmine.devsrv01 8 DocumentRoot /opt/redmine 9 # 他に何かホスト名が redmine.devsrv01 の時だけに限って有効にしたい設定があればここに書く 10</VirtualHost>

これで、
http://devsrv01/abc.txt/opt/devsrv01/abc.txtが表示され、
http://redmine.devsrv01/abc.txt/opt/redmine/abc.txtが表示されます。

Alias /assets /opt/redmineインストールディレクトリ/public/assets
を追加したのですが、対処として何か間違えているような気がしています。

自体は、別におかしくはないです。
ほの方法もあり得るので、私ならコメントに書いた通り、公式のドキュメントにどう書いてあるかをまず調べてから考えます。

「間違えてる」気がする理由が、
「上記のようなバーチャルホスト機能を使わずに、ホスト名はdevsrv01だけを使っている状態で、全く他の要件で、http://devsrv01/assetsを使う必要が出てきたら、名前が競合するので困る」
ということなら、「実際にそうなった時に考える」というのが一つの手でです。
その時点で初めてバーチャルホスト機能を使うというのもあるかと思います。

もちろん、現時点でバーチャルホストを使って、ホスト名を分けてもいいです。

どっちがいいかは、繰り返しですが、組織の状況次第です。
・ホスト名のネーミングルールがどうなっているか?
・ホスト名の利用ルールがどうなっているか?(「同じIPにはホスト名は1つだけ」というルールはおそらく無いとは思いますが)
・サービスのURLを変更することによる影響の大小(皆さんにメールや掲示板で通知するだけで良いのか、そのURLがあちこちのシステムに埋め込まれていてたり、マニュアル文書などに書かれていて、それらを全部書き換えるのか、とか)
などでしょうか。

また、URLを変更する場合は、うっかり古いURLでアクセスした場合に、どうなるようにするか。
インターネット上で不特定多数の人が使うのなら、「古いURLでアクセスすると新しいURLにリダイレクトする」ケースが普通だと思いますが、社内の場合だとエラーにしてしまって、URL変更を徹底する方が良いと思います。
リダイレクトをし続けると、将来、リダイレクトを止めた時に初めてエラーで困る人が明らかになりますが、URL変更から数年経っていて変更したという事実を皆が忘れていると、エラーの原因究明に時間が掛かります。
まあ、そういう心配が必要かどうかも組織の状況次第ですね。

投稿2024/12/12 13:28

otn

総合スコア85989

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttact

2024/12/27 04:23

ご回答ありがとうございます。皆さんに頂いた内容を飲み込むのに時間がかかりお返事遅くなり申し訳ありません。 改めてURLの解析について学習しなおし(https://www.onamae.com/column/domain/50/ 等を参考にしました)、頂いた内容に基づいて色々実験し、バーチャルホスト設定+DNS設定によって可能であることを理解できました。大変ありがとうございます。 今回は、元々の問題の"正しい"解決方法がkatsukoさんの回答でわかったので申し訳ないのですがそちらをベストアンサーにさせて頂きましたが、本質問内容についての回答としてはotnさんの回答が最もわかりやすかったです。大変助かりました。
otn

2024/12/27 15:33

あー、やはり最初にアドバイスした通り、「公式のドキュメント」を読んで解決したと言うことですね。 > 私ならコメントに書いた通り、公式のドキュメントにどう書いてあるかをまず調べてから考えます。 README や INSTALL というファイルがあれば、必読ですよ。
ttact

2025/01/06 02:58

otn様 これまでオープンソースのものをほぼ使わない環境にいたので(化石です)、よもやwebサイトで示されているドキュメントが最新ではないとは思いもしませんでした。自分としてはそちらが"公式"だと思っておりました。。。このあたりREADMEを最初にチェックする等OSSの文化に慣れないといけないですね。ありがとうございます。
guest

0

ベストアンサー

パターン2: サブディレクトリでRedmineを実行
アセット(スタイルシートやJavascriptなど)をコンパイルする必要があります。下記のコマンドで RAILS_RELATIVE_URL_ROOT に指定しているのは実行例で使用しているサブディレクトリ名です。実際に実行するときは、自分で設定したサブディレクトリ名を指定してください。

と書いてありましたが、やってますか?
やっていないと、質問のような問題が起きそうな気がしますが。

投稿2024/12/12 14:09

katsuko

総合スコア3554

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttact

2024/12/27 04:17

ご回答ありがとうございます。皆さんに頂いた内容を飲み込むのに時間がかかりお返事遅くなり申し訳ありません。 https://www.redmine.org/projects/redmine/wiki/RedmineInstall を読んでインストールしており、その際にはアセットのコンパイル等の記載はなかったなと思いながら色々調べていたのですが、配布されているtar.gzの中にdocs/INSTALLというファイルがあり、そちらには上記webサイトに記載のないアセットのコンパイルの話がありました。公式のドキュメントに記載がないことをやるのは今後の保守上問題になりそうだと思っていたので、良かったです。 katsukoさんに頂いた回答がこの公式ドキュメントに到達する助けとなりましたので、ベストアンサーにさせて頂きます。
guest

0

バーチャルホストを使って複数のドメイン名を管理するとか(名前解決)
ポート番号をそれぞれ切替えるとか
シンボリックリンクを使用するとか
そういった方法がある気がします。
ただ、予期せぬ不具合が起きるかもしれないです。

基本的にはドメイン名を入力されたらそこがデフォルトのルートで、ディレクトリを指定して使用するという方法ではないような認識ではありますが、必ずそうしなければならないということもないような気もしています。

redmineの内部処理が絶対パスとして、ホスト名直下のディレクトリを見に行くのであれば、従来のやり方は難しいかもしれないですが、
質問者さんの説明を見る限りそういうわけでもなさそうです。
そもそもとしてドキュメントルート(使用法あってる?)が、
/opt/redmineインストールディレクトリ
という話ならその下の構造を調整する他ないのでは無いでしょうか?
一応ディレクトリの変更は必須のようですが
https://redmine.jp/redmine_today/2024/11/redmine-6_0_0-released/

ホスト名にアプリケーション種別を含めることができるか

という問に引っかかってる人がいる印象ですが、名前は別にどっちでもいいと思います。
当然、社内で管理しているなら、社内で解決すればいいと思いますが。
ノウハウがないということで質問しているという感じもしますが。

こちらもトンチンカンな回答してたらすみません。
書いていて思いましたが先の回答を言い換えているだけになってしまっている所が多々ありますね。

対処として何か間違えているような気がしています。

必要以上に複雑なことをしているわけでもないので、サーバーごと移行する機会があればその時に見直せばいいと思います
気になるなら、どこかにメモを残せばいいかと思います
SVNでサーバーに関するドキュメントをバージョン管理しているでしょうし
正直正解というものはない気がする。不思議なものですが。


ActiveDirectory内のDNSサーバーの設定を変更せず、devsrv01上の設定のみで上記のURLを解決できるのか、

できないと思います。各PCで設定すればできますが。
ホスト名(実際にはドメイン名という気がする。私の知識では)を変更することで、あなたの問題を解決するならば、ActiveDirectory内のDNSサーバーの設定を変更するという手順は必要かと思われますが、

ほかの回答にもあるように、ip/アプリ名
のパスで今までアクセスできていたならその方法で良いと思います。

それぞれのアプリケーションはどのみちドキュメントルートを辿るので、実際にどのパスにアプリケーション用のディレクトリがあるのか?(また、 redmineなどのソフトウェアの内部処理でどういったパスを認識するのか)を意識している前提が少し混乱を招いていそうです。
(これが参考になる補足になっているか、こちらとしては分かりませんが。。。)


社内インフラ担当部署にお願いしております

社内で管理してあるのであれば、その部署に伺えばよろしい気がします。

技術的な話を抜きにしても、インフラ部署でホスト名をdevsrv01として、管理しているのに管理から外れてredmineやsvnという名前を付けられることを許容すれば管理する意味が薄れていきますから、
あなたがその作業をするにしても、それに関してはどちらにせよ通知しなければならないわけです。
※devsrv01上でそれが実際にできるという話ではないです
※また、redmine.devsrv01という名前を付ければ重複がないから自由にして構わんだろうという話でもないです。

投稿2024/12/11 15:33

編集2024/12/12 17:23
utm.

総合スコア376

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ttact

2024/12/27 04:27

ご回答ありがとうございます。皆さんに頂いた内容を飲み込むのに時間がかかりお返事遅くなり申し訳ありません。 直接的な解決方法としては、katsukoさんの回答にコメントしたとおりredmineのインストール手順に工夫が必要でしたので、そちらをベストアンサーにさせて頂きました。申し訳ございません。 こちらこそふわっとした質問にご回答頂き大変ありがとうございます。「基本的にはドメイン名を入力されたらそこがデフォルトのルートで、ディレクトリを指定して使用するという方法ではないような認識ではあります」ということがwebアプリの開発者の方からの視点として頂けたのは大変ありがたく思います。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.34%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問