通过SD卡配置树莓派WIFI

每当重新安装树莓派的系统或者初始化一块全新的树莓派都会遇到这样的问题:连接WIFI。那当我们没有显示器和键盘的情况下怎末可以将树莓连接到当前的WIFI网络呢?

方法非常简单,首先在SD卡的根目录下添加一个名为 wpa_supplicant.conf的文件,然后在该文件内添加以下的内容:

ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
network={
  ssid="你的WIFI名"
  psk="WIFI密码"
}

network={
  ssid="你的WIFI名2"
  psk="WIFI密码2"
}

python中函数参数的打包和解包

最近学习scipy中的optimize模块的几个函数,包括fsolve,leastsq。注意到里面有几处函数调用,其参数调用不是很了解。于是百度/Google了一下。看了看觉得收益匪浅。

以fsolve为例,其定义如下:

def fsolve(func, x0, args=(), fprime=None, full_output=0, col_deriv=0, xtol=1.49012e-8, maxfev=0, band=None, epsfcn=None, factor=100, diag=None)

Parameters

func : callable “f(x, *args)“
A function that takes at least one (possibly vector) argument.

x0 : ndarray
The starting estimate for the roots of “func(x) = 0“.

args : tuple, optional
Any extra arguments to `func`.

fprime : callable(x), optional
A function to compute the Jacobian of `func` with derivatives across the rows. By default, the Jacobian will be estimated.

其中args参数的传递,一直不太明白,是怎么传的,如何赋值。调用的时候是怎么判断函数需要几个参数的(这个应该是自己定义的,自己清楚)。今天查了一下函数参数的打包与解包才算弄清楚。

摘录关键部分如下:

python中的 * 和 ** ,能够让函数支持任意数量的参数,它们在函数定义和调用中,有着不同的目的。

一、打包参数

* 的作用:在函数定义中,收集所有位置参数到一个新的元组,并将整个元组赋值给变量args。

** 的作用:在函数定义中,收集关键字参数到一个新的字典,并将整个字典赋值给变量kwargs。

二、解包参数

* 的作用:在函数调用中,* 能够将元组或列表解包成不同的参数。

** 的作用:在函数调用中,** 会以键/值的形式解包一个字典,使其成为一个独立的关键字参数。

打包和解包并不能脱离函数而存在!!

容器搭建wordpress的简单应用

打算尝试一下当前很火的docker,于是pull了下试试

docker pull wordpress

还有很重要的数据库,选项很少,mysql/mariadb,同样

docker pull mariadb

之后就是配置了,我是先启动的wordpress,再配置的数据库,感觉顺序反过来更好吧(其实一样)

$ docker run –name wordpress -v /root/wp:/var/www/html –network net -p 127.0.0.1:8080:80 -d wordpress

$ docker run –name db -v /root/wpdb:/var/lib/mysql –network net –network-alias db -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb

-v 参数后面“:“分隔的连个目录,是将容器内的目录映射到容器外,前面的为宿主机的目录,后面为容器内的目录

-p 为端口映射,同上。

wordpress里的端口映射的宿主机这里用的127.0.0.1(localhost不好使),我这用的nginx反向代理,用的比较习惯,certbot后可以方便加https


network 参数中的net是如下命令新建的

docker create network net

默认创建bridge类型的网络接口

network-alias db

上一句制定别名,这样同一个网络下的主机直接用这个别名访问,省得去查IP

此时如果打开网页,安装wordpress,填上数据库参数,会提示能连接上mysql,但不能选择数据库(默认的数据库名称wordpress),原因是还没建立数据库文件(表不用建)。执行下面的docker语句进入交互模式,建立数据库

$ docker run -it –network net –rm mariadb mysql -hdb -uexample-user -p

输入密码后,基本一句

create database wordpressdb;

这样wordpress就可以了。

这样在nginx下的配置文件加一个server快就好了!!

更新wordpress的URL

使用wp-config.php文件更改WordPress网站URL

对于这种方法,将站点URL添加到名为wp-config.php的WordPress配置文件中。此文件位于网站的根文件夹中,并且包含重要的WordPress设置。

define( ‘WP_HOME’, ‘https://www.valley2.top’ );

define( ‘WP_SITEURL’, ‘https://www.valley2.top’ );

保存所做的更改并将其上传回服务器。之后,访问网站以确保一切正常。之后这两句可以注释掉。

这只是其中一种方的法。更多参考 这里