httpdサーバーをコンパイルしてインストールし、最適化、システムサービスの追加、apacheの概要

1つは、HTTPサービスをコンパイルしてインストールすることです。

サーバーの簡単な起動が完了しました。https://blog.csdn.net/wulimingde/article/details/107794363を参照できます。

1.コンパイルに必要なソフトウェアパッケージをダウンロードします

httpdソースパッケージのダウンロードアドレス http://httpd.apache.org/download.cgi#apache24apr
ソースパッケージのダウンロードアドレス http://apr.apache.org/
ダウンロードしたソースパッケージは、Apacheのクロスプラットフォーム操作の依存関係に使用されます。パッケージ
apr-1.6.2.tar.gzapr
-util-1.6.0.tar.gz
httpd-2.4.29.tar.bz2

必要に応じて、対応するソースコードパッケージをダウンロードします。
注(キー):httpdサービスのコンパイルとインストールを防ぐため、rpmまたはyumによってインストールされたhttpdサービスと競合します。コンパイルしてインストールする前に、以前にインストールしたhttpdをアンインストールすることをお勧めします。

2.ダウンロードしたソースコードパッケージをサーバーにアップロードして解凍します

xmanageソフトウェアを使用して、ソースコードパッケージをoptディレクトリにアップロードし、
ここに写真の説明を挿入
解凍します。

[root@localhost opt]# tar zxvf apr-1.6.2.tar.gz      //解压
[root@localhost opt]# tar zxvf apr-util-1.6.0.tar.gz    //解压
[root@localhost opt]# yum -y install bzip2    //如果有些系统没有安装解压.bz2后缀的工具,使用yum安装
[root@localhost opt]#  tar jxvf httpd-2.4.29.tar.bz2  //解压
[root@localhost opt]# mv apr-1.6.2 httpd-2.4.29/srclib/apr  //移动
[root@localhost opt]# mv apr-util-1.6.0 httpd-2.4.29/srclib/apr-util  //移动

3.yumを使用して依存環境パッケージをインストールします

apacheがインストールする必要のある依存環境パッケージをコンパイルしてインストールします

[root@localhost opt]# yum -y install gcc      
[root@localhost opt]# yum -y install gcc-c++ 
[root@localhost opt]# yum -y install make 
[root@localhost opt]# yum -y install pcre-devel 
[root@localhost opt]# yum -y install expat-devel 
[root@localhost opt]# yum -y install perl

4.インストールパスと開く必要のあるモジュールを定義します

サーバーの実際のアプリケーションのニーズに応じて、さまざまなカスタマイズオプションを柔軟に設定できます。

--prefix:指定将 httpd 服务程序安装到哪个目录下,如/usr/local/httpd
--enable-so:启用动态加载模块支持,使 httpd 具备进一步扩展功能的能力。
--enable-rewrite:启用网页地址重写功能,用于网站优化及目录迁移维护。
--enable-charset-lite:启动字符集支持,以便支持使用各种字符集编码的网
--enable-cgi:启用 CGI 脚本程序支持,便于扩展网站的应用访问能力。

インストールする場所とモジュールを構成します

[root@localhost opt]# cd /opt/httpd-2.4.29/
[root@wode httpd-2.4.29]#  ./configure --prefix=/usr/local/httpd --enable-so \
--enable-rewrite \
--enable-charset-lite \
--enable-cgi
\\行尾的反斜杠表示换行输入

5.コンパイルしてインストールします

構成が完了したら、「make」コマンドを実行してソースコードをコンパイルし、実行可能なプログラムに変換します。次に、「make install」コマンドを実行して最終的なインストールプロセスを完了します。コンパイルされたhttpdプログラムと関連するディレクトリおよびファイルを、目的の設定にコピーします。指定されたインストールディレクトリ(構成時に「--prefix」オプションで指定)。

[root@wode httpd-2.4.29]# make
[root@wode httpd-2.4.29]# make install

