只为一句:我命由我不由天

起初,我是抱着打发时间的心态来看的这部哪吒,不曾想,画面一出来,自己就一下子就被吸引住。首先,画面很清晰,而且细腻。另外,胖胖的、憨态可掬的太乙真人,一口流利的特色方言,激起我浓浓的观影兴趣。果不其然,随着剧情的推进,越发觉得这是一部难得的好片子。

神话里哪吒是怎样诞生的,我不是很清楚。但该剧的人物设定,我觉得很合理,不会觉得生搬硬套。全片的中心思想是:我命由我不由天。无论是主人公哪吒,还是申公豹,老龙王,抑或是三太子,他们都遭遇了命运的不公,承受了旁人的偏见。如果说他们后来的所作所为,完全是因了他们对于命运的抗争也毫不为过。

申公豹,为了搭上十二仙的最后一个排位,不惜用手段掉包灵珠和魔丸来达到自己的目的。他这样做的原因无非就是他认为自己受到元尊的不公平对待和偏见,因为他是唯一的异类,是妖族,而其他神仙都是人族。所以他才更想证明自己,想让自己变得和其他神仙一样平等,哪怕冒着被师父惩罚的风险也在所不惜。

老龙王,同样是为了摆脱天宫对龙族的不公平对待,才和申公豹一起,谋划让灵珠转世成自己的儿子,替他完成使龙族摆脱海底炼狱命运的愿望。三太子,其实也挺无辜,好好的一个灵珠,却因为自己父亲和师父的目标而沦为他们的工具。当然,最后他自己也意识到,只有按照他父亲和师父的计划,他和整个龙族才能摆脱以往的悲惨命运,摆脱天宫对他们的偏见,才不惜反目唯一的朋友哪吒,并准备活埋整个陈塘关。

哪吒,更不必说,整部剧的主人公。他本该是灵珠转世,双亲又都是陈塘关英雄,以后一家人妥妥的登仙一族。不料最后他却是成了魔丸转世。虽如此,哪吒的父亲和母亲还是以父母该有的爱心抚养哪吒,他父亲更是不惜一名换一命,这在整部剧的结尾给了我们一个大大的泪点。但这不是哪吒想要的结局,他说,我自己的命自己抗。当他说出“去你的鸟命,我命由我不由天,是魔是仙,我自己说了才算”,我们就知道,尽管哪吒体内充满了魔性,但他那颗不屈从心,坚持要活出自我的心,最终指引他做出惊天动地的举动。

整部剧下来,情节流畅,叙事清晰明了,人物性格鲜明,对话贴近生活,主题明确。当然,画面呈现也十分出彩,景美人美,人物表情动作也一点不僵硬,是为佳片。

ThinkPHP5.1 如何连接sqlite3数据库

TP5.1可以给模块进行单独配置,包括模板、数据库等。在不影响其他模块的前提下,我尝试给一个新的模块配置sqlite数据库,具体配置如下:

// 由于sqlite数据库是以文件保存的,所以我在网站根目录新建了db目录
return [
    'type' => 'sqlite',
    'dsn'  => 'sqlite:' . Env::get('root_path') . 'db/mynewdb.db',
    // 'charset' => 'utf8',
    'prefix' => 'b2b_'
];

开始时我犯了一个错误,受ezSQL的影响,dsn被我错误的写成:

'dsn'  => 'sqlite3:' . Env::get('root_path') . 'db/mynewdb.db',

结果,程序报错could not find driver

希望TP官方能够提供多几种数据库的连接实例。

PHP 301跳转

为了普通网民浏览网站的习惯,以及便于提升网站权重,有时候需要把不带www的顶级域名跳转到带www的二级域名,下面以csensix.com 为例讲解如何通过PHP实现301跳转。

$request_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '';
if($_SERVER['HTTP_HOST'] == 'csensix.com')
{
    header('HTTP/1.1 301 Moved Permanently');
    header('Location: http://www.csensix.com' . $request_uri);
}

CentOS 7.5 firewalld 常规使用(包括屏蔽IP、状态查询、端口开放/关闭等)

系统从6升级到7之后,默认的防火墙从iptables更换到了firewalld,使用起来差别很大,现列出常用的功能,便于查阅。

