そこで、WindowsマシンにApacheWebサーバー/ MySQL/myPhpAdminをインストールしました。それは私のデスクトップにあります。 http:// localhost 、localhost/phpinfo.php、localhost/phpmyadmin.index.phpにアクセスすると、すべてが私のマシンに表示されます。
今、私は他のユーザーが私のウェブサイトにアクセスできるようにしたいです http://localhost/page1.php 私はすでにサーバーがホストされているマシンでポート転送を行い、ルーターがあるので、ローカルマシンのIPアドレス。
しかし、他の場所から、または私のホームネットワーク内の他のコンピューターからでもこのWebサイトにアクセスすることはできません。 godaddyやgoogleなどのサイトから実際にドメインを取得する必要がありますか?または、ローカルマシン(Apache Webサーバーがある)に接続して、自分のWebサイトをホストすることもできます。
Webサーバーをインストールし、Apacheルートディレクトリにページを作成した後、実際にどのように進めるかについて、私は本当に混乱しています。私はこの分野で実際の経験がないので、誰かがこれを設定する方法を教えてもらえますか?.
ありがとう!
Apachehttpdの設定ファイルのListen
ディレクティブを確認してください。
また、サーバーがリッスンしているアドレスを確認します。 netstat -na
はそのために役立ちます。 0.0.0.0
(または*
)またはマシンのアドレスをリッスンする必要があります。 127.0.0.1
ではありません。
したがって、発生する可能性のある問題は、「localhost」が常にローカルマシンである必要があるということです。 (そうでない場合は問題があります)。だからあなたのマシンでは、それはあなたのマシンです。私のマシンでは、それは私のマシンです。
ポート転送が正しく設定されていて、ISPがポート80へのトラフィックルーティングを許可しているとすると、他の人がポート80でルーターのパブリックIPアドレスにアクセスできる(そしてサーバーのポート80にアクセスできる)はずです。
また、Apacheの設定を確認することもできます。名前付き仮想ホスティングが設定されている場合、 http:// localhost / を介してローカルでサーバーにアクセスすると、ホストされているコンテンツのセットが1つ表示されますが、他の誰かが-を介してサーバーにアクセスすると、 http:// the-ip-address / 他のホストされたコンテンツを取得する可能性があります。
同じネットワーク内の他のマシンがサーバーを認識できない理由を理解することから始める必要があります。彼らが試みるとどうなりますか?リモートマシンのブラウザでマシン名とIPアドレスの両方を使用してみましたか?それらは同じ結果をもたらしますか?
私の場合、ファイアウォールでhttpポートとhttpsポートを許可する必要がありました。 Ubuntuではファイアウォールはufw
と呼ばれ、CentOS/RedHatではfirewall-cmd
。変更を有効にするには、ファイアウォール構成を再ロードする必要もあります。