Mac配置sshd

修改sshd_config文件把password验证方式打开
修改这个文件要用sudo

PasswordAuthentication yes

1
2
3
4
5
sudo ssh-keygen -t dsa -f /etc/ssh/ssh_host_dsa_key
sudo ssh-keygen -t rsa -f /etc/ssh/ssh_host_rsa_key
sudo ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
sudo ssh-keygen -t ed25519 -f /etc/ssh/ssh_host_ed25519_key
sudo /usr/sbin/sshd

Mac配置PHP7环境

在Mac下面本来就安装有Apache2和PHP5.5.3
这里为了配置更新的环境就稍微折腾了一下,主要配置的就是MySQL和PHP,Apache就使用自带的就行。

配置MySQL:

MySQL在MySQL的官网上直接下载dmg包之后安转就行了。
这里Mac版本的MySQL下载地址是

https://dev.mysql.com/downloads/file/?id=461365

下载之后在安装完成以后注意他会提示有一个默认的密码,一定要给记下来,一会改密码用的上。
再安装完成了,打开偏好设置,最下面有一个MySQL的控制面板,在里面开启MySQL
然后在终端中修改MySQL的密码

1
2
3
4
ln -s /usr/local/mysql/bin/mysql /usr/local/bin
mysql -uroot -p #输入刚才提示的密码,登录以后开始修改密码
set password for root@localhost=password('password');
exit

配置PHP7环境

添加PHP7的源

1
2
3
4
5
6
brew tap homebrew/dupes  
brew tap homebrew/versions
brew tap homebrew/homebrew-php
brew install php70
brew unlink php55
brew link php70 --with-httpd24

需要等待比较久的时间,因为是直接去官方下载。

配置Apache

直接vim Apache的配置文件,记得使用sudo,否则没权限写入。
当然不用sudo也可以,在修改完成以后执行 :w !sudo tee %
然后就可以使用管理员权限写入了。
然后打开Apache的配置文件主要得目的就是修改DocumentRoot和PHP模块文件

1
sudo vim /etc/apache2/httpd.conf

找到DocumentRoot改成你想要的目录,但是这个目录必须要有权限,一般给个777绝对ok
并且找到下面的地方,把PHP5的模块改成下面的内容:

1
2
#Enable PHP 7 module  
LoadModule php7_module /usr/local/opt/php70/libexec/apache2/libphp7.so

关于PHP的回调函数

  1. 普通函数的定义及调用与js相似,这个定义方式无需返回值,哪怕是有返回值在声明的时候也无需添加
  2. 再后来的PHP版本中是添加了一向很有用的功能就是可在函数定义之前进行调用
1
2
3
4
5
6
7
8
9
10
11
12
echo add(1,2);
echo "</br>";
function add($a,$b){
return $a+$b;
}
function sub($a,$b){
return $a-$b;
}
echo add(23,12);
echo "</br>";
echo sub(23,22);
echo "</br>";
  1. 下面是一个非常有用的功能就是变量函数,顾名思义就是将函数作为一个变量。
  2. 其优点在于用同一个变量可以调用不同的函数,非常类似于函数的多态调用。
1
2
3
4
5
6
$var="add";
echo $var(4,2);
echo "</br>";
$var="sub";
echo $var(4,2);
echo "</br>";
  • 回调函数就是在给一个函数传入一个简单的参数无法解决问题的时候给他传入一个过程,从而达到目的

  • 在函数调用时给他传入一个函数作为参数就是函数回调。

    1
    2
    3
    $arr=array(2,3,5,4,1,6,7,9,8);
    var_dump($arr);
    echo "</br>";
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    //这里是自定义回调函数,返回-1是指将两个元素交换,0和1是不发生改变。
    function myrule($a,$b){
    if ($a>$b){
    return 1;
    }
    elseif ($a<$b){
    return -1;
    }
    else{
    return 0;
    }
    }
    //usort就是系统函数,但是他的第二个参数是回调函数,这个函数参数就是排序规则
    usort($arr,"myrule");
    var_dump($arr);
    echo "</br>";
  • 自己写回调函数,使用变量函数以及回调完成一个简单的过滤条件,如果需多个条件同时满足给一个&&关系即可。
  • 其中使用的变量函数可以使用系统中的一个叫做call_user_func_array()的函数进行调用,他有两个参数分别是回调函数名称,以及参数数组
  • call_user_func_array(“demo”,array(1,3));其优点在于array中的参数的数量可以比原函数的少,既有默认缺省参数的时候。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
