windows多个版本php下使用composer

当前位置:首页 » 笔记
In 笔记  @2018-06-20

由于打算在新服务器上使用php7.1的来做环境,本地机器上就有包括原来的5.67.1共存的情况,在使用composer的时候,因为设置的环境变量,自动会调用原来的php环境,导致需要高版本php的项目出现报错。

问题

那如何才能在多版本的情况下使用composer而互不干扰呢?

解决

  1. 先去composer官网下载一个composer.phar文件,放到某个地方,我是放在d:/xampp/php下的。
  2. 进入你的本地服务器根目录我的是d:\xampp\htdocs来调用这个composer.phar
    检验是否能成功调用:
Administrator@Kobe MINGW64 /d/xampp/htdocs
d:/xampp/php/php.exe d:/xampp/php/composer.phar -V
Composer version 1.6.5 2018-05-04 11:44:59

出现下面的版本号输出即表示成功。

  1. 因为没有环境变量的支持,后面要使用php7.1的时候,composer带全路径和php 7.1的全路径就好了,而需要使用原来的5.6环境,依然可以在任何地方直接使用原来环境变量中的composer命令和php命令,互不干扰,比如使用这个新建一个laravel项目laravel_blog
Administrator@Kobe MINGW64 /d/xampp/htdocs
d:/xampp/php/php.exe d:/xampp/php/composer.phar create-project --prefer-dist laravel/laravel laravel_blog "5.5.*"
标签: , , ,   评论: 抢沙发 

Windows系统下Git不同密钥不同账户不同邮箱的管理

当前位置:首页 » 笔记
In 笔记  @2018-06-05

首先来记录一下系统多公钥的管理,比如你在gitee上喝github上不同的邮箱不同的用户名,不同项目的管理时候,设置不同的公钥。

第一步:生成两套密钥对

IBM@IBM-PC MINGW64 ~
$ ssh-keygen -t rsa -C "88888888@qq.com"
Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/IBM/.ssh/id_rsa): /c/Users/IBM/.ssh/id_rsa_gitee
Created directory '/c/Users/IBM/.ssh'.
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /c/Users/IBM/.ssh/id_rsa_gitee.
Your public key has been saved in /c/Users/IBM/.ssh/id_rsa_gitee.pub.
The key fingerprint is:
SHA256:xuDwSq*******51o7/lv+ta********57g 88888888@qq.com
The key's randomart image is:
+---[RSA 2048]----+
| .o .            |
|o+.+ .           |
|+o= + +          |
~
~
| . . o = = .     |
| E.  .*oo        |
+----[SHA256]-----+

这样就生成了一对密钥id_rsa_giteeid_rsa_gitee.pub这里面和单密钥不一样的是在第二步提示Enter file in which to save the key (/c/Users/IBM/.ssh/id_rsa):的时候,你需要为密钥取名字,为了区分不同的密钥对。
同样的方法生成另外一对密钥id_rsa_githubid_rsa_github.pub
这时候你的~/.ssh目录下应该有两对密钥对了。

id_rsa_gitee
id_rsa_gitee.pub
id_rsa_github
id_rsa_github.pub

第二步: 设置config

~/.ssh目录下创建一个config文件(windows下创建txt文件然后重命名为config不要后缀),内容:

# gitee
Host gitee.com
HostName gitee.com                      #这个是真实的域名地址
PreferredAuthentications publickey      #配置登录时用什么权限认证--可设置publickey,password publickey,keyboard-interactive等
IdentityFile ~/.ssh/id_rsa_gitee        #这里是id_rsa的地址
User myname                         #配置使用用户名

# github
Host github.com
HostName github.com
PreferredAuthentications publickey
IdentityFile ~/.ssh/id_rsa_github
User myname

说明一下配置文件:

  • 每个账号单独配置一个Host,每个Host要取一个别名,每个Host主要配置HostNameIdentityFile两个属性即可。
  • Host的别名可以取为自己喜欢的名字,不过这个会影响git相关命令;
    例如:
  • Host mygithub这样定义的话,命令如下,即git@后面紧跟的名字改为mygithub
git clone git@mygithub:username/myproject.git

就相当于你配置的HostName真正的域名,映射成了Host后面的配置的名字。在你与远程仓库建立连接的时候这个别名将直接取代HostName

第三步:使用ssh-add将密钥添加到ssh-agent保管

执行添加两对密钥:

ssh-add ~/.ssh/id_rsa_github
ssh-add ~/.ssh/id_rsa_gitee

在执行出现错误:

Could not open a connection to your authentication agent.

这个错误基本上都会出现。

解决办法

$ ssh-agent bash --login -i

完整的流程:

IBM@IBM-PC MINGW64 /d/xampp/htdocs
$ ssh-add ~/.ssh/id_rsa_github
Could not open a connection to your authentication agent.

IBM@IBM-PC MINGW64 /d/xampp/htdocs
$ ssh-agent bash --login -i

IBM@IBM-PC MINGW64 /d/xampp/htdocs
$ ssh-add ~/.ssh/id_rsa_gitee
Identity added: /c/Users/IBM/.ssh/id_rsa_gitee (/c/Users/IBM/.ssh/id_rsa_gitee)

IBM@IBM-PC MINGW64 /d/xampp/htdocs
$ ssh-add ~/.ssh/id_rsa_github
Identity added: /c/Users/IBM/.ssh/id_rsa_github (/c/Users/IBM/.ssh/id_rsa_github)

第四步:将公钥将公钥添加到githubgitee上。

测试连接状态。

IBM@IBM-PC MINGW64 /d/xampp/htdocs
$ ssh -T git@gitee.com
Welcome to Gitee.com, myname!

