jxyblog

jxyblog

email

openwrtルーターでlighttpd+sqlite+phpウェブサーバーを構築する

まず、サーバーを構築するには、他の人が直接あなたのアドレスにアクセスできるパブリック IP が必要です。以前は IPv4 アドレスを使用していましたが、全世界で合計 42 億のアドレスしかなく、全く足りません。そのため、多くの人が 1 つの IP を共有しています。

簡単に言うと、あなたは 1 つの IP を取得し、ルーターを使って他の人がインターネットに接続できる無数の IP を分配します。その原理はこうです。多くの人が共有しているため、サーバーを構築することができません。

そこで IPv6 が登場しました。地球上のすべての砂粒にアドレスを割り当てることができると言われています。このようなアドレスの数は、私たちが星間時代に入らない限り、使い果たすことは不可能です。

現在、IPv6 はほぼ全面的に普及していますが、国内のネットワーク環境は本当に複雑です。多くの人が古いルーターを使用していたり、ルーターの設定ができなかったりするため、多くの人が正常に IPv6 のウェブサイトにアクセスできません。

現在、すべての通信事業者のブロードバンドはほぼ IPv6 をサポートしています。あなたがアクセスできない理由は、ルーターが古すぎるか、IPv6 が設定されていないからですが、あなたはコンピューターを光モデムに直接接続してみることができます。スマートフォンの場合は Wi-Fi をオフにして、モバイルデータを使用すれば IPv6 のウェブサイトにアクセスできます。

もちろん、悪いニュースもあります。一部の地域では、通信事業者がポート 80 と 443 を封鎖しています。この 2 つのポートはウェブサイト専用のポートで、封鎖されると非常に厄介です。例えば、私のブログにアクセスする場合、通常はhttp://jxyblog.top です。

もしポートが封鎖されている場合、ポートを変更する必要があります。http://jxyblog.top:89
ブラウザでアクセスする際は、後ろのポート番号を付けなければならず、非常に面倒です。

また、光モデム内部にファイアウォールが設定されている場合、外部からあなたのウェブサイトにアクセスすることはできません。光モデムのスーパーパスワードを取得してファイアウォールをオフにするか、ブリッジモードに変更してルーターでダイヤルアップする必要があります。この 2 つの状況では、光モデムのスーパーパスワードが必要です。

ですので、あなたの光モデムの内部ファイアウォールがデフォルトでオフになっていることを祈ってください。そうすれば、面倒なことはなく、接続するだけで直接使用できます。

OpenWRT ルーターを手に入れた後のいくつかの必須準備作業#

まず、IPv6 アドレスを取得できる必要があります。私のネットワークは光モデムでダイヤルアップしており、ルーターではなく、私のコンピューターは光モデムの 1 つのポートに直接接続され、ルーターは別のポートに接続されています。私のコンピューターとルーターは両方とも IPv6 アドレスを取得できます。

ルーターが正常にインターネットに接続できることを確認し、まずコンピューターをルーターの LAN ポートに接続し、次に 192.168.1.1 のルーター管理画面にログインします。最初に中国語サポートとシステムタイムゾーンをインストールします。

初回ログイン時にデフォルトのパスワードを変更するよう求められますので、そのまま変更してください。ユーザー名は変更せず、デフォルトの root のままで大丈夫です。

111

次に、上部の 2 番目の system タブをクリックし、software オプションを選択し、最後に update opkg ボタンをクリックします。このステップでは正常にネットワークに接続されている必要があります。

しばらく待つと更新が完了し、すべてのインストール可能なソフトウェアパッケージが表示されます。最初のボックスに luci-i18n-base-zh-cn と入力すると、OpenWRT の中国語パッケージをインストールできます。これでリフレッシュすると、直接中国語のインターフェースに変わります。

次に、zoneinfo-asia を入力してシステムタイムゾーンサポートパッケージをインストールします。インストールが完了したら、上部のシステム - システムをクリックし、タイムゾーンを設定します。Asia/Shanghai に設定すれば大丈夫です。

222222222

セカンダリールーターとして、ルーターの LAN ポートアドレスを変更することをお勧めします。上部のネットワーク - インターフェースをクリックし、緑色の LAN ポートが表示されます。右側の編集をクリックし、IPv4 の 192.168.1.1 を 192.168.2.1 に変更します。