6.コンパイルとインストールの結果を表示します

指定されたインストールディレクトリは/ usr / local / httpdであるため、httpdサービスのさまざまなプログラム、モジュール、およびヘルプファイルがこのディレクトリにコピーされます。

[root@wode ~]# ls /usr/local/httpd
bin      conf    icons    logs    modules
build    error   include  man
cgi-bin  htdocs  lib      manual

インストール後、/ usr / local / httpdディレクトリには、さまざまな用途の多くのサブディレクトリがあります。

  • / usr / local / httpd / bin:メインプログラムhttpd、サービス制御ツールapachectlなどを含むhttpサービスのさまざまな実行可能プログラムファイルを保存します。
  • / usr / local / httpd / conf:メイン構成ファイルhttpd.conf、拡張構成サブディレクトリextraなど、httpdサービスのさまざまな構成ファイルを保存します。
  • / usr / local / httpd / htdocs:デフォルトのホームページファイルindex.htmlなどを含むWebページを保存します。
  • / usr / local / httpd / logs:httpdサービスのログファイルを保存します。
  • / usr / local / httpd / modules:httpdサービスのさまざまなモジュールファイルを保存します。
  • / usr / local / httpd / cgi-bin:さまざまなCGIプログラムファイルを保存します。

7.実行パスを最適化します

最適化の前にhttpd-vコマンド(プログラムバージョンの表示に使用)を実行する場合は、「/ usr / local / httpd / bin / httpd-v」コマンドを入力するのは非常に面倒です。

[root@wode ~]#  /usr/local/httpd/bin/httpd -v
Server version: Apache/2.4.29 (Unix)
Server built:   Sep  1 2020 19:08:48

最適化方法、コンパイルおよびインストールされたhttpdサービス、プログラムパスはデフォルトの検索パスにありません。現時点でサービスをより使いやすくするために、関連するプログラムのソフト接続を追加できます。

[root@wode ~]# ln -s /usr/local/httpd/bin/* /usr/local/bin/   
 //将存放http服务的各种执行程序文件的目录使用软连接到环境变量/usr/local/bin目录中
[root@wode ~]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl 
//查看软连接有没有创建成功
lrwxrwxrwx 1 root root 30 9月   1 19:16 /usr/local/bin/apachectl -> /usr/local/httpd/bin/apachectl
lrwxrwxrwx 1 root root 26 9月   1 19:16 /usr/local/bin/httpd -> /usr/local/httpd/bin/http

最適化後、httpdコマンドを直接使用してバージョン情報を表示できます

[root@wode ~]# httpd -v
Server version: Apache/2.4.29 (Unix)
Server built:   Sep  1 2020 19:08:48

8.httpdサービスをシステムサービスとして追加します

方法1、
[root@wode ~]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd   
                                       //复制apachectl文件到/etc/init.d/httpd
[root@wode ~]# vi /etc/init.d/httpd   //编辑该文件
#!/bin/sh
#
//手动添加下面两行信息
#chkconfig:35 85 21  //服务识别参数,在级别3、5中启动﹔启动和关闭的顺序分别为85、21
#description:Apache   //服务描述信息,可随便定义
//注:虽然这两行添加的信息是被#号注释的但是必须添加,
//不加的话系统将会提示服务httpd不支持chkconfig无法将服务添加到系统服务。
[root@wode ~]# chkconfig --add httpd    //添加为系统服务
[root@wode ~]# chkconfig --list httpd   //查看http服务自启状态
httpd           0:关    1:关    2:关    3:开    4:关    5:开    6:关
//添加成功
//这样就可以跟控制系统服务一样,使用systemctl start/status/restart httpd来控制apache服务了。
方法2、

