Apacheサーバーを設定しました。PHP/ MySQLは問題なく動作します。
しかし問題は、それが開発専用サーバーであるため、どのように私はこれをプライベートに保つのですか?コンテンツを非公開にする唯一の理由は、スクリプトが失敗した場合、それが公開サイトになったときにApacheエラーが表示されないようにしたい(そして他の人も同じネットワークを共有しているという事実!) PCをウェブホストとして使用する可能性が高い-実際のライブサイトのウェブホスティングプロバイダールートを使用する可能性が高くなります。
現在、3つの方法でアクセスできます。
http:// localhost (または http://127.0.0.1 、別の方法とlocalhostのIPですが、どちらの方法も受け入れられます!)
http 192.168.0.1(私のルーターのIP)
http pc-name-here(私のPCの名前、明らかにこれはWindows PCによって異なります!)
[注、リンクを投稿することはできないため、他の2つについては、最初のスラッシュと同様にコロン/スラッシュを挿入する必要があります]。
しかし、私は最初のものを介してそれにアクセスしたいだけです。それはポート80でリッスンしています(そして私はそれを変更したくありません)。これは不可能ですか、それとも私は間違っていますか? PHP /ウェブデザインについては、ネットワークの側面よりも少し知っているので、これが初めてです!
基本的に、そのマシンのlocalhostを介してのみアクセスでき、外部IPアドレスや192.168.0.1ではアクセスできないようにします。
すべてのテストベッドサイトでhttpd.confを編集して拒否を使用する必要がありますか、それとも他の解決策はありますか?
例:
<Directory /www/vhosts/localhost/>
Options All
AllowOverride All
order allow,deny
allow from 127.0.0.1
deny from 192.168.0.1
deny from my-pc-name
</Directory>
私のオペレーティングシステムはWindows 7 Ultimateです。
私はネットの周りを見ましたが、それのいくつかは私にとっては少し技術的に思えました。
あなたは何をお勧めします?
これを行う最も簡単な方法は、Listen
ディレクティブを使用することです。デフォルトでは、httpd.confに次の行があります。
Listen *:80
つまり、コンピュータのすべてのネットワークアドレスのポート80でro要求に応答します。それを次のように変更します。
Listen 127.0.0.1:80
ローカルアダプターの要求にのみ応答するようにApacheのみに指示し、それ以外は無視します。
リッスンオプションはおそらく最良ですが、参考までに、このように許可/拒否を使用してそれを行うことができます
<Directory /www/vhosts/localhost/>
Options All
AllowOverride All
Order deny,allow
Deny from all
Allow from 127.0.0.1
</Directory>
Order deny,allow
は、Apacheに「特別に許可されていない限り、すべてのリクエストを拒否する」ように指示します(Order allow,deny
はその逆です。つまり、特別にブロックされていない限り、すべてのリクエストを許可します)Deny from all
は、特に開かない限り、すべてのIPからのすべてのリクエストをブロックするという点でOrder deny,allow
と同様の機能を果たします。 Order deny,allow
とDeny from all
の両方を使用することは一般的な慣習のようですが、両方が同じことをする理由が100%わかりませんAllow from 127.0.0.1
は、「127.0.0.1からのすべてのリクエストを許可する」と言います。 127.0.0.1はlocalhostにマップされるため、 http://127.0.0.1/ または http:// localhost / を使用でき、許可されます
これは、localhostでサイトにnoを要求するすべてのユーザーに403(禁止)エラーを提供します
他のいくつかの便利なもの;Allow from 192.168.0.
は、ネットワーク上のすべてのユーザーからのリクエストを許可します(ネットワークが192.168.0.0-192.168.0.255の場合)
許可/拒否ルールは順番に処理されるため、
Deny from 192.168.0.2
Allow from 192.168.0.2
リクエストを許可し、
Allow from 192.168.0.2
Deny from 192.168.0.2
192.168.0.2からの要求を拒否します
そう
Deny from 192.168.0.2
Allow from all
特に拒否されていたとしても、192.168.0.2からのリクエストを許可します。
.htaccessファイルまたはディレクトリごとに許可/拒否ルールを使用することもできます
/ etc/Apache2のports.confに変更を加えて、Listen to a portの各参照がlocalhostのみをリッスンするようにしました。他のファイルにはlistenコマンドが含まれていないようです。Apacheを再起動した後、これらの変更は望ましい効果をもたらしたようです。
/etc/Apache2/ports.conf
NameVirtualHost *:80
########################## Listen 80
Listen 127.0.0.1:80
<IfModule mod_ssl.c>
# If you add NameVirtualHost *:443 here, you will also have to change
# the VirtualHost statement in /etc/Apache2/sites-available/default-ssl
# to <VirtualHost *:443>
# Server Name Indication for SSL named virtual hosts is currently not
# supported by MSIE on Windows XP.
###############################Listen 443
Listen 127.0.0.1:443
</IfModule>
<IfModule mod_gnutls.c>
##################################Listen 443
Listen 127.0.0.1:443
</IfModule>