その後、右下の保存して適用をクリックすると、ルーターが再起動します。以後は 192.168.2.1 でルーターの管理にログインします。

ルーターの準備ができたら、まず lighttpd サーバーをインストールします#

すべてを始める前に、WinSCP というツールが必要です。もちろん、公式サイトからダウンロードできますが、公式のものは英語版のようです。ここでは中国語版を提供します。
WinSCP 中文版.rar,提取码: 9tsm,大小:6.18Mb

私たちは始終このツールだけを使用します。ルーターにファイルをコピーしたり、コマンドラインを打たずに設定ファイルを直接修正したりできますので、事前にダウンロードしておいてください。

ウェブサイトがポート 80 でアクセスできるようにするために、ルーターのポートを変更する必要があります。そうしないと、ポートの競合が発生し、lighttpd を起動できません。
/etc/config/ を開くと、uhttpd というファイルがあります。右クリックして編集し、以下の 4 つの項目を次のように変更します。

list listen_http '0.0.0.0:8080'
list listen_http '[::]:8080'
list listen_https '0.0.0.0:444'
list listen_https '[::]:444'

ここでは、ルーターの管理画面のポートを 8080 に変更しています。これからルーターを管理する際は、192.168.2.1:8080 というアドレスでログインします。

ここで uhttpd について説明します。これは lighttpd と同様のウェブサーバーで、私たちがウェブページでルーターの管理画面にログインするのはこれによって実現されています。2 つのサーバーが競合しないようにするために、ポートを変更する必要があります。
もちろん、上級者は lighttpd をインストールせずに、uhttpd+php を直接使用してデプロイすることもできます。

次に、ルーターのシステム - 再起動をクリックします。ルーターが再起動したら、ブラウザのアドレスにhttp://192.168.2.1:8080 と入力してルーターにログインします。

ルーターにログインしたら、システム - ソフトウェアパッケージをクリックし、まずソフトウェアパッケージを更新します。
更新が完了したら、フィルターに lighttpd と入力してインストールをクリックします。自動的に他の依存パッケージもインストールされます。

インストールが完了したら、lighttpd-mod-fastcgi と lighttpd-mod-rewrite をインストールします。fastcgi は PHP と接続するインターフェースで、必ずインストールする必要があります。

rewrite はリライトコンポーネントで、ウェブサイトに擬似静的を作成するために使用されます。インストールしてもしなくても構いませんが、実際にはこのコンポーネントには 1 つの設定ファイルしかなく、サイズは 1Kb 未満です。予備としてインストールしておくことができます。

次に、上記で述べた WinSCP を使用する必要があります。ソフトウェアを開くと、新しいサイトを作成するためのウィンドウがポップアップします。

ファイルプロトコル:scp
ホスト名:192.168.2.1 ポート番号:22 #ルーター管理アドレス
ユーザー名:root パスワード:123456 #あなたのルーターのアカウントとパスワード
その後、保存をクリックし、パスワードを保存するオプションを選択します。
次にログインをクリックすれば、ルーター内のすべてのファイルが表示されます。

次に、設定ファイルを修正します。/etc/lighttpd/lighttpd.conf を開き、lighttpd.conf を右クリックして編集します。

以下の項目を修正します。後ろはあなたのウェブサイトファイルの保存ディレクトリで、自由に変更できます。
注意:ルーターのスペースが十分でない限り、RAM に置く方が良いです。ROM のスペースが十分であるか、外付け USB メモリがある場合は無視してください。
tmp ディレクトリは RAM 内にあり、一度電源が切れると、内部のデータはすべて失われます。私はウェブサイトファイルを保存するために www ディレクトリを作成しました。
var.server_root = "/tmp/www/"

修正が完了したら、他の場所は変更せず、以下の項目を追加します。

server.use-ipv6 = "enable"
server.port = 80
$SERVER["socket"] == "0.0.0.0:80"

この 3 行の意味は、IPv6 を有効にし、ポート 80 をリッスンし、IPv6 と IPv4 の両方を同時にリッスンできるようにすることです。
修正が完了したら、左上の保存をクリックします。

