站点博客

马红亮 - 2018年11月15日 星期四 23:58
世界上的任何人

无论是Moodle还是Wordpress,国外的主题经常会调用google字体,于是加载网页是会出现连接https://fonts.googleapis.com/的提示。由于Google网站被屏蔽,所以这些连接会在一定程度上拖慢网速。解决方法就是删除这些代码。可在哪个文件中能找到这些代码呢?于是Ubuntu下的grep命令就非常有用。例如输入:grep -r 'fonts.googleapis.com' *, 也就是在当前文件夹以及子文件夹下的所有文件中查找这段代码,并显示出包含这段代码的文件。这样岂不非常方便?

标签:
 
马红亮 - 2018年10月31日 星期三 19:09
世界上的任何人

      Ubuntu的最新版本是18.04,有Server版本和Desktop版本,服务器端当然需要安装Sever版本。这里有两种安装方式: live server installerdebian-installer。前者安装过程简单,但需要连接Internet安装;后者相对要复杂一些。无论哪种安装还是首先需要制作一个Ubuntu的启动盘。CD容量通常只有700M,而Ubuntu Server的镜像文件一般都大于700M,所以这里我们选择USB(当然你也可以选择DVD)。

     注意,在Windows系统中,制作USB启动盘时,不能直接将安装的ISO镜像文件刻录在USB盘中,还需要借助专门的制作启动盘的工具,比如开源的Rufus。该工具不用安装,只有1M,下载后即可使用,而且还带中文界面。刻录启动盘的操作过程也很简单,详见 Create a bootable Ubuntu USB stick on Windows

标签:
 
世界上的任何人

         2010年开始在中国教育人博客上发博客,其中有一些Moodle和系统管理有关的博客,还是有必要整理一下与大家共享:

         原文发表于2016-08-28:

        通常,Moodle网站会涉及到用户的注册、登录等隐私信息,这些信息最好通过加密的方式传输,这就需要Moodle网站安装SSL证书,然后启用https
         在生成和安装SSL证书方面,不建议自己在Linux系统上生成self-signed certificates,过程比较复杂,也不宜应用于正式对外运行的网站。最好直接从CA处购买SSL证书。现在国内的SSL证书价格也比较便宜,也有保证。根据需要选择购买,按照说明在Apache上设置相关参数(可参考SSL证书安装指南 - Apache-SSL),然后在Moodle根目录的config.php中将http换成https即可全站启用https。当然你可以在 网站管理——安全——http安全中,启用“使用https登录”,也就是只在登录页面启用https,这样可以兼顾Moodle隐私信息安全和整个网站访问的流畅性。如果全站启用https会影响访问速度,但总体影响太不大。
       关于Moodle网站到底是否应该全站启用https,官方核心开发人员Dan Marsden认为(Moodle entirely over SSL?):

No. If you're concerned about security you should really use full-time SSL.

SSL for logins may prevent the users password from being obtained but the users session will still be passed unencrypted so could potentially be intercepted (for example on a public wifi point) allowing someone malicious to impersonate the user.

……the overhead caused by running full-time ssl is very minimal - and in most cases you won't notice a difference -

       最后别忘了打开防火墙UFW的443端口,https的默认端口。
       配置完这些之后,还有一项设置挺有用的,就是使整个网站实现从http自动跳转到https,网上有许多说法,但内容不一致。查到国外王牌云服务器提供商godaddy的帮助信息,非常管用(Redirect HTTP to HTTPS automatically)。可以实现把整个网站所有的http链接和资源(指向自身网站)都一次性的转换为https:
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
标签:
 
