独自のWebサーバーを作成し、LinuxボックスからWebサイトをホストする


あなたの多くはウェブプログラマーでしょう。あなた方の何人かはウェブサイトのせいであるかもしれません、そして確かにそれを頻繁に編集して更新するでしょう。ウェブ技術について十分な知識を持っていない少数の人々は、まだそれを持っていることを計画しているでしょう。

この記事を通して、私はあなたがほとんど知識なしで実用的なウェブサイトを開発することができて、あなたのLinuxボックスを使ってそれをホストすることができる方法を知るでしょう。物事はそれと同じくらい簡単かもしれません。

要件:

Linux Box(ただし、Windowsを使用することはできますが、Linux Machineの場合ほど単純で完璧ではないことは確かです。たとえば、ここではDebianが使用されています)。オペレーティングシステムがインストールされていない場合、またはLinuxオペレーティングシステムのインストール方法がわからない場合は、Linuxオペレーティングシステムのインストール方法を示すガイドをいくつか紹介します。

Apache、PHP、およびMySQL(他のSQLについての迅速な知識があれば、それを使用できますが、記事の例ではMySQLを使用します。

コンテンツ管理フレームワーク– KompoZerを使用したDrupal、またはWordPressまたはJoomlaを使用できます(ただし、ここでは、コンテンツ管理システム(CMS)としてDrupalを使用しました)。

Linuxで独自のWebサーバーをセットアップしてWebサイトをホストする

仮想ホスティング機能を備えたモデムを介して接続された静的IP(推奨)を使用したインターネット接続(実際には、ここで説明するほど複雑ではありません)。

ApacheはWebサーバープログラムです。ほとんどのシステムにインストールおよび構成されています。システムにインストールされているかどうかを確認してください。

# apt-cache policy apache2 (On Debian based OS)
apache2:
  Installed: (none)
  Candidate: 2.4.38-3+deb10u3
  Version table:
     2.4.38-3+deb10u3 500
        500 http://httpredir.debian.org/debian buster/main amd64 Packages
     2.4.38-3 -1
        100 /var/lib/dpkg/status
     2.4.25-3+deb9u9 500
        500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
# yum search httpd (On Red Hat based OS)
Loaded plugins: fastestmirror, security
Loading mirror speeds from cached hostfile
 * base: ftp.iitm.ac.in
 * epel: mirror.smartmedia.net.id
 * extras: ftp.iitm.ac.in
 * updates: ftp.iitm.ac.in
Installed Packages
httpd.i686	2.2.15-28.el6.centos	@updates

上記の出力から、Apacheがボックスにインストールされていることは明らかです。そうでない場合は、必要なパッケージを「apt」または「yum」できます。 Apacheがインストールされたら、として起動します。

# apt-get install apache2 (On Debian based OS)
# service apache2 start
# yum install httpd (On Red Hat based OS)
# service httpd start

注:一部のサーバーViz。、RHELでは、「apache」ではなく「httpd」と入力する必要がある場合があります。 「apache2」または「http」、別名「httpd」サーバーが起動したら、次のリンクのいずれかにアクセスして、ブラウザで確認できます。

http://127.0.0.1
http://localhost
http://your-ip-address

このリンクはホストされたページに開きます。これは、Apacheが正常にインストールされて開始されたことを意味します。

MySQLはデータベースサーバープログラムです。多数のディストリビューションが満載です。システムにインストールされているかどうか、およびインストールされている場所を確認してください。

# whereis mysql
mysql: /usr/bin/mysql /etc/mysql /usr/lib/mysql /usr/bin/X11/mysql /usr/share/mysql 
/usr/share/man/man1/mysql.1.gz

上記の出力から、MySQLがバイナリファイルの場所とともにインストールされていることが明らかです。インストールされていない場合は、「apt」または「yum」を実行してインストールし、起動します。

# apt-get install mariadb-server mariadb-client (On Debian based OS)
# service mysql start
# yum install mariadb-server mariadb-client (On Red Hat based OS)
# service mariadb start

注:一部のディストリビューション、つまりRHELでは、明らかに引用符なしでmysqlの代わりに「mysqld」と入力する必要がある場合があります。 MySQLのステータスを確認し、実行します。

# service mysql status (On Debian based OS)
● mariadb.service - MariaDB 10.3.23 database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Wed 2020-01-08 01:05:32 EST; 1min 42s ago
     Docs: man:mysqld(8)
           https://mariadb.com/kb/en/library/systemd/
  Process: 2540 ExecStartPost=/etc/mysql/debian-start (code=exited, status=0/SUCCESS)
  Process: 2537 ExecStartPost=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 2457 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= ||   VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ]   && systemctl set-environment _WSREP_STAR
  Process: 2452 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0/SUCCESS)
  Process: 2450 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (code=exited, status=0/SUCCESS)
 Main PID: 2506 (mysqld)
   Status: "Taking your SQL requests now..."
    Tasks: 30 (limit: 4915)
   CGroup: /system.slice/mariadb.service
           └─2506 /usr/sbin/mysqld

上記の出力は、MySQLが11分58秒間実行されていることを示しています。

PHPは、Web開発用に設計されたサーバー側スクリプト言語であり、汎用プログラミング言語として一般的に使用されています。 phpをインストールした後、phpスクリプトをデプロイする必要があります。上で述べたように、「apt」または「yum」を使用して、ボックスに必要なパッケージをインストールします。

# apt-get install php php-mysql (On Debian based OS)
# yum install php php-mysqlnd (On Red Hat based OS)

システムにphpが正常にインストールされた場合は、「/ var/www/html」または「/ var/www」ディレクトリにファイル「info.php」を作成することで、正しく機能しているかどうかを確認できます。以下に示す内容のApacheディレクトリ)。

<?php

     phpinfo ();