修正後は lighttpd を再起動する必要があります。ルーター - システム - 起動項目の中で lighttpd を見つけてクリックし、再起動します。

次に、ルーター - 状態 - システムプロセスをクリックして、以下のタスクが実行されているか確認します。
2954 http /usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf

もしあれば、ウェブサーバーが正常に起動したことを示しています。/tmp/www/ に index.html ファイルをコピーし、ブラウザでhttp://192.168.2.1 にアクセスします。

ウェブページが正常に表示されれば、ウェブサーバーの構築が成功したことになります。この時点では静的ファイルしか置けず、PHP は実行できませんが、これらは後で徐々に書いていきます。

lighttpd がインストールされたので、次に PHP と sqlite、ウェブサイトのアップロードをインストールします#

引き続き、ルーターのシステム - ソフトウェアパッケージをクリックし、テキストボックスに php と入力します。
インストールする主要なものは php8 と php8-cgi の 2 つです。この 2 つをインストールした後、以下の一連のサポートパッケージもインストールします。
php8-mod-bcmath
php8-mod-calendar
php8-mod-ctype
php8-mod-dom
php8-mod-filter
php8-mod-iconv
php8-mod-mbstring
php8-mod-session
php8-mod-sockets
php8-mod-sqlite3
php8-mod-tokenizer
php8-mod-xml

これらすべてをインストールした後、最後にデータベース libsqlite3-0 をインストールします。
すべてのインストールが完了し、すべての準備が整いました。次は設定ファイルを修正するだけです。

PHP 設定ファイルの修正
以前に使用した WinSCP を使用して /etc ディレクトリを開き、php.ini を見つけて右クリックして編集します。
私たちは 2 つの場所だけを修正します。

cgi.fix_pathinfo = 1
doc_root = "/tmp/www"

上記の 2 つの項目を修正するだけで、他は変更しません。
その後、末尾に以下のタイムゾーン設定を追加して保存し、閉じます。
date.timezone = Asia/Shanghai
PHP の設定が完了しました。

次は lighttpd の fastcgi 設定です。
WinSCP を使用して /etc/lighttpd/conf.d/30-fastcgi.conf ファイルを右クリックして編集します。
下部に以下のコードを追加します。

fastcgi.server = ( ".php" =>
                     ((
                       "socket" => "/tmp/php-fastcgi.socket",
                       "bin-path" => "/usr/bin/php8-cgi",
                       "bin-environment" => (
                         "PHP_FCGI_CHILDREN" => "2",
                         "PHP_FCGI_MAX_REQUESTS" => "100",
                       ),
                       "max-procs" => 1,
                       "broken-scriptfilename" => "enable",
                     )
               )
        )

その後、保存して閉じます。
次に、ルーターのシステム - 起動項目をクリックし、lighttpd を再起動します。

次に、ルーターの状態 - システムプロセスをクリックして、以下のプログラムが実行されているか確認します。
/usr/sbin/lighttpd -D -f /etc/lighttpd/lighttpd.conf
/usr/bin/php8-cgi
php8-cgi のプロセスは 3 つあるはずです。ルーターの設定が低いため、私は 3 つのプロセスに設定しました。
これで大功告成です。

サーバーの構築が完了しました。最新の Typecho ファイルをダウンロードし、WinSCP を使用して /tmp/www/ にコピーします。index.php が www ディレクトリにあることを確認してください。

次に、www フォルダを右クリックし、プロパティをクリックしてファイル権限を変更します。以下のチェックを入れます。
√R √W √X
√R √W √X
√R √W √X
八進法表 0777
√ グループ、所有者、権限を循環設定

完了したら、ブラウザを開いてhttp://192.168.2.1 と入力します。
この時点で Typecho のインストール画面が表示されるはずです。指示に従ってインストールしてください。
これでウェブサイトの構築が完全に完了しました。

次に、ルーターに IPv6 アドレスがあり、ドメイン名がバインドされている場合は、ルーターのファイアウォールで WAN ポートの受信データを設定します。
ルーターのネットワーク - ファイアウォールをクリックし、WAN ポートを開放します。

3333333

その後、保存して適用をクリックします。この時点でスマートフォンからアクセスできるようになるはずです。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。