/ lib / systemd / system /ディレクトリに、.serviceで終わるユニット構成ファイルを作成して、systemdによって管理または監視されるhttpdサービスを制御
し、httpd.service構成ファイル確立します(構成ファイルのパスに注意してください。ここで、構成ファイルに書き込まれるapachectlパスは、実際の状況に応じて決定する必要があります)

[root@localhost ~]# cd /lib/systemd/system/
[root@localhost system]# vim httpd.service
[Unit]
Description=The Apache HTTP Server
After=network.target
[Service]
Type=forking
PIDFile= /usr/local/httpd/logs/httpd.pid
ExecStart= /usr/local/bin/apachectl $OPTIONS
ExecrReload= /bin/kill -HUP $MAINPID
KillMode=process
Restart=on-failure
Restartsec=42s
[Install]
WantedBy=graphical.target
[root@localhost system]#  init6  //重启一下很重要

構成ファイル内の各構成アイテムの役割:

  • 説明:サービスユニットの説明文字列を設定します。

  • 変更後:サービスユニットの開始順序を設定します。たとえば、httpd、ervice unitファイルに「After = network.target」と表示されている場合は、起動時にネットワークとターゲットが最初に起動され、次にhttpdが起動されることを意味します。Afterフィールドに対応するBeforeフィールドもあります。たとえば、「Before = network、target」は、httpd。serviceunitファイルに表示されます。これは、最初にhttpd。serviceを開始し、次にnetwork。、targetを開始することを意味します。

  • タイプ:サービスプロセスの起動タイプを設定します。起動タイプが分岐している場合、systemdがサービスのメインプロセスを正確に特定できるように、PIDFile構成アイテムを同時に設定する必要があることに注意してください。

  • PIDFile:サービスのデーモンプロセスのPIDファイルを設定します。

  • ExecStart:サービスの開始時に実行されるコマンドを設定します。

  • ExecReload;サービスがリロードされたときに実行されるコマンドを設定します。

  • KillMode:ユニットが停止したときにプロセスを強制終了するメソッドを設定します。プロセスとは、メインプロセスのみを強制終了することを意味します。

  • 再起動:サービスプロセスが正常に終了したとき、異常に終了したとき、強制終了されたとき、およびタイムアウトしたときにサービスを再起動するかどうかを設定します。on-failureは、プロセスが異常終了した場合にのみ再起動することを意味します。

  • restartSec:サービスを再起動する前に一時停止する時間を設定します。デフォルト値は100ミリ秒(100ミリ秒)です。

  • WantedBy:サービスが配置されているターゲット(操作ターゲット)を設定します。WantedBy = Graphical、target(グラフィカルインターフェイスマルチユーザーシステム)は、httpdが配置されているターゲットがgraphical.targetであることを意味します。「systemctlenablehttpd.service」コマンドを実行すると、httpd.serviceのシンボリックリンクがグラフィカルなターゲットに配置され、/ etc / systemd / systemディレクトリの下にサブディレクトリが必要になるため、この設定は非常に重要です。システムがgraphical.targetに入ってターゲットを実行すると、このディレクトリ内のすべてのサービスが開始されます。Graphical.targetに加えて、この構成アイテムの一般的に使用されるTargetには、multi-user.target(非グラフィカルインターフェイスマルチユーザーシステム)もあります。

2つの方法の比較

方法1は比較的簡単で便利です

方法2では、サービスの詳細な制御定義を実行できます。また、systemctl enable httpd.serviceを使用して、電源がオンになったときにhttpdサービスが自動的に開始するように設定できます。これは方法1では実現できません。

どちらの方法にも独自の利点があります。特別な要件がない場合は、方法1を使用してください。

2.Apacheの概要

「ApacheHTTPServer」は、オープンソースソフトウェアプロジェクトの優れた代表であり、標準のHTTPネットワークプロトコルに基づいたWebブラウジングサービスを提供し、Webサーバーの分野でシェアの半分以上を長い間維持してきました。Apacheサーバーは、Linux、UNIX、Windowsなどの複数のオペレーティングシステムプラットフォームで実行できます。

