php之家

亲身经历:一分钟恢复被黑的WordPress博客网站

【ALENG 自媒体】8月11日早间自媒体专稿,话说从2008年涉足独立博客至今,掐指一算,走独立博客这一行已经10多年了。10多年间,我的独立博客网站先后使用过早期的Z-blog博客系统,后来还安装过某著名的CMS系统,直到发现WordPress,才算是找到了一套好的博客系统。目前,全球大约35%的网站使用的系统就是WordPress,这其中不乏一些著名的机构和企业网站。我自己使用WordPress系统也已经好多年了,这些年间,曾经多次经历过主机故障,数据丢失,但是网站被黑,却没有经历过,直到最近。

最近一段时间由于忙,一直没有时间打理自己的独立博客网站,今天忽然想起了,于是想打开看看,却发现提示了“500服务器错误”。第一反应是主机可能出故障了,马上赶到主机提供商的后台,发现一切正常,查看网站数据,似乎也没有发现啥问题,但是无论如何,网站的所有页面都是“500错误”,打不开。后来突发奇想,手工键入网站后台登录页面,居然成功登陆了!

网站前台所有页面都打不开,但是后台却可以正常登录,这是啥情况?

我一边给主机商发了要求技术支持的工单,一边通过主机后台查看网站文件,看是否能够发现一些端倪。主机商很快就回复了工单,说是网站首页Index.php页面错误,错误代码在第9行。于是打开看这个文件,但是第9行究竟是啥错误,我压根自己也发现不了,但是这个文件的最新修改时间就在这个月初,看来,网站确实是被黑了。

网站被黑,如果数据都完好的话,对于大多数小白来说,最好的解决办法就是删除重装系统。尽管现在大多数主机商都提供一键安装WordPress,但是这毕竟是一件很费时间的事情,而且对于我来说,整个博客这10年来的数据大约在3GB左右,仅仅备份这些数据文件,就够麻烦的了,那么,有没有好的办法解决这个问题呢?毕竟,网站的后台还是可以打开的。

万般无奈中,我偶然发现网站后台提示WordPress系统有更新的版本,这不就是有办法了吗?因为WordPress版本更新后,会将大部分主要文件重写,因此,这个过程实际上等于是将博客系统“恢复出厂设置”,这不就能够解决首页被黑,被修改导致前台无法访问的故障了么?于是立即点击“更新”,大约一分钟后,更新完成,点击“查看网站”,Ok,一切完好如初,博客网站重新恢复了正常访问。

总结一下:我后来发现我的独立博客实际上是被挂马了,这可能与之前曾经尝试过的一个来源不明的主题有关,反正现在也没有时间排查,但是有一点可以肯定,那就是WordPress网站被黑,大概率与最近安装的主题或者插件有关系,所以无论是选择主题,还是插件,都应当从WordPress官方获取,这可以减少很多麻烦。在网站建设和WordPress 博客系统使用方面你都有哪些经验和心得,欢迎一起分享给大家!

展开
收起

温故知新?睡眠必不可少

不论是降低患肥胖症和心血管疾病风险,还是提高注意力和日常整体表现,睡眠已经被证明对保持健康有至关重要的作用。

8月4日,《eLife》网络版发文称,美国加州大学圣地亚哥医学院的研究人员发现,睡眠还可以帮助人们在一生中持续学习。

在这项研究中,研究人员利用能够模拟不同大脑状态(比如睡眠和清醒状态)的计算机模型,研究了睡眠是如何巩固新记忆并防止旧记忆受损的。

“睡觉时,人类大脑非常忙碌,不断重复白天所学到的东西。睡眠有助于重新组织记忆,并以最有效的方式呈现出来。我们的发现表明记忆是动态的。换句话说,即使是旧记忆,也不是最终的记忆版本。”论文作者、加州大学圣地亚哥分校教授Maksim Bazhenov博士说,“我们预测,在睡眠周期中,新旧记忆都会自动重播,这可以防止遗忘,提高回忆表现。”

