Warning: Undefined array key "aHxDTi" in /www/wwwroot/hesiwei.cn/wp-includes/rewrite.php on line 1

Warning: Undefined array key "wOZyTK" in /www/wwwroot/hesiwei.cn/wp-includes/class-wp-block-type-registry.php on line 1
个人网络日志 – 第 4 页

Warning: Undefined array key “bjFGYX” in /www/wwwroot/hesiwei.cn/wp-content/themes/twentytwentyfive/patterns/hidden-blog-heading.php on line 1

博客

  • SSH认证免密码登录

    客户端:

    #ssh-keygen -t rsa

    Generating public/private rsa key pair.

    Enter file in which to save the key (/Users/hisway/.ssh/id_rsa):

    Enter passphrase (empty for no passphrase):

    Enter same passphrase again:

    Your identification has been saved in /Users/hisway/.ssh/id_rsa.

    Your public key has been saved in /Users/hisway/.ssh/id_rsa.pub.

    The key fingerprint is:

    0d:24:c6:8d:f0:d9:b2:01:08:67:89:8a:5f:20:8e:b7 hisway@hisway.lan

    The key’s randomart image is:

    +–[ RSA 2048]—-+

    |.ooooooo.        |

    |oo+  +o=.        |

    |=. .  = o        |

    |+.. .  + o       |

    | o o  . S .      |

    |  E              |

    |                 |

    |                 |

    |                 |

    +—————–+

    #scp /Users/hisway/.ssh/id_rsa.pub  root@162.243.*.*:/home/root/id_rsa.pub

    服务端:

    #cat id_rsa.pub >>/root/.ssh/authorized_keys

    # vi /etc/ssh/sshd_config

    RSAAuthentication yes

    #RSA认证

    PubkeyAuthentication yes

    #开启公钥验证

    AuthorizedKeysFile    .ssh/authorized_keys

    #验证文件路径

    PasswordAuthentication no

    #禁止密码认证

    PermitEmptyPasswords no

    #禁止空密码

    UsePAM no

    #禁用PAM

    最后保存,重启

    #

    service sshd restart

     

  • 在 Ubuntu 中安装 Laravel

    安装 Composer

    curl -sS https://getcomposer.org/installer | php 

    下载完成之后将它放在系统 PATH 中,供全局调用。

    mv composer.phar /usr/local/bin/composer

    安装 Larave

    composer create-project laravel/laravel /home/wwwroot/laravel/

    执行下面的命令来授予 storage 文件夹的读写操作权限

    chgrp -R www /home/wwwroot/laravel/

    chmod -R 775 /home/wwwroot/laravel/app/storage

    建立网站域名指向/home/wwwroot/laravel/public(略)

    输入域名若提示:

    open_basedir restriction in effect. File() is not within the allowed path(s):XXX

    open_basedir可将用户访问文件的活动范围限制在指定的区域,通常是当前网站根目录的路径。

    在Apache的httpd.conf中VirtualHost的相应设置方法: 

    php_admin_value open_basedir “/home/wwwroot/laravel:/home/wwwroot/laravel/public:/tmp/:/var/tmp/:/proc/“

    重启apache解决

  • Namecheap买的PositiveSSL证书的激活使用

    网购星期一剁手的六块钱ssl证书一直放着没动,今天有空去激活了,给9块钱的curl.xyz域名加上了https,囧~
    PositiveSSL认证是Comodo的入门级产品,PositiveSSL只对你的域名所有权进行认证,PositiveSSL已经被几乎所有流行的浏览器支持,只要你的PositiveSSL认证正常,用浏览器打开你提供的https网页就像普通的http网页一样,浏览器不会弹出安全警告。
    ox01 
    在帐户的ssl列表中选择未曾使用过的SSL认证服务,点击右边的Active链接,开始申请激活你的SSL认证,接下来我们要发送一个认证签名请求文件给namecheap来完成激活过程,通常情况下,选择apache+openssl类型的签名即可,如果网络服务器不是apache或者apache兼容的服务器,可以在列表里面选择适合的认证类型。
    ox02
    ssh 到域名所在的服务器,Namecheap SSL要求是生成2048位的密钥文件:
    openssl genrsa -out privkey.key 2048
    生成证书请求文件:
    openssl req -new -key privkey.key -out cert.csr
    执行以上命令后,会要求你填写基本信息,例如国家、邮箱等。其中有个需要特别注意到地方是Common Name,必须填写你的域名,而且不能有大写字母,否则认证申请会失败。另外在制作CSR文件和私钥的时候,会有一步询问你私钥的密码,可以不输入。
    用命令:cat cert.csr和cat privkey.key 能看到刚刚生成的CSR和Key文件内容了。其中SCR文件内容就是我们刚刚要激活SSL证书要用到的。
    ox03
    把这个csr文件的内容复制到Namecheap刚才申请时页面上的文本输入框里面,并且点击next,进行下一步。
    接下来要求你提供一个能表明你是域名所有者的邮箱来进行验证,你可以从他提供的选项中选择一个,确保你的邮箱可以正常接收邮件。选择一个邮箱后,点击next,你的申请就算提交了,下面需要等授权公司Comodo来验证你是域名所有者身份。
    收到邮件后点击邮箱里面的 here 链接,并且输入下面的验证码,提交给Comodo即可。接着继续等,comodo会将生成的ssl证书文件发送给你。
    ox04
    将自己Key文件,外加刚刚收到的.crt,共两个文件一同上传到VPS主机的某一个文件夹当中。编辑Nginx配置文件,在Server中主要是添加以下代码:
    listen 443;
    ssl on;

    ssl_certificate /root/curl_xyz.crt;

    ssl_certificate_key /root/privkey.key;

    ssl_session_timeout 5m;
    重启Nginx完成。

  • Open current folder in iTerm

    看到一个Alfred workflows,在终端中打开finder当前目录,依样画葫芦撸了个在iTerm中打开finder当前目录。
    Alfred workflows下载地址:
    https://github.com/hisway/workflows/raw/master/Open%20iTerm%20At%20Current%20Finder%20Path.alfredworkflow

  • 使用 Vagrant 搭建跨平台开发环境

    Vagrant 是一款用来构建虚拟开发环境的工具,非常适合 php/python/ruby/java 这类语言开发 web 应用。可以通过 Vagrant 封装一个 Linux 的开发环境,分发给团队成员,成员可以在自己的桌面系统(Mac/Windows/Linux)上开发程序,代码却能统一在封装好的环境里运行。

    安装步骤1. 安装 VirtualBox

    虚拟机还是得依靠 VirtualBox 来搭建,免费小巧。
    下载地址:https://www.virtualbox.org/wiki/Downloads

    2. 安装 Vagrant

    下载地址:http://downloads.vagrantup.com/ 根据提示一步步安装。

    此外,还得下载官方封装好的基础镜像:
    Ubuntu precise 32 VirtualBox http://files.vagrantup.com/precise32.box
    Ubuntu precise 64 VirtualBox http://files.vagrantup.com/precise64.box

    其他系统的镜像下载:http://www.vagrantbox.es/

    3. 添加镜像到 Vagrant

    假设我们下载的镜像存放路径是 ~/box/precise64.box,在终端里输入:
    $ vagrant box add ubuntu64 ~/box/precise64.box

    ubuntu64 是我们给这个 box 命的名字,~/box/precise64.box 是 box 所在路径

    4. 初始化开发环境

    创建一个开发目录(比如:~/dev),你也可以使用已有的目录,切换到开发目录里,用  ubuntu64 镜像初始化当前目录的环境:
    $ cd ~/dev # 切换目录
    $ vagrant init  ubuntu64 # 初始化

    $ vagrant up # 启动环境

    你会看到终端显示了启动过程,启动完成后,我们就可以用 SSH 登录虚拟机了,剩下的步骤就是在虚拟机里配置你要运行的各种环境和参数了。
    $ vagrant ssh # SSH 登录
    $ cd /vagrant # 切换到开发目录,也就是宿主机上的 `~/dev`

    ~/dev 目录对应虚拟机中的目录是 /vagrant

    5. 其他设置

    Vagrant 初始化成功后,会在初始化的目录里生成一个 Vagrantfile 的配置文件,可以修改配置文件进行个性化的定制。

    Vagrant 默认是使用端口映射方式将虚拟机的端口映射本地从而实现类似 http://localhost:80 这种访问方式,这种方式比较麻烦,新开和修改端口的时候都得编辑。相比较而言,host-only 模式显得方便多了。打开 Vagrantfile,将下面这行的注释去掉(移除 #)并保存:
    config.vm.network :private_network, ip: “192.168.33.10”

    重启虚拟机,这样我们就能用 192.168.33.10 访问这台机器了,你可以把 IP 改成其他地址,只要不产生冲突就行。

    6. 打包分发

    当你配置好开发环境后,退出并关闭虚拟机。在终端里对开发环境进行打包:
    $ vagrant package
    打包完成后会在当前目录生成一个 package.box 的文件,将这个文件传给其他用户,其他用户只要添加这个 box 并用其初始化自己的开发目录就能得到一个一模一样的开发环境了。

    7. 常用命令
    $ vagrant init # 初始化

    $ vagrant up # 启动虚拟机

    $ vagrant halt # 关闭虚拟机

    $ vagrant reload # 重启虚拟机

    $ vagrant ssh # SSH 至虚拟机

    $ vagrant status # 查看虚拟机运行状态

    $ vagrant destroy # 销毁当前虚拟机

    更多内容请查阅官方文档 http://docs.vagrantup.com/v2/cli/index.html

    8. 注意事项

    使用 Apache/Nginx 时会出现诸如图片修改后但页面刷新仍然是旧文件的情况,是由于静态文件缓存造成的。需要对虚拟机里的 Apache/Nginx 配置文件进行修改:
    # Apache 配置添加:

    EnableSendfile off

    # Nginx 配置添加:
    sendfile off;

  • Virtualbox虚拟机Linux Guest的Additions安装方法

    如果是windows做Guest,直接单击菜单栏 “Insert Guest Additions CD Image… ” 就可以将 Additions CD 自动加载到Guest里的虚拟光驱里,但是Linux是不行的,因为Linux需要root权限才可以mount CD Image。

    做法是在Guest里打开终端,输入:
    sudo mount /dev/sr0  /media/cdrom
    把sr0挂载到 /media/cdrom 里,如果没有cdrom,可以先mkdir一个,挂载到其他位置也可以。

    然后查看一下
    [web@doco6-lamp ~ ]$ ls /mnt/cdrom
    32Bit        autorun.sh  runasroot.sh              VBoxWindowsAdditions-amd64.exe
    64Bit        cert        VBoxLinuxAdditions.run    VBoxWindowsAdditions.exe

    AUTORUN.INF  OS2         VBoxSolarisAdditions.pkg  VBoxWindowsAdditions-x86.exe

    里面有 VBoxLinuxAdditions.run 这一项,直接运行即可。

    sudo sh ./VBoxLinuxAdditions.run

    尝试 sh ./VBoxLinuxAdditions.run 报错:

      Installing the Window System drivers …fail!
      (Could not find the X.org or XFree86 Window System.)

    搜到以下命令:
    sudo apt-get install xserver-xorg xserver-xorg-core

    以上是重装过程,全部解决。

    安装后,reboot一下就可以了。

  • 获取 ajax return 的返回值

    function check_phone (phone) {
    $.ajax({

    url:URL,//请求的url地址

    dataType:”json”, //返回格式为json

    timeout: 10000,

    async:ture,//请求是否异步,默认为异步

    data:{phone:phone}, //参数值

    type:”POST”, //请求方式

    beforeSend:function(){

    },

    success:function(req){

    if(req.status == 0){

    return false;

    }else{

    return true;

    }

    },

    complete:function(){

    },

    error:function(XMLHttpRequest, textStatus, errorThrown){

    return false;

    }

    });

    }

    上面的函数,想返回true和false,在执行alert(check_phone(phone))时候是undefined,感觉在ajax中返回实际上函数没有返回值,应该在ajax外面执行return操作。

    function check_phone (phone) {

    var res = false;

    $.ajax({

    url:URL,//请求的url地址

    dataType:”json”, //返回格式为json

    timeout: 10000,

    async:false,//请求是否异步,默认为异步

    data:{phone:phone}, //参数值

    type:”POST”, //请求方式

    beforeSend:function(){

    },

    success:function(req){

    if(req.status == 0){

    res=false;

    }else{

    res=true;

    }

    },

    complete:function(){

    },

    error:function(XMLHttpRequest, textStatus, errorThrown){

    return false;

    }

    });

    return res;

    }

    注意:async:false。设置为同步的,必须等ajax执行完,返回相应返回值,否则直接return初始的var res=false了。

  • Laravel requires the Mcrypt PHP extension.

    I am trying to use the migrate function in Laravel 4 on OSX, however I am getting the error

    ​Laravel requires the Mcrypt PHP extension.

    What is wrong, and how can I fix it?

  • 最近博客动态

    1,博客从国外移到了腾讯云,响应时间大大缩短,访问速度明显加快。

    2,启用了多说评论插件代替wp自带评论,方便管理。

    3,使用了七牛镜像云存储插件,CDN 加速js|css|png|jpg|jpeg|gif|ico,缓解服务器压力。

  • mac下安装oci8扩展来支持php连接oracle

    下载oci8扩展包:
    http://pecl.php.net/package/oci8

    cd到解压目录执行phpize,发现错误,

    错误提示:
    Cannot find autoconf. Please check your autoconf installation and the
    $PHP_AUTOCONF environment variable. Then, rerun this script.

    解决方法:
    curl -OL http://ftpmirror.gnu.org/autoconf/autoconf-latest.tar.gztar xzf autoconf-latest.tar.gz
    cd autoconf-*./configure –prefix=/usr/local
    make
    sudo make install