无法从其他设备访问 Moodle(用 PHP 编写的系统)

Can't reach Moodle (a system written in PHP) from other devices

第一次安装 Moodle,我正在使用 WAMP 在 Windows10 上本地安装它。一般来说,我对 Apache 和服务器的了解非常有限。 安装成功完成,在我的本地主机上一切正常,但是当我尝试从其他设备(即另一台使用 chrome 的笔记本电脑)访问它时,我将被重定向到“http://localhost/moodle”并收到消息 "This Site can't be reached" 虽然我可以在更改其别名文件后访问 "MyphpAdmen" 页面。 我知道编码的赌注,所以我为 Moodle 创建了一个别名文件,从 Myphpadmin 的别名文件中复制了相同的代码,并做了一些更改,看起来像这样

Alias /moodle "C:/wamp64/www/moodle/"

<Directory "C:/wamp64/www/moodle/">
Options +Indexes +FollowSymLinks +MultiViews
AllowOverride all
<ifDefine APACHE24>
    Require all granted
 </ifDefine>
 <ifDefine !APACHE24>
    Order Deny,Allow
 Deny from all
 Allow from localhost ::1 127.0.0.1
 </ifDefine>

  # To import big file you can increase values
  php_admin_value upload_max_filesize 128M
  php_admin_value post_max_size 128M
  php_admin_value max_execution_time 360
  php_admin_value max_input_time 360
  </Directory>

它没有用,我们将不胜感激。

如果您希望能够将您的网页提供给所有 IP 地址。您可以删除这两行。

Deny from all
Allow from localhost ::1 127.0.0.1

或者如果您想要更高的安全性,您可以只允许一定范围的 ip

Order Allow,Deny
Deny from all
Allow from 127.0.0.1 ::1
Allow from localhost
Allow from 192.168

192.168 是您网络 ip 的前两个括号

参考:https://httpd.apache.org/docs/2.4/mod/mod_access_compat.html#allow

并记得重新启动 apache 以应用更改。

毕竟这不是权限问题。我注意到,当我输入 Moodle 服务器的地址时(http://1.1.1.1/moodle) from other devices ,i will be redirected to "http://localhost/moodle”,为了解决这个问题,我只需要在 Moodle 的 config.php 文件中编辑一行,如下所示:

$CFG->wwwroot = 'http://localhost/moodle' ;

to this

$CFG->wwwroot = 'http://1.1.1.1/moodle';

把1.1.1.1改成你服务器的IP

该解决方案的来源:Moodle in English

小调整: 您可能会在具有不同 IP 范围的不同站点上使用您的服务器,在这种情况下,每次更改服务器 IP 时都必须更新您的配置文件,所以我编写了这个小代码来自动更新:

$host= gethostname();
$MyIp= gethostbyname($host);
$CFG->wwwroot = 'http://'.$MyIp.'/moodle';

希望如此helps.Thanks!

请前往XAMPP-控制并打开Apache->Config->httpd.conf 并添加

<IfModule mpm_winnt_module>
   ThreadStackSize 8888888
</IfModule>

到最后

Reference