🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Apache

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

Q&A

解決済

1回答

3625閲覧

ApacheサーバーにAngularをセットアップしないほうがいいですか?

MashuScott

総合スコア18

Angular

Angularは、JavaScriptフレームワークです。AngularJSの後継であり、TypeScriptベースで実装されています。機能ごとに実装を分けやすく、コードの見通しが良いコンポーネント指向です。

Apache

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

Webサーバー

Webサーバーとは、HTTPリクエストに応じて、クライアントに情報を提供するシステムです。

0グッド

0クリップ

投稿2019/12/19 05:21

編集2019/12/19 05:24

######既存ApacheサーバーにAngularを入れないほうがいいですか?
[概要]
AngularをApacheサーバーにセットアップしようとしましたが、angularは4200ポートを自動で開けたがるのでapache側でポート制御をしていたら一々angularに合わせるのがめんどくさいし、セットアップも時間がかかるので使うのをやめようかと考えています。


[詳細]
以下のサーバー構成です。

  • Linux x64
  • Apache2(ポート80をローカルで開放中)
  • PHP7.3

このような構成で、Angularを入れるとします。
npmインストールをし、ngコマンドを使用可能にしました。
apache内で設定したwebサーバールートディレクトリ内で

bash

1ng new sample

しました。
だいぶ長い時間がかかった後にセットアップが終わりました。
動作テストでlocalhost:4200/sample/srcへアクセスしました。
開放しているポートは80のみですし、apacheにも80ポートで設定しているため当然アクセスできません。
ポートにまつわる設定を全面的に変更しないと行けないのではないかと思っています。(定かではありませんが。)
ここまでめんどくさい仕様のjsフレームワークを使う必要もないのでは?っと思っています。(せめてvue.jsとか古いけどangular.jsくらいでいいんでは?)

以上のことからタイトルのような疑問を抱えています。
回答をお願いします。

また、実際ポート制御等に意図しない形で手を加えようとするフレームワークそのものにも不安を感じることもangularを敬遠させています。

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

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

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

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

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

miyabi_takatsuk

2019/12/19 05:25

つまり、ビルドしたものを、サーバーに上げるのではなく、 サーバー上で、ng serveさせる、ということですか?
MashuScott

2019/12/19 05:27

そう考えていたのですが、Angularはそういうものではないのですか?
miyabi_takatsuk

2019/12/19 05:28

それも行けますが、あまりよろしくないかもですね。 (サーバー負担大きそう) 回答させていただきますね。
MashuScott

2019/12/19 05:33 編集

すいません、本回答いただく前にもうひとつだけお願いします!!(もしくは本回答に付け加えていただけると助かります。) [web開発を仮定します。] Angularは開発環境セットアップのために4200を開こうとしてきます。 仮に仮想環境をポート80で設営していた場合、4200ポートにAngularシステム、80には自己設営した仮想サーバーシステムが両立してしまいます。 これを解消するにはやはり4200ポートでangularを使ったデザインのみを構成し、サーバーサイドは80ポートで作るとかしないとダメでしょうか・
miyabi_takatsuk

2019/12/19 05:37 編集

なるほど。 それでしたら、4200でビルドしたファイルを、80ポートに移すって仕組み(シェルスクリプトでいけるかと)の方がいいのではないでしょうか?? 回答の方もよろしければご参考に
guest

回答1

0

ベストアンサー

Angularの開発実行コマンドである、ng serveは、ポートとホストをオプションで指定できるので、
それをやればいいのではないでしょうか。

command

1ng serve --port 使用したいポート番号 --host 使用したいホスト

ただし、表示スピードとかサーバー負担とかけっこう大きそうな気がします。
表示スピードは、Angularのメリットなので。
なので、なるたけ、ビルドしたファイルを、サーバーにアップするってしたほうがいいかと思います。
それを自動化するなら、
ビルドして、distディレクトリを、ZIP圧縮して、サーバーにアップロードする際は、アップロードされたZIPを、サーバーで自動的に解凍して展開する、というシェルスクリプト組む、とか・・・。ですかね。
いろいろ方法はあるかと。

投稿2019/12/19 05:34

miyabi_takatsuk

総合スコア9555

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

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

MashuScott

2019/12/19 05:43

回答ありがとうございます。 Angularに誤認がたくさんあったこともあり、早速サーバーからAngularを削除しました。Angularインストールに使われたパッケージ管理なども削除しました。(これ以外使わないのと無駄にファイル容量が大きいので) また、方針としてはご提案いただいたビルドファイルを移管する方法でやってみようと思います。
miyabi_takatsuk

2019/12/19 05:49

解決されて何よりです。 Angularなどの、特にCLIを使うJSフレームワークは、 ビルドしたファイルをサーバーに上げることを前提で作られているものなので、 サーバー上で開発環境実行をするのには向かないかと思います。 ですが、別サーバー上で自動ビルドさせ、公開サーバーに移すというのはありだと思いますので、 今回調査した内容などは生かせる機会があると思いますよー
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問