1.アパッチの起源

Apacheサーバーは、以前に登場したいくつかのWebサーバープログラムの統合と改善の後に形成されたソフトウェアです。その名前は「APatchy Server」に由来します。これは、「元のWebサービスプログラムのコードに基づいて変更(パッチ)後に形成された」という意味です。サーバープログラム」。

1995年にApacheサービスプログラムがバージョン1.0をリリースしました。それ以来、「Apache Group」がプロジェクトの管理と保守を担当し、1999年まで「ApacheGroup」に基づいてApache Software Foundation(ASF)が設立されました。 )。現在、ApacheプロジェクトはASFによって管理および保守されています。

ASFは非営利団体であり、当初は「Apache Web」サーバープロジェクトの管理のみを担当しています。Webアプリケーションの需要が拡大し続けるにつれて、ASFはWebテクノロジーに関連する多くのオープンソースソフトウェアプロジェクトを徐々に追加してきました。そのため、Apacheは現在Webだけではありません。サーバーは、ASFによって管理される多くのオープンソースソフトウェアプロジェクトをより広く表します。ASF財団の公式ウェブサイトはhttp://www.apache.org/です。

「ApacheHTTPServer」は、ASFで有名なソフトウェアプロジェクトの1つであり、正式名称は「httpd」で、これは歴史的なApacheWebサーバーです。フォローアップコンテンツでは、特に明記されていない限り、「Apache」または「httpd」の使用は「ApacheHTTPServer」を指します。

2.Apacheの機能

apacheサーバーは、機能、パフォーマンス、セキュリティの面で卓越したパフォーマンスを備えており、サーバーユーザーのアプリケーションニーズをより適切に満たすことができます。6つの主な特徴があります。

1.オープンソース

これはApacheサーバーの重要な機能の1つであり、他の機能の基本的なApacheサービスプログラムは世界中の多くの開発者によって共同で維持されており、オープンソースソフトウェアの精神を完全に反映して誰でも自由に使用できます。

2.クロスプラットフォームアプリケーション

この機能は、Apacheのオープンソースコードの恩恵を受けています。Apacheサーバーはほとんどのソフトウェアおよびハードウェアプラットフォームで実行でき、すべてのUNIXオペレーティングシステムはApacheサーバーを実行でき、ApacheサーバーでさえほとんどのWindowsシステムプラットフォームで正常に実行できます。Apacheサーバーはクロスプラットフォームであるため、広範囲に使用できます。

3.さまざまなWebプログラミング言語をサポートします

ApacheサーバーでサポートされているWebプログラミング言語には、Perl、PHP、Python、Javaなどがあり、MicrosoftのASPテクノロジーもApacheサーバーで使用できます。一般的に使用されるさまざまなWebプログラミング言語をサポートすることで、Apacheはより幅広いアプリケーションを使用できるようになります。

4.モジュラーデザイン

Apacheは、すべての機能を単一のサービスプログラムに集中させるわけではありませんが、標準モジュールを介して可能な限り独自の機能を実装し、Apacheサーバーに優れたスケーラビリティをもたらします。他のソフトウェア開発者は、Apacheにない他の機能を追加するための標準モジュールプログラムを作成できます。

5.非常に安定した動作

Apacheサーバーは、トラフィックの多いWebサイトを構築するために使用できます。多くの有名な企業Webサイトは、WebサービスソフトウェアとしてApacheを使用しています。

6.優れたセキュリティ

Apacheサーバーは、オープンソースソフトウェアの一般的な機能である比較的優れたセキュリティを備えています。さらに、Apacheメンテナンスチームは、発見された脆弱性に対するパッチをタイムリーに提供し、Apacheのすべてのユーザーに最も安全なサーバープログラムを提供します。

おすすめ

転載: blog.csdn.net/wulimingde/article/details/108322715