IBM@IBM-PC MINGW64 /d/xampp/htdocs
$ ssh -T git@github.com
The authenticity of host 'github.com (52.74.223.119)' can't be established.
RSA key fingerprint is SHA256:nThbg6kXUpJ********viKw6E5SY8.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'github.com,52.74.223.119' (RSA) to the list of known hosts.
Hi myname! You've successfully authenticated, but GitHub does not provide shell access.

这样不同的仓库就连接成功了。

后续Git操作
建项目远程仓库;
将本地写好的项目初始化并关联到远程新建仓库;

// 初始化
git init
// 仓库关联
git remote add origin git@gitee.com:myname/tp5.git
// 拉取代码
git pull origin master

遇到错误

fatal: refusing to merge unrelated histories

使用解决

git pull origin master --allow-unrelated-histories
标签: , , ,   评论: 抢沙发 

MySQL替换字段中的字符串

当前位置:首页 » 笔记
In 笔记  @2018-06-04

这个经常用到的MySQL语句记录一下。

比如某些CMS中发布文章的插入图片的时候,用的是绝对地址,然后你换域名了之后,这个图片地址就不对了。(所以以后富文本中的图片大家都用相对地址比较好。)

这是后就需要把数据库中富文本字段中的网址替换掉了,使用语句:

update table set colunm=REPLACE (colunm,'被替换的值','替换后的值')

当然你可以根据需求在后面加上条件语句达到部分数据替换。

标签: ,   评论: 抢沙发 

华南区WP_QINIU插件的使用问题及其他

当前位置:首页 » 笔记
In 笔记  @2018-06-03

用七牛作为图片,WP_QINIU是一个很好的选择,可以直接管理七牛文件,但这里有一些问题,也不知道是我的个例还是大家都遇到了,来记录一下。

问题一:上传报错

原因在作者博客插件页面有提到,插件或者说SDK只支持华东区存储,而我的是华南区,上传报错信息:

请求报文格式错误。(400:incorrect region, please use up-z2.qiniu.com)

解决方法:

编辑插件js文件qiniu.mini.js

// 将文件中的
'http://upload.qiniu.com'
'http://up.qiniu.com'
// 都替换成(华南区)
'http://up-z2.qiniu.com'

这个替换地址根据你的存储空间区域来替换就好了,重新加载js后就可以正常上传了。

问题二:无法正确显示文件

原因在于插件设置里面强制必须填入缩略图片样式名图片样式分隔符两个设置项,而我的存储空间里没哟设置这些,填入后生成的文件url在后面拼接上了这两个设置项的字符串后就会404,无法正确显示。

解决方法:

编辑插件中的的wp-qiniu.php文件:
注释下面的代码(在531~540行):

// if($("input[name='wp_qiniu_thumbnail_style']").val().trim() == ''){
//  message += '缩略图片样式名不能为空!\n';
//  $("input[name='wp_qiniu_thumbnail_style']").addClass('input-error')[0].focus();
//  reterval &= false;
// }
// if($("input[name='wp_qiniu_style_split_char']").val().trim() == ''){
//  message += '图片样式分隔符不能为空!\n';
//  $("input[name='wp_qiniu_style_split_char']").addClass('input-error')[0].focus();
//  reterval &= false;
// }

然后到插件设置页面,将缩略图片样式名图片样式分隔符两个设置项里面留空保存设置,再进去七牛云存储,是不是都正确显示图片了,嘿嘿。

标签: , , ,   评论: 2枚 

ThinkPHP 5.1自动生成模块及目录、文件

当前位置:首页 » 笔记
In 笔记  @2018-06-03

试用一下ThinkPHP 5.1这最新版的TP框架,创建项目很简单,在web根目录使用composer搞定:

composer create-project topthink/think tp5 5.1.* --prefer-dist

这里面的tp5是新建项目的文件夹名了,5.1.*代表指定版本为>=5.1, <5.2的版本。

项目创建好了,然后我们就需要创建模块

ThinkPHP 5.1提供了自动生成模块的途径让这个工作更快更酷。

第一步:编辑build.php文件

编辑项目根目录也就是上文tp5目录下的build.php文件。
比如这样:

return [
    // 生成应用公共文件
    '__file__' => ['common.php'],

    // 定义demo模块的自动生成 (按照实际定义的文件名生成)
    'demo'     => [
        '__file__'   => ['common.php'],
        '__dir__'    => ['behavior', 'controller', 'model', 'view'],
        'controller' => ['Index', 'Test', 'UserType'],
        'model'      => ['User', 'UserType'],
        'view'       => ['index/index'],
    ],

    'socketio'     => [
        '__file__'   => ['common.php'],
        '__dir__'    => ['controller', 'model', 'view'],
        'controller' => ['Index', 'Server'],
        'model'      => [],
        'view'       => ['index/index'],
    ],
    // 其他更多的模块定义
];

其中:

__dir__ 表示生成目录(支持多级目录)
__file__ 表示生成文件(不定义默认会生成 config.php 文件)
controller 表示生成controller类
model表示生成model类
view表示生成html文件(支持子目录)

第二步:将build.php复制到应用的根目录下(默认是/Application目录)。

复制过来之后是这样的目录结构:
ThinkPHP 5.1 自动生成模块

第三步:在项目根目录下运行命令:

php think build
// 生成成功输出
Successed 

去应用目录下看,按上面的build.php生成模块后的目录结构:
ThinkPHP5.1自动生成模块

参考文档:

官方文档传送门

标签: , , ,   评论: 抢沙发