分类 Linux 下的文章

CentOS / Debian使用Supervisor守护进程

一、Supervisor简介
Supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启。

二、安装Supervisor

Centos

yum install epel-release
yum install supervisor

Debian

apt-get update
apt-get install supervisor

三、配置Supervisor

Centos
Supervisor的配置文件为/etc/supervisord.conf
Supervisor所管理的应用的配置文件放在/etc/supervisord.d/目录中,需要对每个应用进行配置。在/etc/supervisor.d中创建2dan.ini,每个应用对应一个配置文件即可。

Debian
Supervisor的配置文件为/etc/supervisor/supervisord.conf
Supervisor所管理的应用的配置文件放在/etc/supervisor/conf.d/目录中,需要对每个应用进行配置。在/etc/supervisor/conf.d/中创建2dan.conf,每个应用对应一个配置文件即可。

- 阅读剩余部分 -

CentOS7安装Nodejs

下载nodejs最新的bin包

wget https://nodejs.org/dist/v16.14.0/node-v16.14.0-linux-x64.tar.xz

解压包

xz -d node-v16.14.0-linux-x64.tar.xz
tar -xf node-v16.14.0-linux-x64.tar

部署bin文件

ln -s ~/node-v16.14.0-linux-x64/bin/node /usr/bin/node
ln -s ~/node-v16.14.0-linux-x64/bin/npm /usr/bin/npm
ln -s ~/node-v16.14.0-linux-x64/bin/npm /usr/bin/npx

CentOS7开启BBR加速

先查看系统内核版本,低于4.10的需要先更换内核版本。

uname -r

一、更换内核

导入公钥

rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org

安装ELRepo 7

yum install https://www.elrepo.org/elrepo-release-7.el7.elrepo.noarch.rpm -y

安装内核

yum --enablerepo=elrepo-kernel install kernel-ml -y

查看已安装内核

egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \'

设置内核

- 阅读剩余部分 -

使用Snuffleupagus保护PHP

之前介绍了使用Suhosin保护PHP,由于Suhosin仅支持到php5.x,对于php7.x及以上版本可以试试Snuffleupagus

编译安装:

git clone https://github.com/jvoisin/snuffleupagus
cd snuffleupagus/src
phpize
./configure --with-php-config=/usr/local/php/bin/php-config --enable-snuffleupagus
make
make install

然后在php.ini中引用

[Snuffleupagus]
extension=snuffleupagus.so
sp.configuration_file=/usr/local/php/conf.d/snuffleupagus.rules

其中/usr/local/php/conf.d/snuffleupagus.rules为规则文件,内容可参考:

sp.eval_blacklist.list("base64_decode,system,exec,shell_exec,passthru,proc_open,proc_close, proc_get_status,checkdnsrr,getmxrr,getservbyname,getservbyport, syslog,popen,show_source,highlight_file,dl,socket_listen,socket_create,socket_bind,socket_accept, socket_connect, stream_socket_server, stream_socket_accept,stream_socket_client,ftp_connect, ftp_login,ftp_pasv,ftp_get,sys_getloadavg,disk_total_space, disk_free_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname");sp.global.show_old_php_warning.disable();

和Suhosin一样,可以设置函数黑白名单。
更多使用方法参考官网:https://snuffleupagus.readthedocs.io/config.html

为CentOS7升级gcc至10.x

yum -y install centos-release-scl
yum -y install devtoolset-10-gcc*
scl enable devtoolset-10 bash

需要注意的是scl命令启用只是临时的,退出shell或重启就会恢复原系统gcc版本。
如果要永久生效的话,执行:

echo "source /opt/rh/devtoolset-10/enable" >>/etc/profile