Bazhenov认为,睡眠时的记忆回放通过让相同数量的神经元存储多种干扰记忆,起到了记忆保护作用。

他说:“我们每天都在学习很多新东西,新记忆与旧记忆存在相互竞争。为了容纳所有的记忆,我们需要睡眠。比如,在打网球时,我们会有一定的肌肉记忆。如果要学习如何打高尔夫球,我们就必须学习如何用不同的方式移动同样的肌肉。睡眠保证了打高尔夫球的学习经历不会抹掉打网球的记忆,并且使不同的记忆能够在大脑中共存。”

研究人员认为,睡眠对记忆的恢复价值,可能正是目前最先进的计算机系统所缺乏的——计算机系统虽然能够为自动驾驶汽车提供动力,并能够以远超人类的性能识别图像,但却缺乏持续学习的能力。当系统学习到新的知识时,就会忘记旧的知识。

Bazhenov说:“我们可能需要给电脑和机器人系统增加一种类似睡眠的状态,以防止它们学新忘旧,以及让它们能够持续学习。”

研究人员表示,这项研究结果可能有助于开发新的睡眠刺激技术,以提高记忆力和学习能力。

这可能对老年人或有学习障碍的人尤为重要。睡眠与许多重要的大脑和身体功能有关,它也可能能够让人工智能不断从经验中学习、创造新知识,并适应不断变化的环境,成为真正的人工智能。

科界原创

编译:花花

审稿:西莫

责编:雷鑫宇

期刊来源:《eLife》

期刊编号:2050-084X

原文链接:

https://www.eurekalert.org/pub_releases/2020-08/uoc--csp080420.php

版权声明:本文由科界平台原创编译,中文内容仅供参考,一切内容以英文原版为准。转载请注明来源科技工作者之家—科界App。

展开
收起

为什么大家总喜欢黑PHP?PHP到底做错了什么

  所谓一粉顶十黑,“PHP是最好的语言”的梗即由此而来,其实它并不是讽刺PHP语言本身,而是在讽刺并不深入理解PHP的开发者。

  

  PHP有很多奇怪的设计,令大部分人必须有个参考手册握在手边才敢写代码,但它仍然能够吸引众多开发者。最重要的原因是:它拥有门槛低和用户群体大的优势。

  

  但是用户群大了,各种水平的人都会有。

  入门虽然很容易,但精通PHP是很难的,毕竟这个语言及其标准库里有太多未定义行为。

  用户群中存在不少并不够精通PHP的群体,有些人没有真正尝试过其它语言,没经历过这些语言和解释器设计不佳的部分;也有些人由于长期使用PHP,对它产生了异常深厚的情感。

  于是产生了一种现象:有些人认为PHP就是最简单最完善最好的语言,并且热衷于在各种论坛等地方与其他人进行争辩。

  

  

  后来PHP语言招黑,乃至“PHP是最好的语言”成为一个讽刺PHP开发者的梗,

  实际上还是由于2010年后移动app开发的火爆,移动开发和Web开发者地位的此消彼长而导致。

展开
收起

使用php集成运行环境全家桶Laragon,做一个优雅的开发者

对于一个php程序员来说,php运行环境是我们最亲密的伙伴之一,一般我们都会选择一个集成好的运行环境在我们电脑上安装。在我们职业生涯中用过许多的集成开发环境,比如:Xampp、Wamp、phpstudy、宝塔、upupw等等。今天要给大家推荐的是一款名叫Laragon的Windows中的php集成运行环境,其丰富的功能堪称php集成环境界的全家桶,下面我们一起看一看。

Laragon

完美支持laravel

Laragon专注于性能 - 围绕稳定性,简单性,灵活性和自由度而设计,非常适合构建和管理现代Web应用程序。

Laragon有自己的service orchestration异步和非阻塞管理服务,可自动创建虚拟主机,所以你会发现Laragon可以快速顺畅地运行。

