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
11月
05
操作步骤
- 将 .pem 文件保存到本地磁盘中。
- 添加命令。
ssh-add -K /path/to/private_key
- 运行 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
- VMware软件安装与配置,网络连接模式,NAT、桥接、OnlyHost
-
宿主机、虚拟机、客户机异同,虚拟机完全克隆、虚拟机链接克隆
-
mac地址修改,虚拟网卡设置,虚拟网络编辑器,虚拟机移除
二、CentOS
-
Linux系统简介,CentOS,Ubuntu,Windows
-
CentOS下载、安装与配置
继续阅读