Write the Code. Change the World.

分类目录
4月 14

owasp 安全测试,其中一项就是关于请求头中的 servers 信息和 x-powered-by 信息要隐藏。该怎么隐藏呢。servers 对应的是 nginx 或 apache 的信息,x-powered-by 可能是 php 的版本号。

如下图:

用户,可以很方便的看到你服务器环境的版本信息。想要隐藏只需下边这样操作即可。

隐藏 servers

nginx

vim nginx.conf

# http 里边添加下边的设置

server_tokens off;

然后重启 nginx 。 ../sbin/nginx -s reload

隐藏 php 版本

# 找到 php.ini 的位置
php -i|grep php.ini

vim php.ini

# 设置下边的值即可。即将 on 改成 off
expose_php = Off

然后重启 php 。 /etc/init.d/php-fpm restart

4月 02

想做聊天这样的app或页面,就会使用到长连接。websocket 是一种方式。服务方可以用 nodejs 这些。对于 php,还是使用 workman 或 swoole 比较方便。这里就记录下 laravel 框架使用 swoole 的过程。

编译安装 swoole 扩展

http://pecl.php.net/package/swoole
当前,最新版本是 4.31。所有一切都是新的,服务器是新的,装的环境也是最新的。所以没有心理压力,都用最新的。

cd /usr/local/src

wget http://pecl.php.net/get/swoole-4.3.1.tgz

tar -xzvf swoole-4.3.1.tgz

cd swoole-4.3.1

phpize

# 对 ssl 的支持。这个还是比较重要的
./configure --enable-openssl 

make && make install

make test

vim /alidata/service/php/etc/php.ini

# 尾部追加
extension=swoole.so

# 重启 php
/etc/init.d/php-fpm restart

# 查看扩展
# php -m|grep swoole

继续阅读

2月 20

以前,还需要写中间件来处理邮箱是否验证过了。5.7 开始,Laravel 自带了邮箱验证的相关字段和功能。

以此基础,从零开始吧。

生成注册登录

php artisan make:auth

修改执行以下操作

修改 User 模型,使其实现 MustVerifyEmail 接口

class User extends Authenticatable implements MustVerifyEmail

启用与邮箱验证相关的路由(验证邮箱页面、重发验证邮件页面等),修改 routes/web.php

Auth::routes(['verify' => true]);

Laravel 自带了一个名为 verified 的中间件,如果一个未验证邮箱的用户尝试访问一个配置了 verified 中间件的路由,Laravel 就会提示该用户邮箱未激活。修改路由,加了一个中间件,测试看看。

Route::get('/', 'PageController@home')->name('home')->middleware('verified');

访问首页,发现会跳转到验证邮箱的页面了。证明邮箱验证生效。

看看 users 表,我们发现和以前比,多了一个 email_verified_at 字段。

激活邮箱

我们可以临时使用 MailHog 来模拟邮箱激活。

MailHog 是 Homestead 自带的一个组件,可以很方便地调试发送邮件。直接使用端口号 8025 就可以访问到。那么,怎么让其接受到邮件呢。修改 .env 文件。将 host 和 port 修改成下边的即可。

MAIL_HOST=127.0.0.1
MAIL_PORT=1025

修改完毕,刷新 mailhog 页面。点击首页链接,会跳转到验证页面。发送验证,查看邮箱,点击激活。再访问首页是不是就可以访问了。再看看数据库,会发现 email_verified_at 字段以及有值(日期时间)了。

2月 13

安装 laravel mix

Laravel Mix 一款前端任务自动化管理工具,使用了工作流的模式对制定好的任务依次执行。Mix 提供了简洁流畅的 API,让你能够为你的 Laravel 应用定义 Webpack 编译任务。Mix 支持许多常见的 CSS 与 JavaScript 预处理器,通过简单的调用,你可以轻松地管理前端资源。