Laragon对 Laravel 非常友好,相信不少人在windows下开发搭建laravel官方推荐的运行环境Homestead 时吃过不少的亏,下载了一堆软件,安装完却搞不明白要怎么组合在一起运行起来,而Laragon完美支持laravel。

Laragon可以将PHP,Python,Node.js,Java,Golang,Ruby集于一身,支持Mariadb,MySQL,Redis,Memcached,Postgresql,Mangodb等数据库。还支持Git,Yarn,Composer,终端等等,可以说安装了laragon,开发所需要的各种软件就都安装好了,真正的开箱即用。

Laragon 特性

自动创建虚拟主机(Virtual Host,Valet 也有这样的功能)基于自己的需求为不同的环境设置不同的配置邮件接收和发送轻松创建框架应用,如 Laravel、Symfony、WordPress、Joomla 等非常方便地切换 PHP、Apache、MySQL 的不同版本Laragon 安装

laragon官网地址:请自行搜索吧,自媒体中不让发网址链接(尴尬)。

目前的版本是4.0.14,php版本默认是7.2.11,安装完毕出现如下界面:

laragon启动界面

点击启动所有开始使用,以下是我所用环境的启动界面:

laragon启动后的界面

安装完毕即可投入使用,详细的使用介绍就不多赘述,试试鼠标右键点击界面,自行体会发现的乐趣。

我后续会继续发一些关于laragon的详细使用教程,欢迎关注。

展开
收起

店之家-送外卖还是当程序员?店老板:其实摆地摊才是上策

店之家经常收到开店老板转行的咨询,发现大家的困扰问题很是相似,比如:40岁转行做互联网难不难?开过店的人有什么优势?有什么推荐的行业?

今年由于疫情,各个行业受到了巨大冲击,实体店倒闭了一大片。老板们纷纷开始转行,今天店之家就给大家推荐几个思路以供参考。

店之家-送外卖还是当程序员?

1、外卖员

有人会认为送外卖丢人,店之家认为,职业不分贵贱,谁也不用看不起谁。表面的风光毕竟是一时的,只有真诚的付出才是可贵的。

店之家-送外卖还是当程序员?

有过开店经验的人去送外卖,更能了解商家运营存在的一些缺点,还可以多方面了解其他商家的运营方式,学习不同的经验,或许对以后开店大有帮助。

去年有位北大的毕业生辞去白领工作跑去送外卖刷爆朋友圈,但他本人却说道,送外卖让他戒掉了焦虑和急功近利,让他可以用不同的角度去看世界,更能体验生活,反而带给他更多的惊喜。

2、程序员

店之家之前合作的一个王老板就转行做程序员了。王老板是85年的,自学的前端和php。虽然之前开过饭店,但是性格比较内向,是个老实人,做事比较专注。自学了半年就开始找工作,18年刚入行时工资是6千,后来不断学习,今年跳槽到了一家新公司,现在工资也有1万多。

店之家-送外卖还是当程序员?

王老板说道:刚开始的时候压力很大,但学习了很多新奇的东西。有一些人说程序员只能做到35岁,其实这是危言耸听。只要不断学习,在哪个行业都能做好。

3、摆地摊

店之家认为,最能发挥店老板优势的无非是摆地摊了。摆地摊的门槛比较低,相对于开门店投入小,资金流动性强,回款快,加上现在国家政策的扶持风口,现在摆地摊不异于如虎添翼。

店之家-送外卖还是当程序员?

一个月前店之家写过一篇大学生卖冰粉月入过万的文章,相比之下,开店多年的老板,摆摊还不更是手到擒来?

展开
收起

做了三年多的php,在上一家公司转java一年多,如何找工作

尝试了几家java的面试,面试过程所有的问题都解答得很顺畅,等结果出来之后却被告知因为年限不够,不想聘用,所以只能继续找php的岗位了吗?

“年限不够”多半不是不想聘用的真实理由。

从技术岗位的招聘来说,大多数公司,主要考量的点是:专业技能、工作经验、学历、薪资等等这些。是否聘用,往往是一个综合的考量。

