记录一下自己手动编译安装nginx最新版的过程。
分类: 编程
git mv使正确识别被修改名字的文件
有一个文件filename,由于在更名的同时也做了很大的变动,因此git无法识别这是一个被修改了名字的文件,正确识别应当这样:
➔ git status
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
renamed: fileA -> fileB
现在是错误的识别了:
➔ git status
Changes to be committed:
(use "git reset HEAD <file>..." to unstage)
new file: fileB
deleted: fileA
那怎么办呢?我是这么做的:
# 先unstage掉fileA,fileB
➔ git reset HEAD fileA fileB
# 用新文件生成老的文件
➔ cp fileB fileA
# 删除新文件
➔ rm fileB
# 使用git mv命令重命名
➔ git mv fileA fileB
# 最后看一下
➔ git status
我出的一组面试题
最近帮忙面试出的一组面试题,个人认为是比较基础的,如果你觉得题目不好, 欢迎提出来。供参考,如果你需要答案也欢迎联系我。
一、 PHP语法篇
- 写一个单例类。
- C => B => A 三个类,三个类中分别有静态方法m3、m2、m1,在B类的静态方法m中,分别调用C、B、A中的m3、m2、m1方法。
- 一个空数组,对应前端的一个对象,json_encode时,将其转换成
{}
,而不是[]
。 - empty函数和isset函数的区别?
- 是否用过php7中的
??
- 对psr规范是否了解,你觉得规范是否有不合理的地方
二、数据库篇
- having 和where的区别
- dinstinct的含义
- MySQL有哪些连接查询
三、Linux服务器篇
- 在centos上如何重启php-fpm
- 查看PHP安装的扩展,查看是否有安装mbstrig扩展
- crontab
- 给一个脚本增加所有用户可执行权限
- git 从分支A新建分支B,并同时切换到这个分支
- git 删除远程分支
TCP三次握手的目的
本人CS不是很专业,这是我今晚随便琢磨得到的想法,各位笑看即可:
很多人知道TCP三次握手是为了建立可靠的网络连接,那什么叫做可靠的网络连接呢?
可靠的连接,就是要确保双方都既会发送tcp包、也会接收tcp包,这里的“会”其实有两个含义,一是能做到,二是乐意去做。
假设A为请求方,B为服务方,假设他们之间用一种叫做“tcp”的语言沟通。
第一次A向B发送一个包:意思为,A证明自己会“说”tcp语言(发送tcp包);
B收到A的包后,向A发送第二个包:意思为,我听懂了你说的tcp语言(接收tcp包),并且向A证明自己也会说tcp语言(发送tcp包);
注意,此时,A证明了自己会说,B证明了自己会听也会说,但是A还没有证明自己会听呀!
于是A收到B的包后,向B发送了第三个包:意思为:你发给我的包,我能听懂(接收tcp包)
此时,A和B都证明了自己都会发送tcp,也能接收tcp
在服务器上创建git远程仓库
有时自己的代码比较私密,不方便放在github或者其他托管网站,如果你有一个vps的话,可以使用下面这个方法创建一个仓库:
远程:
cd /srv
git init --bare [repo-name].git
本地:
这里其实是使用ssh连接,如果你没改过ssh的端口,[remote-port]则可以省略
git remote add origin root@[remote-ip]:[remote-port]/srv/[repo-name].git
# 这样就添加好了,试试push吧
git push origin master
No supported encrypter found. The cipher and / or key length are invalid. – 解决办法
初次使用Laravel,对这个框架还不是很熟,项目拉下来后,提示以下错误:
No supported encrypter found. The cipher and / or key length are invalid.
解决办法为:
在config/app.php
文件中,找到类似的这行代码:
'key' => env('APP_KEY', 'SomeRandomString'),
将这里的SomeRandomString
改成一个随意的32位的字符串,比如我的12345678901234567890123456789012
(建议你改一个复杂一点的)
或者你也可以在项目的根目录创建一个名字为.env
的文件,并且添加一行APP_KEY=12345678901234567890123456789012
,下面是通过代码的方式操作:
# 首先 cd 到项目目录
echo APP_KEY=12345678901234567890123456789012 >> .env
也有可能是缓存的问题,那么请执行:
php artisan config:cache
bingo~
Git如何一次add多个多个目录下的相同名字的文件?
比如,一次add这些文件:
modified: .gitignore
modified: bootstrap/cache/.gitignore
modified: storage/framework/.gitignore
该怎么操作呢?很简单:
git add ./**/.gitignore
bingo~
Apache路由重写
<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
Options -MultiViews
</IfModule>
RewriteEngine On
# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)/$ /$1 [L,R=301]
# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]
</IfModule>