4月
17
https 测试
https://myssl.com
nginx 配置
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
add_header Strict-Transport-Security "max-age=31536000";
add_header Content-Security-Policy "default-src 'self';script-src * 'unsafe-inline';style-src * 'unsafe-inline';";
add_header X-Content-Type-Options nosniff;
add_header X-XSS-Protection "1; mode=block";
add_header X-Frame-Options 'SAMEORIGIN';
TLS 1.3 也渐渐流行。可以自行配置。
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
3月
19
本来 php7.3
使用的蛮好的。突然有一个旧项目,框架所使用的 php 版本是 php5.6
。这个时候就尴尬了。不可能一一去修改源码。这个时候,就得再安装一个 php5.6
。还好 nginx 配合多版本 php 使用非常的方便。
PHP 下载地址: http://php.net/releases/
下载编译安装
# 还是一样,习惯将文件下载的 `/usr/local/src` 下
cd /usr/local/src
wget http://cn2.php.net/get/php-5.6.40.tar.gz
tar -xzvf php-5.6.40.tar.gz
cd php-5.6.40
# 下边就开始配置
配置如下:
# 因为之前有一个 /alidata/service/php 目录,这里使用 php5.6 加以区分
./configure --prefix=/alidata/service/php5.6 \
--with-config-file-path=/alidata/service/php5.6/etc \
--enable-inline-optimization --disable-debug \
--disable-rpath --enable-shared --enable-opcache \
--enable-fpm --with-fpm-user=nginx \
--with-fpm-group=nginx \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-gettext \
--enable-mbstring \
--with-iconv \
--with-mcrypt \
--with-mhash \
--with-openssl \
--enable-bcmath \
--enable-soap \
--with-libxml-dir \
--enable-pcntl \
--enable-shmop \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-sockets \
--enable-session \
--enable-ftp \
--enable-xml \
--with-curl --with-zlib \
--enable-zip \
--with-bz2 \
--enable-pdo \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-readline
注意要使用的库一定要带上。比如 gd 库。要不额外弄,伤脑筋。
3月
08
centos 使用 yum 安装的时候,很多程序不是最新的。这个时候,就得下载源码包进行安装。 libzip 就是这样的。下边进行操作。
# 先卸载旧的
yum -y remove libzip-devel
# 找到最新版本的,并下载
# https://libzip.org/ 官网
wget https://libzip.org/download/libzip-1.5.1.tar.gz
tar -zxvf libzip-1.5.1.tar.gz
cd libzip-1.5.1
mkdir build
cd build
cmake ..
make && make install
如果安装过程中,出现 cmake 版本过低 ,请参考:
centos 安装最新版本的 camke
当然,安装旧版本的 libzip可能不这样。请参考下边的链接:
https://www.cnblogs.com/itbsl/p/10208926.html
3月
08
找到最新版本的 cmake
https://cmake.org
进 cmake 官网,找到最新版本的下载地址。当前最新版本是 3.14.0
下载安装
在做安装之前,可以先卸载之前旧版本
yum -y remove cmake
按照以下操作:
wget https://cmake.org/files/v3.6/cmake-3.14.0.tar.gz
tar -xzvf cmake-3.14.0.tar.gz
cd cmake-3.14.0
./bootstrap
gmake
gmake install
2023年1月30日,另外编辑。cmake 后边的版本不需要 ./bootstrap 和 install。直接将解压的文件夹复制过去就可以。下边以分割线来描述这一整个过程。
CMake 官方下载页面:https://cmake.org/download/ 选择对应的版本,最好是最新的稳定下载。
cd /usr/local/src/
wget https://github.com/Kitware/CMake/releases/download/v3.25.2/cmake-3.25.2-linux-x86_64.tar.gz
tar -xzvf cmake-3.25.2-linux-x86_64.tar.gz
mv cmake-3.25.2-linux-x86_64 /usr/local/cmake
然后将 cmake的可执行文件目录添加到系统环境变量中。
# 添加
echo 'export PATH="/usr/local/cmake/bin:$PATH"' >> ~/.bashrc
# 生效
source ~/.bashrc
这样就完成了。如果后边想升级。还是这样来一遍就可以。
如果在 bootstrap 的时候,出现下边这样的错误:
Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY OPENSSL_INCLUDE_DIR)
而你 openssl 明明已经装了,并且也有软链,为什么还是不行呢。上边也提到了报错的行数,找到函数位置是 find_package(OPENSSL),还是没找到这玩意。于是尝试将package以及lib添加到环境变量中试试看,并使环境变量生效看看,竟然好了。
vim /etc/profile
# 添加
export OPENSSL_ROOT_DIR=/usr/local/openssl
export OPENSSL_LIBRARIES=/usr/local/openssl/lib/
# 生效
source /etc/profile
然后继续后边的操作了
参考:https://hant-kb.kutu66.com/openssl/post_12667981
查看编译后的cmake版本
/usr/local/bin/cmake --version
新建软连接
ln -s /usr/local/bin/cmake /usr/bin/
终端查看版本
cmake --version
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月
29
as3 开发的一个应用程序 shoebox ,他的基本功能是把一张合成的大图,拆成碎图。和 texturepacker 的工作内容正好相反。
有了它,再也不愁往上找的开发demo 用的图片是合图却没有小图片的坐标信息了,直接用shoebox 一拆即可。配合 texturepacker 再合并回合图,图片的坐标信息就都出来了。
官网:http://renderhjs.net/shoebox/