“年限不够”,如果是指你java开发一年多时间较多,个人觉得,比较扯淡……

首先,编程毕竟是相通的,你之前做了三年多PHP,之后做了Java一年多,编程经验四五年,足够了。

其次,如果真如你所说“面试问题解答的很顺畅”,证明技术能力没有问题,这多半不是专业技能或工作年限的状况。

我不觉得你应该继续找PHP的岗位,不知道你总计应聘了多少家,不妨再多试试看,毕竟求职的过程中“遇人不淑”这种事,还是挺常见的。

再者,你找PHP的工作还是Java的,自己要先想清楚,你未来的发展方向,不应该因为一点点挫折,马上就调转枪头,这是职业规划的大忌。

我估计,你应聘未遂的原因,很可能是其他状况。

比如,你的薪资期望是否符合自身条件和市场行情,你的学历是否低于对方要求但是薪资高于对方标准……

不妨尝试下,虽然买卖没成,情谊可以勾搭勾搭,电话或邮件联络你面试的工作人员,礼貌委婉的询问下,未被聘用的真实原因,这对你之后的应聘会很有帮助。

当然,你也可以之后推送简历或邮件发送简历的时候,简单说明下自己的从业经验,对方HR也会心中有数,也避免了大家彼此不必要的时间浪费。

但,客观的说,HR邀约你面试前,肯定都了解你的情况,比如Java一年多的开发经验,拒绝你说“年限不够”,本身就比较扯淡,倘若如此,还让你来面试干嘛?

有了烦恼找明哥,找了明哥乐趣多,关注明哥聊求职,我们的故事就开始了~

展开
收起

干货分享:PHP的错误机制总结

PHP的错误机制总结

PHP的错误机制也是非常复杂的,做了几年php,也没有仔细总结过,现在就补上这一课。

特别说明:文章的PHP版本使用5.5.32

PHP的错误级别

首先需要了解php有哪些错误。截至到php5.5,一共有16个错误级别

注意:尝试下面的代码的时候请确保打开error_log:

E_ERROR

这种错误是致命错误,会在页面显示Fatal Error,当出现这种错误的时候,程序就无法继续执行下去了

错误示例:

注意,如果有未被捕获的异常,也是会触发这个级别的。

E_WARNING

这种错误只是警告,不会终止脚本,程序还会继续进行,显示的错误信息是Warning。比如include一个不存在的文件。

E_NOTICE

这种错误程度更为轻微一些,提示你这个地方不应该这么写。这个也是运行时错误,这个错误的代码可能在其他地方没有问题,只是在当前上下文情况下出现了问题。

比如$b变量不存在,我们把它赋值给另外一个变量

E_PARSE

这个错误是编译时候发生的,在编译期发现语法错误,不能进行语法分析。

比如下面的z没有设置为变量。

E_STRICT

这个错误是PHP5之后引入的,你的代码可以运行,但是不是PHP建议的写法。

比如在函数形参传递++符号

E_RECOVERABLE_ERROR

这个级别其实是ERROR级别的,但是它是期望被捕获的,如果没有被错误处理捕获,表现和E_ERROR是一样的。

经常出现在形参定义了类型,但调用的时候传入了错误类型。它的错误提醒也比E_ERROR的fatal error前面多了一个Catachable的字样。

E_DEPRECATED

这个错误表示你用了一个旧版本的函数,而这个函数后期版本可能被禁用或者不维护了。

比如curl的CURLOPT_POSTFIELDS使用\@FILENAME来上传文件的方法

E_CORE_ERROR, E_CORE_WARNING

这两个错误是由PHP的引擎产生的,在PHP初始化过程中发生。

E_COMPILE_ERROR, E_COMPILE_WARNING

这两个错误是由PHP引擎产生的,在编译过程中发生。

E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE,

E_USER_DEPRECATED,

这些错误都是用户制造的,使用trigger_error,这里就相当于一个口子给用户触发出各种错误类型。这个是一个很好逃避try catch异常的方式。

