您正在查看: 标签 php 下的文章

laravel Encryption 详解

laravel Encryption 详解

简介

Encryption是laravel自带的一个加密模块,让我们先来看看文档说明

Configuration

Before using Laravel's encrypter, you should set the key option of your config/app.php configuration file to a 32 character, random string. If this value is not properly set, all values encrypted by Laravel will be insecure.

意思就是在使用laravel的encrypter前,需要在config/app.php设置一下key(秘钥)和cipher(加密方式)。

# from config/app.php
'key' => env('APP_KEY'),
'cipher' => 'AES-256-CBC',

env方法指明了读取.env文件的APP_KEY,这个只能够通过 php artisan key:generate生成,也是整个应用程序的key,cipher表明了加密的方式,默认AES-256-CBC

- 阅读剩余部分 -

centos7 下安装php7&mysql

花了半天时间把另外一个服务器安装php7,并且安装mariadb

在此做下记录

首先按照官网来安装php7 php官网

但是其中configure是错误的,会导致报错

./configure --enable-fpm --with-mysql

改为

./configure --enable-fpm --with-mysqli

到这里基本安装php7就没什么大问题了,期间在./configure的时候可能会提示确实某些包,百度然后yum安装就好了

2.安装mysql

yum install mysql mysql-devel

然后会下载安装相应的mariadb版本

接着安装 yum install mariadb-server (我也不知道为什么mysql没有mysql-server)

安装完mariadb服务器版就多了mysql用户组,然后就进行权限赋值

chmod -R mysql:mysql /var/lib/mysql

接着设置开机启动以及启动
systemctl enable mariadb.service
systemctl start mariadb.service

然后运行 mysql -uroot

最后设置密码

UPDATE mysql.user SET Password=PASSWORD('password') where USER='root';
flush privileges;

Apache多个域名绑定到不同的子目录

  1. 修改host文件

    用记事本打开C:\Windows\System32\drivers\etc\hosts文件,最末尾加上两行,保存退出:
    
    127.0.0.1 localhost.com
    
    127.0.0.1 www.localhost.com
    
  2. 修改Apache的配置文件

    打开httpd.conf的文件,在最下面加上
    
        <VirtualHost localhost.com>  
            ServerAdmin raywill@qq.com  
            DocumentRoot D:\myweb\php  
            ServerName localhost.com  
            ErrorLog logs/m-error_log.txt  
            CustomLog logs/m_log.txt common  
        </VirtualHost>  
    

然后重启Apache。

访问localhost.com,然后你就发现大功告成了

原文链接

laravel的artisan命令

新建控制器
php artisan make:controller Admin/AdminHomeController
新建model
php artisan make:model Comment
新建migration
php artisan make:migration create_comments_table
生成密匙
php artisan key:generate
执行生成数据库操作
php artisan migrate

PHP中指定日期上某段时间

$date = '2015-08-15';
//输出 '2015-08-16'
echo date('Y-m-d', strtotime('+1 day', strtotime($date)));
//输出 '2015-08-21'
echo date('Y-m-d', strtotime('+5 days', strtotime($date)));
//输出 '2015-09-16'
echo date('Y-m-d', strtotime('+1 month', strtotime($date)));
//输出 '2016-09-16'
echo date('Y-m-d', strtotime('+1 year', strtotime($date)));

看到百度上都是在当前日期加时间,并没有指定时间,故此做下笔记

Windows更新xampp中的php版本

首先,先下载最新的PHP版本,官方下载地址

我下载的是32位的线程安全版本(不知为什么64位会报错,也许因为xampp原本版本是32位)

下载后放在一个php命名的文件夹中,然后把xampp中的php备份,建议直接命名为php1即可

然后把之前的php文件夹复制进xampp中

不知为何php中没有php.ini,没事,直接从之前的php1的文件夹中复制一份进来即可

然后重启Apache

这里额外说一下,不知为何重启后我的程序会弹出个缺少libssh2.dll的框

百度了一下,直接从网上下载压缩包进来

解压完后,会有三个文件,libssh2.dll、php_ssh.dll、php_ssh2.pdb

将 php_ssh.dll、php_ssh2.pdb 放到你的 php 扩展目录下 php/ext/ 下

将libssh2.dll 复制到 c:/windows/system32 和 c:/windows/syswow64 各一份

php.ini中加入 extension=php_ssh2.dll

重启apache,即可使用php执行ssh连接操作了

Centos 更新源yum

因为打算去尝试使用laraval,需要5.6的环境,终于在多次升级PHP失败后成功了

以更新PHP为例

检查当前安装的PHP包

yum list installed | grep php

如果有安装的PHP包,先删除他们

 yum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64

更新源yum

Centos 5.X
  rpm -Uvh http://mirror.webtatic.com/yum/el5/latest.rpm
  CentOs 6.x
  rpm -Uvh http://mirror.webtatic.com/yum/el6/latest.rpm
  CentOs 7.X
rpm -Uvh https://mirror.webtatic.com/yum/el7/epel-release.rpm
rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

如果想删除上面安装的包,重新安装
rpm -qa | grep webstatic
rpm -e 上面搜索到的包即可

运行yum install

yum install php56w.x86_64 php56w-cli.x86_64 php56w-common.x86_64 php56w-gd.x86_64 php56w-ldap.x86_64 php56w-mbstring.x86_64 php56w-mcrypt.x86_64 php56w-mysql.x86_64 php56w-pdo.x86_64

注:如果想升级到5.6把上面的55w换成56w就可以了。

安装PHP FPM

yum install php55w-fpm
注:如果想升级到5.6把上面的55w换成56w就可以了

Centos下安装php的pdo以及gd库

因为自己的Linux服务器一直坚持使用yum安装,也比较厌烦编译安装

pdo的扩展:

yum install php-pdo

pdo的mysql扩展:

yum install php-pdo_mysql

gd库扩展:

yum install php-gd

安装完就,service php-fpm restart 就ok了

解决PHP的MD5加密与JAVA的MD5加密不一致

最新在做一个项目,用到了很久没写过的android,并且需要对其进行加密

结果发现两边结果(PHP以及android)怎么样加密后的都不一样,自己便上网搜了一下便知道原因了

因为编码的问题,需要对android端进行编码转换

接下来就贴一下android端正确的MD5加密代码

public static String md5(byte[] source) {
    try{
        MessageDigest md = MessageDigest.getInstance("MD5");
        md.update( source );
        StringBuffer buf=new StringBuffer();
        for(byte b:md.digest())
            buf.append(String.format("%02x", b&0xff) );
        return buf.toString();
    }catch( Exception e ){
        e.printStackTrace(); return null;
    }
}

从代码可以看出,这里传入的参数是byte[],而不是String,这里就需要事先对需要加密的字符串转成

字节,便用到一个方法getBytes(Charset.forName("UTF-8")) ,之前因为范2直接使用

getByte(“utf-8”)而一直出错 - -。

这样,PHP以及android端的MD5加密就一致了。