如果是新安装的系统,也没有开启过firewalld,那么建议使用firewall-offline-cmd命令开启ssh端口。因为firewall-cmd在firewalld未启动时不能进行设置,一旦开启(假如还未开启ssh端口),那么你将被断开连接。
#查看firewall状态;
firewall-cmd --state

#安装
yum install firewalld

#启动
systemctl start firewalld 

#设置开机启动
systemctl enable firewalld

#关闭
systemctl stop firewalld

#取消开机启动
systemctl disable firewalld

#禁止IP(123.44.55.66)访问机器,记得加 permanent 参数,否则系统重启后无效
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="123.44.55.66" drop'

#禁止一个IP段,比如禁止116.255.*.*
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="116.255.0.0/16" drop'

#禁止一个IP段,比如禁止116.255.196.*
firewall-cmd --permanent --add-rich-rule='rule family=ipv4 source address="116.255.196.0/24" drop'

#禁止机器IP(123.44.55.66)从防火墙中删除
firewall-cmd --permanent --remove-rich-rule='rule family=ipv4 source address="123.44.55.66" drop'

#允许http服务(对应服务策略目录:/usr/lib/firewalld/services/)
firewall-cmd --permanent --add-service=http

#关闭http服务(对应服务策略目录:/usr/lib/firewalld/services/)
firewall-cmd --permanent --remove-service=http

#允许端口:3389
firewall-cmd --permanent --add-port=3389/tcp

#允许端口:1-3389
firewall-cmd --permanent --add-port=1-3389/tcp

#关闭放行中端口:3389
firewall-cmd --permanent --remove-port=3389/tcp

#查看防火墙规则(只显示/etc/firewalld/zones/public.xml中防火墙策略,在配置策略前,我一般喜欢先CP,以后方便直接还原)
firewall-cmd --list-all 

#查看所有的防火墙策略(即显示/etc/firewalld/zones/下的所有策略)
firewall-cmd --list-all-zones 

#查看防火墙所有开放的端口
firewall-cmd --zone=public --list-ports

#重新加载配置文件,更改配置后一定要重新加载配置文件
firewall-cmd --reload

Centos7.5 从Python2.7.5升级到Python2.7.16

Centos7 默认安装的python版本是2.7.5,由于某些平台提示建议更新版本,防止跨脚本攻击,所以现对其进行升级,更新至2.7.16版本(截至目前2019-8-12的最新版本)。

查看当前python版本

[root@csensix ~]# python -V

运行结果:Python 2.7.5

下载并安装最新版本 Python 2.7.16

下载

.tar.xz.tgz 压缩版本二选一,这里我下载的是体积较小的 .tar.xz 版本。

# tar.xz 版本
[root@csensix ~]# wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tar.xz

# tgz 版本
[root@csensix ~]# wget https://www.python.org/ftp/python/2.7.16/Python-2.7.16.tgz

解压

[root@csensix ~]# tar -xf Python-2.7.16.tar.xz

# 或者分两步
[root@csensix ~]# xz -d Python-2.7.16.tar.xz
[root@csensix ~]# tar xvf Python-2.7.16.tar

编译安装

[root@csensix ~]# cd Python-2.7.16
[root@csensix ~]# ./configure --prefix=/usr/local
[root@csensix ~]# make
[root@csensix ~]# make altinstall

为避免覆盖系统自带python,故没有选择常规的make install,而是使用了 make altinstall

修改默认python版本

安装完之后执行 python -V,此时显示的还是老的 2.7.5 版本,因为 /usr/bin/python 指向的还是原来的版本,所以需要做相应的更改。

首先,备份老版本

[root@csensix ~]# mv /usr/bin/python /usr/bin/python2.7.5

链接新版本

[root@csensix ~]# ln -s /usr/local/bin/python2.7 /usr/bin/python

至此,新版本安装基本完成。现在,python -V 显示的结果是 Python 2.7.16,如果希望访问老版本,那么执行 python2.7.5 即可,如下:

[root@csensix ~]# python2.7.5
Python 2.7.5 (default, Apr 11 2018, 07:36:10) 
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.

- 阅读剩余部分 -