DocumentRoot C:xampp/htdocs

云服之家 云服务器资讯 1.3K+

PHP通过局域网访问我电脑的虚拟主机

在局域网内通过PHP访问自己电脑的虚拟主机,是一种非常实用的技术,尤其适用于开发和测试环境,本文将详细介绍如何通过PHP在局域网内访问自己电脑的虚拟主机,包括配置环境、编写PHP代码以及解决常见问题。

DocumentRoot C:xampp/htdocs

云服之家,国内最专业的云服务器虚拟主机域名商家信息平台

环境准备

在开始之前,请确保你的电脑已经安装了以下软件:

  1. Web服务器软件:如Apache、Nginx或XAMPP(集成了Apache和MySQL)。
  2. PHP:确保PHP已经安装并配置好。
  3. 网络配置:确保你的电脑和局域网内的其他设备在同一个网络下,并且电脑的防火墙允许HTTP/HTTPS流量通过。

配置Web服务器

以XAMPP为例,安装完成后,打开XAMPP控制面板,启动Apache服务器,默认情况下,XAMPP会在C:\xampp\htdocs目录下创建网站根目录,你可以在这个目录下创建你的PHP项目。

配置Apache服务器

打开Apache的配置文件httpd.conf,找到以下行:

apache

确保前面的被移除,以启用该配置,然后保存文件并重启Apache服务器。

编写PHP代码

在你的项目目录中创建一个PHP文件,例如index.php,并添加以下代码:

<?php
// 获取客户端的IP地址
$client_ip = $_SERVER['REMOTE_ADDR'];
echo "Client IP: " . $client_ip;
?>

保存文件后,在浏览器中访问http://localhost/index.php,你应该会看到当前客户端的IP地址(在本地环境中通常是0.0.1)。

通过局域网访问虚拟主机

要让局域网内的其他设备访问你的虚拟主机,你需要修改电脑的防火墙设置和Apache的配置。

修改防火墙设置(以Windows为例)

  1. 打开“控制面板” -> “系统和安全” -> “Windows Defender防火墙”。
  2. 点击“高级设置”。
  3. 在“入站规则”中,找到并启用“HTTP”和“HTTPS”规则,如果没有这些规则,可以手动添加新的规则以允许TCP端口80和443的入站流量。

配置Apache监听外部IP地址(可选)

默认情况下,Apache只监听localhost0.0.1),为了让局域网内的设备能够访问你的虚拟主机,你需要修改Apache的配置文件,使其监听一个外部IP地址,假设你的电脑的IP地址是168.1.10(在局域网内),你可以按照以下步骤操作:

  1. 打开Apache配置文件httpd.conf
  2. 找到以下行:
    #Listen 127.0.0.1:80 80 8080 24 8006 1080 1048576 10485760 65534 655340 6553456 65534560 65534567 655345670 655345679 6553456799 65534567999 655345679999 6553456799999 127.0.0.1:8080 127.0.0.1:8443 :::80 :::8443 :::8000 :::8443 :::8888 :::9999 :::1080 :::1048576 :::10485760 :::65534 :::655340 :::6553456 :::65534560 :::65534567 :::655345670 :::655345679 :::6553456799 :::65534567999 :::655345679999 :::6553456799999 127.0.0.1:80 (Listen) (Port) (NameVirtualHost) (Timeout) (KeepAlive) (Limit) (Listen backlog) (ListenFDSetsize) (MaxRequestsPerChild) (MaxConnectionsPerChild) (MaxSpareServers) (MinSpareServers) (StartServers) (MaxClients) (AcceptMutex) (AcceptMutexFile) (Mutex) (MutexFile) (UserDir) (UserDirDisabled) (UserDirLevel) (UserDirAllowed) (UserDirForbidden) (UserDirDeny) (UserDirAllowOverride) (UserDirDenyOverride) (UserDirIgnoreFile) (UserDirIgnoreFileAllowOverride) (UserDirIgnoreFileDenyOverride) (UserDirIgnoreFileMultiViewsAllowOverride) (UserDirIgnoreFileOptionsAllowOverride) (UserDirIgnoreFileAllowOverrideNone) (UserDirIgnoreFileDenyOverrideNone) (UserDirIgnoreFileOptionsAllowOverrideNone) (UserDirIgnoreFileOptionsFollowSymLinksAllowOverrideNone) (UserDirIgnoreFileOptionsExecCGIAllowOverrideNone) (UserDirIgnoreFileOptionsIndexesAllowOverrideNone) (UserDirIgnoreFileOptionsSymLinksIfOwnerMatchAllowOverrideNone) (UserDirIgnoreFileOptionsMultiViewsAllowOverrideNone) (UserDirIgnoreFileOptionsSourceAllowOverrideNone) (UserDirIgnoreFileOptionsDefaultIndexIncludesAllowOverrideNone) (UserDirIgnoreFileOptionsDefaultIndexIncludesFromFileAllowOverrideNone) (UserDirIgnoreFileOptionsDefaultIndexIncludesFromAllFilesAllowOverrideNone) (UserDirIgnoreFileOptionsRequireSSLAllowOverrideNone) (UserDirIgnoreFileOptionsSSLRequireSSLAllowOverrideNone) (UserDirIgnoreFileOptionsSSLRequireSSLAnyAllowOverrideNone) (UserDirIgnoreFileOptionsSSLRequireSSLNamedAllowOverrideNone) (UserDirIgnoreFileOptionsSSLRequireSSLOptionsAllowOverrideNone) (UserDirIgnoreFileOptionsSSLOptionsBasicAuthAllowOverrideNone) (UserDirIgnoreFileOptionsSSLOptionsAuthNameAllowOverrideNone) (UserDirIgnoreFileOptionsSSLOptionsAuthTypeAllowOverrideNone) (UserDirIgnoreFileOptionsSSLOptionsAuthMechAllowOverrideNone) (UserDirIgnoreFileOptionsSSLOptionsRequireValidCertOnStartupAllowOverrideNone) (UserDirIgnoreFileOptionsSSLOptionsValidCertDataAllowOverrideNone) (UserDirIgnoreFileOptionsSSLOptionsValidCertDataFromFileAllowOverrideNone) (UserDirIgnoreFileOptionsSSLOptionsValidCertDataAllFilesAllowOverrideNone) ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... #Listen [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:80 [::]:8443 [::]:8443 [::]:8443 [::]:8443 [::]:8443 [::]:8443 [::]:8443 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:123 [::]:79 [::]:79 [::]:79 [::]:79 [::]:79 [::]:79 {Listen} {Port} {NameVirtualHost} {Timeout} {KeepAlive} {Limit} {Listen backlog} {ListenFDSetsize} {MaxRequestsPerChild} {MaxConnectionsPerChild} {MaxSpareServers} {MinSpareServers} {StartServers} {MaxClients} {AcceptMutex} {AcceptMutexFile} {Mutex} {MutexFile} {UserDir} {UserDirDisabled} {UserDirLevel} {UserDirAllowed} {UserDirForbidden} {UserDirDeny} {UserDirAllowOverride} {UserDirDenyOverride} {UserDirIgnoreFile} {UserDirIgnoreFileAllowOverride} {UserDirIgnoreFileDenyOverride} {UserDirIgnoreFileMultiViewsAllowOverride} {UserDirIgnoreFileOptionsAllowOverride} {UserDirIgnoreFileAllowOverrideNone} {UserDirIgnoreFileDenyOverrideNone} {UserDirIgnoreFileOptionsAllowOverrideNone} {UserDirIgnore

标签: DocumentRoot XAMPP Htdocs