无法从其他设备访问 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>
到最后
第一次安装 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>
到最后