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

继续阅读

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

这样就完成了。如果后边想升级。还是这样来一遍就可以。

https://osfere.com/linux/how-to-install-latest-cmake-on-centos#comment-68

如果在 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
11月 05

操作步骤

  1. 将 .pem 文件保存到本地磁盘中。
  2. 添加命令。
ssh-add -K /path/to/private_key
  1. 运行 ForkLift,增加一个配置。选择使用 FTPS,在密码处选择 .pem 文件即可。

https://binarynights.com/support

终端中使用命令登录服务器

sudo ssh -i key.pem root@ip

权限不够,带上 sudo

也可以这样使用

ssh-add -K /path/to/private_key
ssh root@ip
9月 18

文档

官方文档:https://laravel.com/docs/5.7/scheduling

中文文档:https://laravel-china.org/docs/laravel/5.6/scheduling/1396

在 Larave 中定义任务,在 crontab 中配置任务

先配置吧

vim /etc/crontab 

# 在末尾添加
* * * * * root cd /alidata/www/mlxiu/ && php artisan schedule:run >> /dev/null 2>&I1

/sbin/service crond start

如果不行,需要再crontab中配置环境变量,或者命令直接写绝对路径。
crontab 参考:https://www.cnblogs.com/intval/p/5763929.html

在 laravel 中定义任务

看文档吧。

9月 17

安装 imagick

PHP建图通常都用GD库,因为是内置的不需要在服务器上额外安装插件,所以用起来比较省心,但是如果你的程序主要的功能就是处理图像,那麼就不建议用GD了,因为GD不但低效能而且能力也比较弱,佔用的系统资源也颇多,另外GD的creatfrom也有bug,而imagick却是一个很好的替代品,为此最近把我的一个项目由GD改成了imagick

官网: https://www.imagemagick.org/script/install-source.php

# 没权限的加上sodu
wget https://imagemagick.org/download/ImageMagick.tar.gz

tar xzvf ImageMagick.tar.gz

cd cd ImageMagick-7.0.8-11

./configure -prefix=/usr/local/imagemagick -enable-lzw -with-modules 

#如果报错:如果configure提示“configure: error: libltdl is required for modules build”,则yum install libtool-ltdl libtool-ltdl-devel

make 

make install

make check

安装 imagick php 扩展

插件地址:http://pecl.php.net/package/imagick

wget http://pecl.php.net/get/imagick-3.4.3.tgz
tar -xzvf imagick-3.4.3.tgz
cd imagick-3.4.3
phpize
./configure --with-php-config=/usr/bin/php-config --with-imagick=/usr/local/imagemagick
# 根据php-config 目录有所不同。这里是 Homestead环境

# 如果提示没有 pkg-config,请先安装
#  apt-get install pkg-config (unbuntu)
# yum install pkg-config (centos)

make test
make
make install

cp /usr/src/imagick-3.4.3/modules/imagick.so /usr/lib/php/20160303/imagick.so
# 这里是 homestead 的配置。

sudo vim /etc/php/7.1/fpm/conf.d/20-imagick.ini
# 添加 extension=imagick.so 保存

参考

https://blog.csdn.net/m0_38004619/article/details/77897406

7月 16

unbuntu 安装 php mongo 扩展的时候,遇到了 configure: error: Cannot find OpenSSL's libraries 这个错误。

怎么解决了,冥冥已经安装了呀。

sudo apt-get install openssl

可以找找看。

sudo find / -name libssl.so
# 你会发现存在 /usr/lib/x86_64-linux-gnu/libssl.so
# 初步判断它可能只会在 /usr/lib/ 下寻找 libssl.so 文件
sudo ln -s /usr/lib/x86_64-linux-gnu/libssl.so /usr/lib 
# 重新编译过

其他方法

https://stackoverflow.com/questions/40359817/litespeed-web-server-and-error-cannot-find-openssls-libraries

5月 17

随着互联网的普及,人们的上网行为每天都产生着海量的数据,这些数据蕴含着巨大的价值,清楚的刻画着社会的方方面面,现如今,数据已经成为一种商业资本,一项经济投入,政府和企业都在研究如何从海量数据中获得新的认知、新的方法和创造新的价值,这就促进了大数据的发展,企业用大数据技术往往运行在Linux环境下,大数据工程师需要掌握一定的Linux技术,以下是老男孩教育归纳的大数据工程师需要掌握的Linux技术

一、VMware Workstation

  1. VMware软件安装与配置,网络连接模式,NAT、桥接、OnlyHost
  2. 宿主机、虚拟机、客户机异同,虚拟机完全克隆、虚拟机链接克隆

  3. mac地址修改,虚拟网卡设置,虚拟网络编辑器,虚拟机移除

二、CentOS

  1. Linux系统简介,CentOS,Ubuntu,Windows

  2. CentOS下载、安装与配置
    继续阅读