E_ALL

E_STRICT出外的所有错误和警告信息。

错误控制

php中有很多配置和参数是可以控制错误,以及错误的日志显示的。第一步,我们需要了解的是php中的有关错误的配置有哪些?

我们按照php+php-fpm的模型来说,会影响php错误显示的其实是有两个配置文件,一个是php本身的配置文件php.ini,另外一个是php-fpm的配置文件,php-fpm.conf。

php.ini中的配置

我们经常会被问到,error_reporting和display_errors有什么区别呢?这两个函数是完全不一样的。

PHP默认是会在日志和标准输出(如果是fpm模式标准输出就是页面)

error_reporting的参数是错误级别。表示什么样子的级别才应该触发错误。如果我们告诉PHP,所有错误级别都不需要触发错误,那么,不管是日志,还是页面,都不会显示这个错误,就相当于什么都没有发生。

display_errors是控制是否要在标准输出展示错误信息

log_errors则是控制是否要在日志中记录错误信息。

error_log是显示错误日志的位置,这个在php-fpm中往往会被重写,于是往往会发现的是cli和fpm的错误日志竟然不是在同一个文件中。

ignore_repeated_errors这个标记控制的是如果有重复的日志,那么就只会记录一条,比如下面的程序:

本来会出现两次NOTICE的,但是现在,只会出现一次了...

track_errors开启会把最后一个错误信息存储到变量里面去,这个可能在对记日志的时候会有一些用处吧。不过我觉得真是没啥用...

html_errors和docref_root两个是个挺有人性化的配置,配置了这两个参数以后,我们返回的错误信息中如果有一些在文档中有的信息,就会变成链接形式。

能让你快速定位到我们出现错误的地方。是不是很人性~

php-fpm中的配置

php-fpm的配置中也有一个error_log配置,这个很经常会和php.ini中的error_log配置弄混。但他们记录的东西是不一样的,php-fpm的error_log只记录php-fpm本身的日志,比如fpm启动,关闭。

而php.ini中的error_log是记录php程序本身的错误日志。

那么在php-fpm中要覆盖php.ini中的error_log配置,就需要使用到下面几个函数:

php_flag

php_value

php_admin_flag

php_admin_value

这四个函数admin的两个函数说明这个变量设置完之后,不能在代码中使用ini_set把这个变量重新赋值了。而php_flag/value就仍然以php代码中的ini_set为准。

slowlog是fpm记录的,可以使用request_slowlog_timeout设置判断慢日志的时长。

总结

我们经常弄混的就是日志问题,以及某些级别的日志为何没有记录到日志中。最主要的是要看error_log,display_errors, log_errors这三个配置,只是在看配置的时候,我们还要注意区分php.ini里面的配置是什么,php-fpm.ini里面的配置是什么。

好吧,我觉得弄懂这些配置,基本就没有php日志记录不了的WTF的问题了。

展开
收起

PHP7.1.1和7.0.15正式发布:源码下载

1月19日消息 作为全球最流行的编程语言之一,PHP语言目前服务于全球超过81.7%的网站,今日,PHP 7的更新版PHP 7.1.1和7.0.15已正式发布,有需要的IT之家网友可以在此下载。IT之家

PHP 7.1 (7.1.1)

下载源代码[26.15MB]

VC14 x86 Non Thread Safe (2017-Jan-18 21:06:18)

Zip[21.25MB]

sha1: 0617423638b708c0bc2187b82d5d02757a5bbc80

Debug Pack[20.65MB]

sha1: a26857db59b3fea82a1b693d0ea2162eb309cbfb

VC14 x86 Thread Safe (2017-Jan-18 21:06:49)

Zip[21.29MB]

sha1: 5f80a93f4fcdc3caa2faae182e39a0b69be3397f

Debug Pack[20.68MB]

sha1: 7ae69a1608a732282f2bd833983327d49449f3d2

VC14 x64 Non Thread Safe (2017-Jan-18 21:06:20)