//rule1除去数组中是三的倍数的数
function rule1($a){
if ($a%3==0){
return true;
}else{
return false;
}
}
//rule2是除去数组中的回文数(从左边读与从右边读是一样的)
function rule2($a){
if ($a==strrev($a)){
return true;
}else{
return false;
}
}
function demo($n,$var){
for ($i=0;$i<$n;$i++){
if (call_user_func_array($var,array(23)))
//if ($var($i))
{
continue;
}else{
echo $i."<br>";
}
}
}
$var="rule1";
demo(100,$var);
echo "</br>";
echo "<hr>";
$var="rule2";
demo(200,$var);
echo "</br>";
  1. 注意在调用对象里面的方法时我们需要传入一个匿名对象,后面指定函数名

  2. 而在调用类中的静态方法时只需指定类名即可。

    以上两种情况都不能完全使用变量函数只能用系统的回调call_user_func_array(),只是变量函数来传参而不调用

1
2
3
4
5
6
7
8
class A{
function one(){
}
static function two(){
}
}
demo(200,array(new A,"one"));
demo(200,array("A","two"));

VirtualEnv

修改配置文件

1)检查pip.conf文件是否存在

1
2
3
>> cd ~
>> mkdir .pip
>> ls ~/.pip

2)直接编辑pip.conf

1
sudo vi ~/.pip/pip.conf 

修改成如下的格式

1
2
3
4
[global]
index-url = https://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host = mirrors.aliyun.com

临时作用的方式

1
pip3 install 包名 -i https://mirrors.aliyun.com/pypi/simple/

Mac安装包版本的Python

  1. 安装配置Python版本管理器pyenv

brew install pyenv

  1. 查看已经安装了哪些版本的Python

pyenv versions
其中版本号前面有*号的就是当前生效的版本,查看当前生效的版本也可以用
pyenv version

  1. 安装指定版本的Python

pyenv install 3.7-dev

安装完成后必须rehash
pyenv rehash

  1. 切换和使用指定的版本Python版本有3种方法

系统全局用系统默认的Python比较好,不建议直接对其操作
pyenv global system
用local进行指定版本切换,一般开发环境使用。
pyenv local 2.7.10
对当前用户的临时设定Python版本,退出后失效
pyenv shell 3.7-dev
取消某版本切换
pyenv local 3.5.0 –unset
优先级关系:shell——local——global

另外最重要的一点,当执行了pyenv shell/local/global 命令后,一定要执行 source ~/.zshrc ,不然切换版本就不会生效。

最后执行

1
2
3
4
5
6
➜  ~ pyenv versions
system
* 3.7-dev
➜ ~
➜ ~ python -V
Python 3.7-dev

两个 python 的虚拟管理工具

两个 python 的虚拟管理工具


virtualenv

安装 virtualenv

1
sudo apt-get install python-virtualenv

创建 env

1
virtualenv ENV

启动 env

1
2
cd ENV
source ./bin/activate

退出虚拟环境

1
deactivate

virtualenv 的加强版 virtualenvwrapper

优点:

  1. 将所有虚拟环境整合在一个目录下
  2. 管理(新增,删除,复制)虚拟环境
  3. 切换虚拟环境

安装:

1
sudo easy_install virtualenvwrapper  

此时还不能使用virtualenvwrapper,默认virtualenvwrapper安装在/usr/local/bin下面,实际上你需要运行virtualenvwrapper.sh文件才行,先别急,打开这个文件看看,里面有安装步骤,我们照着操作把环境设置好。

创建目录用来存放虚拟环境

1
mkdir $HOME/.virtualenvs

配置脚本文件

在 bashrc 文件中进行如下操作

1
2
3
4
5
6
7
8
    export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh
source ~/.bashrc
​````
此时virtualenvwrapper就可以使用了。

#### 基本操作
1. 列出基本环境
workon/lsvirtualenv
1
2. 新建虚拟环境
mkvirtualenv [虚拟环境名称]
1
3. 启动/切换虚拟环
workon [虚拟环境名称]
1
4. 删除虚拟环境
rmvirtualenv [虚拟环境名称]
1
5. 离开虚拟环境
deactivate
1