使用 Mix 很简单,首先你需要使用以下命令安装 npm 依赖即可。我们将使用 Yarn 来安装依赖,在这之前,因为国内的网络原因,我们还需为 Yarn 配置安装加速:

继续阅读

1月 08

MVP 是 Minimum Viable Prodcut (最小化可行性产品)的简称

1月 05

快捷键

常用快捷键,记住几个就好很多了。在 mac 中, cmd 对应 command,alt 对应 option。

cmd + p 快速打开文件或查找打开文件

control + ‘ (同~) 打开关闭控制台

shift+cmd+k 删除一行

shift+alt+down 向下复制一行

shift+alt+up 向上复制一行

cmd + d 显示选中的内容

alt + up 向上移动一行

alt + down 向下移动一行

cmd + b 侧边栏的隐藏与显示

插件的快捷键

cmd + alt + n 创建文件

mac 下,使用命令启动当前项目

打开 vscode,打开控制面板(⇧⌘P),输入 shell command,在提示里看到 Shell Command: Install ‘code’ command in PATH,运行它就可以了。

然后就可以了。

code . # 打开当前文件夹项目
code readme.md # 打开当前文件

安装插件

Auto Rename Tag
  自动重命名配对的HTML / XML标签

Auto Close Tag
  自动添加 HTML/XML 的闭合标签

Color-Highlight
  在编辑器中高亮显示颜色。

Color Picker
  代码的颜色选择器。

Guides
  代码的标签对齐线。

Bracket Pair Colorizer
  让括号拥有独立的颜色,易于区分。可以配合任意主题使用。

vetur
  vue项目语法高亮、智能感知、Emmet等。

Laravel Blade Snippets
  Laravel blade 代码片段和语法高亮支持 Visual Studio。

PHP Intellisense Crane
  Crane 是 Visual Studio Code 的生产力增强扩展,提供了 PHP 代码的自动完成。它具有零依赖性,并可以极大程度地工作于任何规模的项目里。它仍在开发中,可能存在 Bug 或缺失某些功能。。

Laravel goto view
  从controller进入view。

php intelephense
  php 语法提示工具。

advanced-new-file
  快捷创建文件、文件夹。

Bootstrap 4 & Font awesome snippets
  bootstrap4和font awesome 快速引用和代码生成。。

12月 10

虽然,mariadb 可以替代 mysql,但某些函数,mariadb 是没有的。比如,ST_Distance_Sphere 。当然,mariadb 拥有的函数 mysql 也不一定有。

请参考:
https://mariadb.com/kb/en/library/function-differences-between-mariadb-102-and-mysql-57/

https://mariadb.com/kb/en/library/mysqlmariadb-spatial-support-matrix/

看着 ST_Distance_Sphere 很好用,却不能用。那也没办法,可以试试 ST_DISTANCE 函数。

eg:

select ST_Distance_Sphere(ST_GeomFromText(‘Point(115.452081 30.486021)’), position) as distance from ball_invitations

select (ST_Distance(GeomFromText(‘Point(115.452081 30.486021)’), position) / 0.0111195) as distance from ball_invitations

参考

https://mariadb.com/kb/en/library/st_distance/

https://dev.mysql.com/doc/refman/5.7/en/spatial-convenience-functions.html

http://www.innomysql.com/mysql_gis_lbs/

https://blog.csdn.net/zhouzhiwengang/article/details/53612481

10月 11

  1. 去除镜像
composer config -g --unset repos.packagist
  1. 添加全局镜像(两个选一个)
composer config -g repo.packagist composer https://packagist.laravel-china.org

composer config -g repo.packagist composer https://packagist.phpcomposer.com
  1. 当前项目添加镜像
composer config repo.packagist composer https://packagist.laravel-china.org
  1. 查看镜像
composer config -l -g

娃哈哈

https://packagist.laravel-china.org/

https://pkg.phpcomposer.com/#how-to-use-packagist-mirror