世界上的任何人
        2010年开始在中国教育人博客上发博客,其中有一些Moodle和系统管理有关的博客,还是有必要整理一下与大家共享:

        原文发表于2016-08-26:

        自己搭建邮件服务器是非常辛苦的,即使只是作为一个邮件转发代理(MTA),也必须要了解更多的邮件知识。SPF就是必须要了解的知识和配置。
         SPF(Sender Policy Framework) 的缩写,一种以IP地址认证电子邮件发件人身份的技术,是非常高效的垃圾邮件解决方案。接收邮件方会首先检查域名(DNS)的SPF记录,来确定发件人的IP地址是否被包含在SPF记录里面,如果在,就认为是一封正确的邮件,否则会认为是一封伪造的邮件进行退回。(腾讯企业邮箱)

         SPF是为了防范垃圾邮件而提出来的一种DNS记录类型,它是一种TXT类型的记录,它用于登记某个域名拥有的用来外发邮件的所有IP地址。按照SPF的格式在DNS记录中增加一条TXT类型的记录,将提高该域名的信誉度,同时可以防止垃圾邮件伪造该域的发件人发送垃圾邮件。(百度百科-SPF记录
         以下是这几天学习过程中找到的不错的文档:
SPF 记录:原理、语法及配置方法简介
How To use an SPF Record to Prevent Spoofing & Improve E-mail Reliability

标签:
 
世界上的任何人

         2010年开始在中国教育人博客上发博客,其中有一些Moodle和系统管理有关的博客,还是有必要整理一下与大家共享:

         原文发表于2016-08-25:

        在Windows系统下,PHP扩展的调用需要在php.ini文件中去掉相应扩展前的注释,如;extension=php_xmlrpc.dll,去掉;。这样才能正常装载。
         在linux系统下,安装和调用php扩展很简单,只需要执行安装命令即可,如apt-get install php5-xmlrpc。也就是说执行完这个命令,就万事大吉了,重启一下apache2即可自动装载所安装的php扩展,并不需要在php.ini中进行任何配置。如果你在php.ini中添加了 extension=xmlrpc.so,反而画蛇添足,会导致重复调用,出现php错误报警:PHP Warning: Module 'xmlrpc' already loaded in Unknown on line 0。
         其实,在安装扩展的过程中,系统已经添加了扩展的配置文件,如xmlrpc.ini, curl.ini。在这些配置文件中已经添加了调用命令,如:extension=xmlrpc.so

参阅:PHP remove/fix module not found or already loaded warnings?
答案
When you install php5-memcache it adds it's own memcache.ini file which is set to load that extension already. So Just remove/comment the loading of the extension from your php.ini.
;extension=memcache.so
Similar with APC (Alternative PHP Cache Module).
;extension=apc.so
标签:
 
世界上的任何人

         2010年开始在中国教育人博客上发博客,其中有一些Moodle和系统管理有关的博客,还是有必要整理一下与大家共享:

         原文发表于2016-08-24:

        首先,要启用Moodle中的用户基于Email的自助注册,需要在 网站管理 ——插件——身份认证中启用“基于email的自助注册”。
        接着,需要明白的是,Moodle并不是一个邮件转发程序(MTA ,mail transfer agent),不能实现邮件的发送。邮件发送需要依赖于一个外部MTA或者第三方SMTP服务器。详见Moodle官网讨论(2.7.2 Email-Based Self-Registration: No email sent
        如果用第三方SMTP服务器,如qq、126等邮箱,那么只需要在Moodle中的 网站管理 ——插件——消息输出——Email中按照第三方SMTP的客户端设置填写相应的 SMTP参数即可。但测试发现,这种途径转发Moodle邮件往往不成功,因为受限于第三方SMTP服务器端的严格限制和各种过滤。
        另外一种可行的途径则是在服务器上自建一个MTA来转发邮件,这也是Moodle默认的邮件发送方式,参见Moodle官方的SMTP说明
SMTP stands for Simple Mail Transfer Protocol. The SMTP host is an email relay that will take the email from Moodle and send it to users. You will need to set this only if your server does not allow mail relay. Otherwise, PHP will send out the mail using its built-in mail server. All the email sent by forums and other modules will be sent through this host.  
       也就是说,默认情况下Moodle的PHP程序会调用mail()函数发送邮件,而Mail()函数起作用有赖于系统中的sendmail程序(参阅php mail()函数)。在ubuntu系统中,sendmail已经被更安全、快捷的postfix程序代替,所以还需要安装postfix并进行配置。这里找到一种简易的仅仅把Postfix作为邮件发送程序的配置方法(How to Install and Configure Postfix as a Send-Only SMTP Server on Ubuntu 16.04)。高级的配置需要花更多的时间来熟悉。
       注意,如果选择自身服务器的Postfix来转发moodle邮件,那么就不需要在Moodle中设置第三方SMTP了。
标签:
 
世界上的任何人

         2010年开始在中国教育人博客上发博客,其中有一些Moodle和系统管理有关的博客,还是有必要整理一下与大家共享:

         原文发表于2016-03-10:

        昨天终于彻底解决了Moodle网站中的邮件配置问题。长期以来,我们的Moodle网站(Wolearn)是基于Email的方式让用户自主注册,但以前在Moodle中的配置只涉及了两个模块:
  • 网站管理——插件——身份认证,启用基于Email的自助注册。

  • 网站管理——插件——消息输出——Email,在其中输入smtp邮件服务器主机的域名或端口号。建议使用SSL协议和465端口,这样更安全些。

        长期以来以为只需要配置这两大块就可以了,于是过去经过反复试验发现只有QQ邮箱的smtp.qq.com:465才能成功地让用户自主注册(其实是因为管理员的邮箱设置的就是QQ邮箱)。然而QQ邮箱的smtp发信是有限制的,有时候被拦截为疑似垃圾邮件,无法发送成功。最近在不断尝试其它smtp邮箱的过程中偶然发现,Moodle中还有一个邮件配置也会影响这种基于Email的用户自助注册能否成功,这就是:

  • 网站管理——技术支持——支持email。无意中发现,这里填写的email地址如果和smtp邮件服务器中的email邮箱不一致,用户注册时,Moodle网站依然不能够正常发给用户注册信息的邮件,用户也就无法注册成功了。另外也发现,这里默认的email即为管理员的email地址。

        也就是,smtp的邮箱、技术支持email(如果填写的话)必须保持一致,才能最终确保基于Email的自助注册方式的成功。如果不一致,会出现由技术支持email的地址代发邮件的情况,那这很有可能被其它邮件服务器作为垃圾邮件拒收。

标签:
 
世界上的任何人

         2010年开始在中国教育人博客上发博客,其中有一些Moodle和系统管理有关的博客,还是有必要整理一下与大家共享:

         原文发表于2012-07-03:

       2010年用Moodle1.9为英国博尔顿大学的一门开放课程搭建了的平台,并在其中创建了几门其它课程。最近想将这个平台恢复起来,主要是其中的一些数据和课程还需要进一步的分析,但是该平台已经撤销了很长一段时间,管理员的用户名和密码都彻底忘记了。最后在Moodle官网中终于查找到了解决办法,成功重置了管理员的密码。

      对于Moodle 2,官方网站的支持文档中有“I have forgotten the admin password ”的解决办法。但是尝试了所例举的几种办法都不成功。要么是Moodle1.9的邮件功能没有配置成功,通过邮件找回密码的方式行不通;要么通过命令行的方式“$ sudo -u apache /usr/bin/php admin/cli/reset_password.php”也不成功,因为Moodle1.9 admin文件夹下没有cli文件夹也不存在reset_password.php文件。接着用phpmyadmin进入moodle1.9数据库的mdl_user表,方才得知管理员的用户名是多少,可密码是加密的方式,所以无法在数据库中直接得知。

       最后,在一个论坛讨论中找到了解决方案,即使用mysql命令即可重置管理员的密码:

update mdl_user set password=md5('abcdefgh') where username='admin'。需要说明的是:The password field in the database needs to be md5-encrypted. So if you want your admin password to be abcdefgh (bad password but for the sake of an example), you could use the sql query。在SQL命令中,md5为加密方式,abcdefgh为重置的初始密码,admin为在mdl_user中的管理员用户名。


标签:
 
马红亮 - 2018年08月10日 星期五 21:00
世界上的任何人

   

      ClamAV是一个开源(GPL)的杀毒引擎,面向服务器端,主要用在邮件扫描、web扫描和端点安全等。ClamAV可以工作在许多的平台上,它主要是来防护一些WINDOWS病毒和木马程序。ClamAV提供有许多功能,包括一个灵活的和可扩展的多线程程序,命令行扫描器和一个先进的数据库自动更新工具。


      在Moodle的标准插件中包含有防病毒插件-ClamAV,启用后,你还得在Linux系统中安装ClamAV软件。以Ubuntu系统为例,输入apt-get install clamav-daemon进行安装。之后,你还要在系统中设置定时自动升级病毒库、定时扫描moodledata文件。

         最后,你还需要将clamav用户添加到www-data用户组中,以实现Moodle系统对用户上传文件的自动扫描。在设置这一项时,别忘了重启clamav服务:service clamav-daemon restart。


       参考文献:

标签:
[ 修改时间: 2018年08月11日 星期六 18:04 ]
 
马红亮 - 2018年08月10日 星期五 12:39
世界上的任何人

    昨天在编写Ubuntu的sh文件(shell脚本),以定时自动备份moodle数据库。开始使用的是Notpad++软件,因为看到有保存为bash、sh文件的选项。自动备份的命令都输入对了,结果上传到服务器,然后在调用sh文件时系统多处提示:No such file or directory,反复检查备份命令,都没有问题。折腾了1个多小时,突然醒悟过来可能是在Windows下用Notpad++编辑Linux可执行文件这种方式存在问题,于是在Ubuntu下直接用Nano命令新建了一个sh文件,一调用立刻顺利备份。


    今天网上一查,Windows下用Notpad++编写的sh文件其实是Dos格式,显然不适合在Linux系统下运行。最好还是直接在Linux系统下编写sh文件。

标签:
[ 修改时间: 2018年08月10日 星期五 13:07 ]