?>

次に、ブラウザに移動して、次のリンクのいずれかを入力します。

http://127.0.0.1/info.php
http://localhost/info.php
http://your-ip-address/info.php

これは、phpがインストールされ、正しく機能していることを意味します。これで、ApacheディレクトリにWebサイトを構築できますが、車輪の再発明を何度も繰り返すことは必ずしも良い考えではありません。

このために、コンテンツ管理フレームワーク(CMF)、つまりDrupal、Joomla、WordPressが存在します。以下のリンクから最新のフレームワークをダウンロードして、これらのフレームワークのいずれかを使用できますが、例ではDrupalを使用します。

  • Drupal: https://drupal.org/project/drupal
  • Joomla: http://www.joomla.org/download.html
  • WordPress: http://wordpress.org/download/

tarアーカイブとなる上記のリンクからDrupalをダウンロードします。 tarアーカイブをApacheディレクトリ「/ var/www/html」または「/ var/www」に移動します。それをapacheディレクトリのルートに抽出します。ここで、「x.xx」はバージョン番号です。

# mv drupal-x.xx.tar.gz /var/www/ (mv to Apache root directory)
# cd /var/www/ (change working directory)
# tar -zxvf drupal-7.22.tar.gz (extract the archieve)
# cd drupal-7.22 (Move to the extracted folder)
# cp * -R /var/www/ (Copy the extracted archieve to apache directory)

すべて問題がなければ、もう一度ブラウザを開いて以下のリンクに移動すると、が表示されます。

http://127.0.0.1
http://localhost
http://your-ip-address

言語設定を選択します。

要件とファイルのアクセス許可を確認しています。必要なファイルとフォルダーに適切なアクセス許可を与えます。特定のファイルを手動で作成する必要がある場合がありますが、これは大したことではありません。

データベースのセットアップ、バックエンドプロセス。

データベース設定が完全になると、プロファイルが自動的にインストールされます。

構成とは、「サイト名」、「メール」、「ユーザー名」、「パスワード」、「タイムゾーン」などを設定することを意味します。

そして、すべてがスムーズに進むと、次のような画面が表示されます。

アドレスhttp://127.0.0.1を参照してページを開きます。

万歳!!!

Kompozerは、GUIで作業してhtmlでWebサイトを設計できるツールであり、phpスクリプトを好きな場所に挿入できます。 Kompozerを使用すると、Webページを簡単に作成できなくなりました。

  1. Kompozer: http://www.kompozer.net/download.php

ほとんどのLinuxシステムにインストールする必要はありません。 Kompozerをダウンロード、抽出、実行するだけです。

クリエイティブなら、kompozerがぴったりです。

インターネットプロトコル(IP)アドレスに関するいくつかの言葉。

http://127.0.0.1

これは一般にループバックIPアドレスまたはローカルホストと呼ばれ、常に参照先のマシンを指します。上記のアドレスを参照しているネットワーク上のすべてのマシンは、自身のマシンにループバックします。

Ipconfig/ifconfig:ターミナルでこれを実行して、マシンのローカルアドレスを確認します。

# ifconfig
eth0      Link encap:Ethernet  HWaddr **:**:**:**:**:**  
          inet addr:192.168.1.2  Bcast:192.168.1.255  Mask:255.255.255.0 
          inet6 addr: ****::****:****:****:****/** Scope:Link 
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1 
          RX packets:107991 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:95076 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:76328395 (72.7 MiB)  TX bytes:20797849 (19.8 MiB) 
          Interrupt:20 Memory:f7100000-f7120000

inet addr:192.168.1.2を検索します。ここで192.168.1.2は私のローカルIPです。あなたを含むあなたのLAN上のどんなコンピュータもこのアドレスを使ってあなたのホストされたウェブページを参照することができました。

ただし、LANの外部にあるコンピューターは、このIPアドレスを使用してWebページにアクセスすることはできません。インターネットサービスプロバイダーに静的IPを提供するように依頼する必要があります(これは時間とともに変化しません)。静的IPアドレスを取得したら、IPを見つける最も簡単な方法は、Googleで「MyIP is」と入力し、結果を書き留めることです。

自分のマシンやLAN上の他のマシンからこのIPにアクセスすることはできません。ただし、プロキシサーバー(www.kproxy.com)を使用して、静的IPを使用してホストされているページにアクセスできます。ただし、その前に、仮想サーバーをセットアップする必要があります。サービスプロバイダーはこの点で確実に役立ちます。

うーん!それはまったく難しいことではありません。まず、Apacheが使用しているポートを知る必要があります。ほとんどの場合80です。

# netstat -tulpn

出力は次のようになります。

tcp6       0      0 :::80                   :::*                    LISTEN      6169/apache2

次に、ルーター(通常はhttp://192.168.1.1)に移動し、ユーザー名/パスワードはadmin-adminになりますが、サービスプロバイダーと地域によって異なる場合があります。

次に、[仮想サーバー]タブに移動します。ポート番号、サービス名、ローカルIPアドレスを入力し、通知して保存します。 ISPに支援を求めてください。

このWebサーバーにアクセスできるのは、マシンが稼働していてMySQLとApacheを同時に実行している場合にのみ、マシン、LAN上の他のマシン、またはインターネット上のコンピューターからのみアクセスできることを忘れないでください。

大きな力には大きな責任が伴います。そして今、あなたのマシンを保護するのはあなたの責任です。出入りの方法がわかるまで、知らない人にIPアドレスを教えないでください。

私たちは、セキュリティに関連する問題とそれを保護する方法を確実にカバーしようとします。あなたの貴重なコメントを自由に与えて、あなたの友人とそれらを共有してください。あなたは「共有は思いやり」を知っています。あなたの前向きなコメントは私たちを励まし、やる気にさせます。