Zip[23.21MB]

sha1: aede63d1123d3a586fad1b669a0e52cc8bba5e4b

Debug Pack[20.76MB]

sha1: 4c7f5191b88edfeb98b67ea413deca8c14be2b68

VC14 x64 Thread Safe (2017-Jan-18 21:06:35)

Zip[23.28MB]

sha1: 84aefb5b1f4148a1895e8ae88726279a57850629

Debug Pack[20.74MB]

sha1: b0111a94fb646bcef1f149bbfa3e8e735895d7f6

PHP 7.0 (7.0.15)

下载源代码[25.5MB]

VC14 x86 Non Thread Safe (2017-Jan-18 00:32:27)

Zip[21.11MB]

sha1: 59f936916e365f70fbeb9c106db1355cee9c0e14

Debug Pack[20.12MB]

sha1: 3ae9b4a2ac20be8f58db638e61ca9f1ece07ef75

VC14 x86 Thread Safe (2017-Jan-18 00:32:27)

Zip[21.17MB]

sha1: 120b7f2bbd153c7bafccf3381f63f8190bdea992

Debug Pack[20.22MB]

sha1: 28a7d49556b92bef809e58dcb076c6b2270051de

VC14 x64 Non Thread Safe (2017-Jan-18 00:32:26)

Zip[23.05MB]

sha1: 320d247d5087f5129082a47215578b9b047ae959

Debug Pack[20.22MB]

sha1: 162e1b0669ea3989b89986169456963cfdf7097e

VC14 x64 Thread Safe (2017-Jan-18 00:32:28)

Zip[23.14MB]

sha1: d49f5fb61edba9a7d53d469f11d7ec13f1207d86

Debug Pack[20.26MB]

sha1: 36d12a89b90accedfcbf24ca3b528ba7c2d64a6c

展开
收起

微软将放弃Windows对PHP的支持

IT之家 7 月 12 日消息 据微软官方介绍,微软将在 Windows 上放弃对 PHP 的支持。从 Windows Vista 开始 Windows 就开始支持 PHP。

Microsoft PHP 项目经理 Dale Hirt 近日提供了以下信息。

我们知道,对于漏洞修复,当前的发布日期是 2 年,而对于安全修复,则是 1 年之后。这意味着 PHP 7.2 将在 11 月停止支持。PHP 7.3 仅在 11 月才进入安全修复模式。PHP 7.4 将继续进行一年的错误修复,然后再进行一年的安全修复。只要官方支持,我们致力于在 Windows 上针对 7.2、7.3 和 7.4 维护 PHP 的开发和构建。但是,我们不会以 8.0 及更高版本的任何能力支持 Windows 的 PHP。

IT之家了解到,如果要在 Windows 上运行最新的 PHP 版本,则需要使用 WSL 并在 Linux 环境中运行 PHP。

展开
收起

PHP 7.1.27/7.2.16/7.3.3发布

IT之家3月8日消息 日前,PHP官方正式发布了PHP 7.1.27、PHP 7.2.16、PHP 7.3.3,这三个版本的PHP已经可以在PHP官网上下载。

根据官方给出的更新日志,PHP 7.2和7.3中主要修复了数据库连接方面的问题,而PHP 7.1则修复了几个空指针、内存溢出以及未初始化问题。

值得注意的是,PHP此前发文提醒还在使用PHP7.1以下的用户尽快升级,因为PHP 7.1以下版本已经在今年一月份停止支持,如果网站继续使用这些老版本的PHP很有可能遭受攻击。

目前,PHP官方支持三个版本,分别是PHP 7.1、PHP 7.2和PHP 7.3,而PHP 7.1也将在2019年12月1日停止支持。所以官方目前推荐用户向PHP 7.2以上版本迁移。

不过,现阶段PHP 7.0以下版本仍然占据了PHP网站的3/4以上,所以对于这部分用户来讲,尽快升级PHP 7.2以上版本非常有必要。

展开
收起