CentOS/Debian/Ubuntu系统 TCP-BBR 一键安装脚本

其他BBR一键脚本:『逗比』Debian/Ubuntu系统 TCP拥塞控制技术 ——TCP-BBR 一键安装脚本

本脚本适用环境

系统支持:CentOS 6+,Debian 7+,Ubuntu 12+

虚拟技术:OpenVZ 以外的(KVM、Xen、VMware等)

内存要求:≥128M

日期  :2017 年 01 月 13 日

关于本脚本

  • 本脚本已在 Vultr 上的 VPS 全部测试通过。
  • 当脚本检测到 VPS 的虚拟方式为 OpenVZ 时,会提示错误,并自动退出安装。
  • 某些服务商(如 Linode、DigitalOcean)可能需要首先将 VPS 配置为可自定义内核,然后 grub2 的配置才会生效。
  • 脚本运行完重启发现开不了机的,打开 VPS 后台控制面板的 VNC, 开机卡在 grub 引导, 手动选择内核即可。
  • 由于是使用最新版系统内核,最好请勿在生产环境安装,以免产生不可预测之后果。

使用方法

使用root用户登录,运行以下命令:

wget -N --no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh && chmod +x bbr.sh && bash bbr.sh

安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。

重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:

uname -r
# 查看内核版本,含有 4.9.0 就表示 OK 了
# ————————————
sysctl net.ipv4.tcp_available_congestion_control
# 返回值一般为:
# net.ipv4.tcp_available_congestion_control = bbr cubic reno
# ————————————
sysctl net.ipv4.tcp_congestion_control
# 返回值一般为:
# net.ipv4.tcp_congestion_control = bbr
# ————————————
sysctl net.core.default_qdisc
# 返回值一般为:
# net.core.default_qdisc = fq
# ————————————
lsmod | grep bbr
# 返回值有 tcp_bbr 模块即说明bbr已启动。

参考链接

更新日志

2017 年 01 月 13 日

1.更新 内核为 4.9.3。

2017 年 01 月 09 日

1.更新 内核为 4.9.1。

Ubuntu/Debian/CentOS系统安装Node.js软件教程

老蒋在”Ubuntu 18.04 LTS系统安装Node.js运行环境”文章中有分享到在Ubuntu环境中安装Node.js,且顺带一并安装NPM工具的教程。但是今天在给一个网友解决问题的时候,其需要在CentOS中安装Node.js,因为其默认的CentOS7版本Node.js低于5.0的,且某个软件是需要在高版本中运行。

所以,在这篇文章中,直接整理比较全的Ubuntu/Debian/CentOS系统,安装最新版本Node.js的教程,目前最新的版本是10.0,但是一般我们也不要太追求最新,我们可以安装8.0或者9.0差不多。

第一、Ubuntu

curl -sL https://deb.nodesource.com/setup_9.x | sudo -E bash -
apt-get install -y nodejs

第二、Debian

curl -sL https://deb.nodesource.com/setup_9.x | bash -
apt-get install -y nodejs

第三、CentOS

curl -sL https://rpm.nodesource.com/setup_9.x | bash -
yum install nodejs -y

安装过程都是差不多的。

未分类

看到如图,然后会指示我们下面执行哪个命令。

未分类

我们可以看到最新版本Node.JS和npm。

Debian Linux安装NFS

要在两台Linux电脑上共享一个目录,最简单的方式是使用NFS,将一台电脑的目录映射到另一台。

在Debian上实现NFS非常容易,首先,在作为服务端的电脑192.168.1.99上安装:

# apt-get install nfs-common nfs-kernel-server

创建需要共享的目录:

# mkdir /srv/upload
# chmod a+w /srv/upload

然后修改/etc/exports文件,将需要共享的目录和客户端添加进来:

/srv/upload  192.168.1.100(rw,sync)

表示允许IP为192.168.1.100的客户端以rw的模式访问。如果以只读模式访问则设置为ro。

然后启动服务:

# /etc/init.d/nfs-kernel-server start

在客户端安装NFS:

# apt-get install nfs-common

创建目录并挂载NFS:

# mkdir /mnt/upload
# mount 192.168.1.99:/srv/upload /mnt/upload

此时已经可以写入/mnt/upload,对应的服务器端可以看到创建的文件。

要在客户端每次启动时自动挂载NFS,可以编辑/etc/fstab,添加一行:

192.168.1.99:/srv/upload /mnt/upload nfs rsize=8192,wsize=8192,timeo=14,intr

均为缺省参数。

WordPress配合Debian VPS 使用sendmail发邮件

WordPress自带了一些邮件功能,但是一直没能正常使用,折腾了一下,顺便做个记录。起初以为厂商禁了25端口,后面发现并没有。本文使用的是Debian系统,涉及iptables,DNS,sendmail,PHP等内容。

0. 开启相关端口 25

25端口为SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)服务器所开放,主要用于发送邮件。如过不需要作为邮件服务器,建议关闭25端口,防止被恶意利用。有些服务器厂商会限制25端口,可以工单联系开通。Debian不会自动保存iptables改动,修改iptables端口的方法有很多,我使用的是修改iptables.up.rules的方法配合/etc/network/if-pre-up.d/iptables(内容如下)

#!/bin/bash
/sbin/iptables-restore < /etc/iptables.up.rules

平时修改iptables直接修改/etc/iptables.up.rules,可以自己使用代码生效,也可以重启自动生效。
/etc/iptables.up.rules里添加

-I INPUT -p tcp -m tcp --dport 25 -j ACCEPT

保存生效

> iptables-restore < /etc/iptables.up.rules

查看当前iptables规则

> iptables-save

1. 配置dns

需要到域名DNS管理那里设置DNS解析,如果是第三方服务如百度,cloudflare就到相应的设置。
添加2条解析

type    name    value
A   mail    xx.xx.xx.xx
AAAA    mail    xxx:xxx:xxx:xxx

A是IPv4,AAAA是IPv6,分别指向服务器的相应ip地址。为什么要两个,因为国内的邮箱如QQ,IPv4就可以了,但是Gmail这样的需要IPv6。

2. 配置dns反向解析

DNS是用来把IP映射成域名,让用户可以用google.com来访问而不是IP,那么Reverse DNS(反向域名解析)就是反过来,将域名映射成IP。因为多数垃圾邮件发送者使用动态分配或者没有注册域名的IP地址来发送垃圾邮件,以逃避追踪,使用了域名反向解析后,就可以大大降低垃圾邮件的数量。不设置的话会被拦截、拒绝,出现如下提示

----- Transcript of session follows -----
... while talking to gmail-smtp-in.l.google.com.:
>>> DATA
<<< 550-5.7.1 [xxx:xxx:xxx:xxx:xxx:xxx:xxx:xxx] Our system has detected that
<<< 550-5.7.1 this message does not meet IPv6 sending guidelines regarding PTR
<<< 550-5.7.1 records and authentication. Please review
<<< 550-5.7.1  https://support.google.com/mail/?p=IPv6AuthError for more information
<<< 550 5.7.1 . m6si6838178pfj.586 - gsmtp
554 5.0.0 Service unavailable

设置Reverse DNS需要到VPS提供商那里设置,如: vultr后台 – server – 某一台服务器 – setting – Reverse DNS
添加IPv4/IPv6 2条Reverse DNS记录

IP Address  Reverse DNS
xx.xx.xx.xx mail.xxx.com
xxx:xxx:xxx:xxx mail.xxx.com

3. 设置hostname

设置服务器的hostname和DNS需要解析的域名一致如mail.xxx.com

> vi /etc/hostname
#立即生效
> hostname -F /etc/hostname

4. 安装sendmail

sendmail是一种邮件传送代理(MTA,Mail Transport Agent)服务器,也可以用其他的代替。

> apt-get install sendmail

安装过程中有重要提示:
To enable sendmail to use STARTTLS, you need to:
1) Add this line to /etc/mail/sendmail.mc and optionally
to /etc/mail/submit.mc:
include(`/etc/mail/tls/starttls.m4')dnl
2) Run sendmailconfig
3) Restart sendmail
根据提示,需要
1) /etc/mail/sendmail.mc和/etc/mail/submit.mc,添加下面include的那一行
include(`/etc/mail/tls/starttls.m4')dnl
并且/etc/mail/sendmail.mc在DAEMON_OPTIONS改成
DAEMON_OPTIONS(`Family=inet, Name=MTA-v4, Port=smtp, Addr=0.0.0.0')dnl
2)执行 > sendmailconfig
3)执行 > service sendmail restart
查询是否正常运行服务
> service sendmail status

5. 安装MAILUTLS

mail 是用户使用客户端(类似foxmail)负责向MTA 撰写 发送邮件,要使用mail来发送邮件,需要安装mailutils。

> apt-get install mailutils

简单的命令来测试发送邮件

> echo "Hello, Water" | mail -s "Water's Greeting" hinwen123@gmail.com

意思是将内容为Hello,Water,主题为Water’s Greeting的email发送到指定的邮箱。
tips:这里测试了几次,刚开始QQ邮箱成功,但是到了垃圾箱,Gmail失败(原因是DNS反向解析没有配置),配置DNS反向解析后,QQ邮箱顺利收件,Gmail收件至垃圾箱,估计是因为内容太简陋被扔到了 垃圾箱。

6. 让PHP支持mail()函数

需要修改php.ini里面的sendmail_path,如何找到php.ini,可以使用 phpinfo.php查看,或者探针,这类应用一般在一键脚本都会携带,如没有可以上传到web目录即可。

Configuration File (php.ini) Path   /usr/local/php/etc
Loaded Configuration File   /usr/local/php/etc/php.ini

php.ini里面的sendmail_path修改为:

sendmail_path = /usr/sbin/sendmail -t -i

重启生效

> service php-fpm restart

如不确定是否修改成功,可继续到phpinfo.php中查看

sendmail_path   /usr/sbin/sendmail -t -i

7. 安装wordpress wp-mail-smtp 插件

这个插件可以配置第三方邮件比如使用QQ邮箱账号密码代发,这里使用原生mail()发送,毕竟搭建了邮件服务器

1.设置邮件地址如:water@mail.xxx.com
2.设置用户名如:water
3.勾选使用php mail()函数
4.点击测试发邮件。

注意只能测试发送的过程,如果没开25端口,会提示端口连接失败,如果是mail()函数不支持也会提示。如果邮件被拒绝(或其他原因没收到,垃圾箱也没有),是不会提示的,需要到服务器 /var/mail/www 来查看日志 ,www是用户名。

8. 其他

  • 其他并不需要做什么设置,插件已经自动配置好了用户名和邮箱,目前是有评论待审和管理员登录时(由于安装了安全管理插件Wordfence)就有邮件通知啦。其他邮件功能还有待研究。
  • 这里只是配置了发邮件的服务和功能,收件的还没有弄,小域名邮箱,应该没什么用处吧,其他的联系就由Gmail来解决。
  • 邮件服务域名建议不要使用cdn之类的使用DNS服务商的IP来隐藏IP,否则会导致DNS和DNS反向解析的IP对应不上。

debian9安装mariadb apache php7

一、

apt install apache2

二、

apt install php (安装后测试phpinfo)
<?php
phpinfo();
?>

三、

apt install mariadb-server

1、安装完 MariaDB 之后,运行 mysql_secure_installation 可以设置root密码及删除测试账户之类的信息。

2、新建一个用户:

insert into mysql.user(Host,User,Password) values("localhost","admin",password("admin"));

刷新系统权限表

flush privileges;

这样就创建了一个名为:admin 密码为:admin 的用户

3、创建数据库(在root权限下)

create database abc;
//授权admin用户拥有abc数据库的所有权限。

grant all privileges on abc.* to admin@localhost identified by 'admin';
//刷新系统权限表
mysql>flush privileges;

4、删除用户。

@>mysql -u root -p
@>密码
mysql>

DELETE FROM mysql.user WHERE User="admin" and Host="localhost";
mysql>flush privileges;

5、mysql>drop database abc;//删除用户的数据库

6、查看数据库中具体某个用户的权限

mysql> show grants for 'cactiuser'@'%';

7、查询所有用户:

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

8、显示所有数据库

show databases;

9、修改指定用户密码。

@>mysql -u root -p
@>密码
mysql>

update mysql.user set password=password('新密码') where User="admin" and Host="localhost";
mysql>flush privileges;

10、删除某个用户权限

revoke all privileges on wordpress.* from 'admin'@'localhost';

Debian/Ubuntu修改crontab默认编辑器

之前在一台vps上使用crontab -e来编辑定时任务,一般默认都是nano编辑器,但是那台小鸡的nano编辑器不好使怎样都没法保存,只要将默认编辑器修改为vim后解决。记录一下Debian和Ubuntu修改默认编辑器的方法。

Debian下先安装好vim编辑器,apt-get install vim,然后输入

update-alternatives --config editor

我这里出现了好几个,然后我选择的是7,/usr/bin/vim.basic也就是vim基本编辑

root@vps:~# update-alternatives --config editor
There are 8 choices for the alternative editor (providing /usr/bin/editor).

  Selection    Path                Priority   Status
------------------------------------------------------------
* 0            /usr/bin/joe         70        auto mode
  1            /bin/nano            40        manual mode
  2            /usr/bin/jmacs       50        manual mode
  3            /usr/bin/joe         70        manual mode
  4            /usr/bin/jpico       50        manual mode
  5            /usr/bin/jstar       50        manual mode
  6            /usr/bin/rjoe        25        manual mode
  7            /usr/bin/vim.basic   30        manual mode
  8            /usr/bin/vim.tiny    10        manual mode

Ubuntu下只要运行select-editor即可选择默认编辑器

Select an editor.  To change later, run 'select-editor'.
  1. /bin/ed
  2. /bin/nano
  3. /usr/bin/vim.basic
  4. /usr/bin/vim.tiny

这里我就选择了3,使用vim基本模式,正常编辑。

debian8 安装postgresql 和 phpPgAdmin

安装软件包

sudo apt-get install postgresql postgresql-contrib

配置apache2

sudo vim /etc/apache2/conf-available/phppgadmin.conf

内容如下

<Directory /usr/share/phppgadmin>

DirectoryIndex index.php
AllowOverride None
Allow from all
# Only allow connections from localhost:
#Require local

<IfModule mod_php5.c>

查看页面

http://192.168.1.125/phppgadmin/

设置postgresql账号和密码

账号为test,密码为password

sudo -u postgres psql template1
template1=# create user test with password 'password' createdb createuser; 

成功登陆数据库

温馨提示:数据库一般不要让其他客户端直接连接,你可以提供http的接口或者其他方式,所以我这里也没有配置其他客户端连接。

Debian 环境下安装配置

GitLab是一个利用Ruby on Rails开发的开源应用程序,实现一个自托管的Git项目仓库,可通过Web界面进行访问公开的或者私人项目。
它拥有与GitHub类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。

前言

公司目前的开发架构中,使用了gitlab来统一管理上线发布代码的操作。鉴于是之前的前辈搭建的,所以打算自己手动安装一次,来熟悉相关的配置。

安装

中文版gitlab网站:https://www.gitlab.com.cn/installation/
英文版gitlab网站:https://about.gitlab.com/downloads/

选择对应的操作系统

我这里选择 Debian 9 版本,因为要在服务器上进行搭建,长期运行。综合考虑后采用 debian系统,稳定,快速。

开始安装

安装过程非常简单, 按照页面中的执行步骤,依次执行命令即可。

1. 安装配置依赖项

如想使用 Postfix 来收发邮件,在安装期间请选择’Internet Site’. 您也可以用 exim4 或者配置外部的SMTP服务,使用SMTP发送邮件。
上面的安装期间,我没有选择internet site 选择的是本地local

sudo apt-get install curl openssh-server ca-certificates postfix

2. 添加GitLab仓库,并安装到服务器上

curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash

安装的过程中会有个蓝色的窗口提示你输入名称,这个是gitlab的访问域名,因为默认通过nginx进行解析的时候,指向的是你配置的这个域名,并且通过80端口。安装完成后可以看nginx的conf文件。

sudo apt-get install gitlab-ce

3. 启动GitLab

这个会加载所有的配置,启动相应的服务。所以说,和网络上其他的安装教程来比,新版本安装起来实在是太爽了。

sudo gitlab-ctl reconfigure

配置

更换域名

未分类

如上图,域名被替换为域名了,但是之前是字符串git@debian…,因为在安装的时候,蓝色窗口弹出的时候直接按了回车使用了默认值。修改方法如下:

打开配置文件

vim /etc/gitlab/gitlab.rb

找到第7行的external_url将值进行修改后保存

3 ## GitLab URL
4 ##! URL on which GitLab will be reachable.
5 ##! For more details on configuring external_url see:
6 ##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
7 external_url 'http://192.168.186.136'

重新启动gitlab,完成域名修改。

gitlab-ctl reconfigure

添加 ssh 公钥

因为在gitlab上使用git命令进行操作,需要进行身份验证,依赖于ssh公钥,所以需要将ssh公钥加入到自己的配置文件中,

ssh-keygen

下面命令得到的内容就是公钥

cat ~/.ssh/id_rsa.pub

Drupal 8在Debian上安装配置MySQL

本教程介绍为Drupal 8在Debian使用APT安装MySQL,因为使用APT安装方便简单,要安装MySQL需要安装MySQL官方APT软件源。

在Debian上安装MySQL数据库

1)下载MySQL Apt源安装包

进入MySQL官方软件源下载页面,下载Debian软件源

wget https://dev.mysql.com/get/mysql-apt-config_0.8.7-1_all.deb

2)安装MySQL Apt源

安装下载的MySQL Apt软件包

sudo dpkg -i mysql-apt-config_0.8.7-1_all.deb

运行命令后,会弹出安装选择软件集界面:

未分类

选择的软件选集有三项:

  • MySQL Server & Cluster:MySQL服务器软件包,必选

  • MySQL Tools & Connectors:MySQL一些工具包和一些动态链接库,一般情况下应该选择为:Enabled

  • MySQL Preview Packages:mysql-shell高级命令行工具,但是在Debian中此包为空

使用上下方向键移动选定某项,选中后按“Enter”键进入设置,如选择MySQL服务器:

未分类

使用上下方向键移动选项,选中后按“Enter”选择服务器的版本。

三项都设置完成后,使用上下方向键移动到“OK”项,然后按“Enter”,安装软件源。

3)更新软件源

sudo apt-get update

4)安装MySQL数据库服务器

sudo apt-get install mysql-community-server

在安装过程中会提示你输入密码:

未分类

5)启动MySQL数据库服务器

sudo systemctl start mysql

6)使MySQL数据库服务器开机自启动

sudo systemctl enable mysql

为Drupal 8创建所需的数据库和角色(用户)

1)使用mysql命令登陆数据库服务器

mysql -u root -p

2)创建Drupal 8使用的数据库

create database drupal_db;

把drupal_db替换为你要使用的数据库名。

3)为Drupal 8网站单独创建一个用户,用以连接数据库

CREATE USER 'drupal_user'@'localhost' IDENTIFIED BY 'password';

把drupal_user替换为你要使用的用户名,把password替换为你使用的密码。

4)把对数据库drupal_db的所有操作权限赋予drupal_user

GRANT ALL ON drupal_db.* TO 'drupal_user'@'localhost';

5)Drupal 8使用MariaDB数据库设置

在Drupal 8安装过程中,如果选择使用MariaDB数据库,只需把我们创建的数据库,用户,密码输入

未分类

然后点击“保存并继续”按钮。

在 Ubuntu/Debian 下安装 PHP7.2

介绍

如果不出意外的 PHP 7.2.0 即将在 2017 年11月30日 发布 GA,届时大家就可以第一时间尝鲜了,所以这里先放出 PHP7.2 安装的教程以便大家升级。

适用系统: Ubuntu 16.04 LTS / Ubuntu 14.04 LTS / Debian 9 stretch / Debian 8 jessie

安装 PHP

Ondřej Surý 的 PHP PPA 为 Ubuntu 16.04/14.04 提供了 PHP7.2 版本,同时也有通过个人网站为 Debian 9/8 提供 PHP7.2 版本,因此 Ubuntu 是源于 Debian 所以基本可以通用,同时维护难度较低,软件源安装的 PHP 默认以 Unix Socket 的状态运行在 /run/php/php7.1-fpm.sock ,比使用 TCP 以 localhost:9000 的方式性能更好。

值得一提的是 Ondřej Surý 是 Debian PHP 软件源的官方维护者之一,所以说稳定性和安全性基本上不是问题。

由于 PHP7.2 是新出的版本势必有不少的兼容性问题,特别是国产的程序建议等待开发者通知再进行升级,一些 PECL 扩展可能也不会及时适配最新版。建议更新前提前做好备份准备。目前已知的是 WordPress 4.9 版本开始支持 PHP7.2。

添加软件源

Ubuntu

安装软件源拓展工具:

apt -y install software-properties-common

添加 Ondřej Surý 的 PHP PPA 源,需要按一次回车:

add-apt-repository ppa:ondrej/php  

更新软件源缓存:

apt update

Debian

添加 GPG

wget -O /etc/apt/trusted.gpg.d/php.gpg https://mirror.xtom.com.hk/sury/php/apt.gpg

安装 apt-transport-https

apt-get install apt-transport-https

添加 sury 软件源

sh -c 'echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" > /etc/apt/sources.list.d/php.list'   

更新软件源缓存:

apt-get update

安装软件

安装 PHP7.2:

apt install php7.2-fpm php7.2-mysql php7.2-curl php7.2-gd php7.2-mbstring php7.2-xml php7.2-xmlrpc php7.2-zip php7.2-opcache -y

设置 PHP

安装完成后,编辑 /etc/php/7.2/fpm/php.ini 替换换 ;cgi.fix_pathinfo=1 为 cgi.fix_pathinfo=0 快捷命令:

sed -i 's/;cgi.fix_pathinfo=1/cgi.fix_pathinfo=0/' /etc/php/7.2/fpm/php.ini 

管理 PHP

安装好了先重启一下!

systemctl restart php7.2-fpm

更多操作:

systemctl restart php7.2-fpm #重启
systemctl start php7.2-fpm #启动
systemctl stop php7.2-fpm #关闭
systemctl status php7.2-fpm #检查状态

更新 PHP

运行下面的命令系统就会更新所有可以更新的软件包括 PHP

apt update
apt upgrade -y

安装更多组件

上面的一条命令安装 PHP 只是安装了部分 PHP 拓展,更多的软件可见:

root@mf88.biz-service:~# apt-cache search php7.2

php-radius - radius client library for PHP
php-http - PECL HTTP module for PHP Extended HTTP Support
php-uploadprogress - file upload progress tracking extension for PHP
php-yaml - YAML-1.1 parser and emitter for PHP
php-mongodb - MongoDB driver for PHP
php-apcu - APC User Cache for PHP
php-imagick - Provides a wrapper to the ImageMagick library
php-ssh2 - Bindings for the libssh2 library
php-redis - PHP extension for interfacing with Redis
php-memcached - memcached extension module for PHP, uses libmemcached
php-apcu-bc - APCu Backwards Compatibility Module
php-rrd - PHP bindings to rrd tool system
php-uuid - PHP UUID extension
php-memcache - memcache extension module for PHP
php-zmq - ZeroMQ messaging bindings for PHP
php-igbinary - igbinary PHP serializer
php-msgpack - PHP extension for interfacing with MessagePack
php-geoip - GeoIP module for PHP
php-tideways - Tideways PHP Profiler Extension
php-yac - YAC (Yet Another Cache) for PHP
php-mailparse - Email message manipulation for PHP
php-oauth - OAuth 1.0 consumer and provider extension
php-gnupg - PHP wrapper around the gpgme library
php-propro - propro module for PHP
php-raphf - raphf module for PHP
php-solr - PHP extension for communicating with Apache Solr server
php-stomp - Streaming Text Oriented Messaging Protocol (STOMP) client module for PHP
php-gearman - PHP wrapper to libgearman
php-phalcon - full-stack PHP framework delivered as a C-extension
php-ds - PHP extension providing efficient data structures for PHP 7
php-sass - PHP bindings to libsass - fast, native Sass parsing in PHP
php-lua - PHP Embedded lua interpreter
libapache2-mod-php7.2 - server-side, HTML-embedded scripting language (Apache 2 module)
libphp7.2-embed - HTML-embedded scripting language (Embedded SAPI library)
php7.2-bcmath - Bcmath module for PHP
php7.2-bz2 - bzip2 module for PHP
php7.2-cgi - server-side, HTML-embedded scripting language (CGI binary)
php7.2-cli - command-line interpreter for the PHP scripting language
php7.2-common - documentation, examples and common module for PHP
php7.2-curl - CURL module for PHP
php7.2-dba - DBA module for PHP
php7.2-dev - Files for PHP7.2 module development
php7.2-enchant - Enchant module for PHP
php7.2-fpm - server-side, HTML-embedded scripting language (FPM-CGI binary)
php7.2-gd - GD module for PHP
php7.2-gmp - GMP module for PHP
php7.2-imap - IMAP module for PHP
php7.2-interbase - Interbase module for PHP
php7.2-intl - Internationalisation module for PHP
php7.2-json - JSON module for PHP
php7.2-ldap - LDAP module for PHP
php7.2-mbstring - MBSTRING module for PHP
php7.2-mysql - MySQL module for PHP
php7.2-odbc - ODBC module for PHP
php7.2-opcache - Zend OpCache module for PHP
php7.2-pgsql - PostgreSQL module for PHP
php7.2-phpdbg - server-side, HTML-embedded scripting language (PHPDBG binary)
php7.2-pspell - pspell module for PHP
php7.2-readline - readline module for PHP
php7.2-recode - recode module for PHP
php7.2-snmp - SNMP module for PHP
php7.2-soap - SOAP module for PHP
php7.2-sqlite3 - SQLite3 module for PHP
php7.2-sybase - Sybase module for PHP
php7.2-tidy - tidy module for PHP
php7.2-xml - DOM, SimpleXML, WDDX, XML, and XSL module for PHP
php7.2-xmlrpc - XMLRPC-EPI module for PHP
php7.2-zip - Zip module for PHP
php7.2-xsl - XSL module for PHP (dummy)
php7.2 - server-side, HTML-embedded scripting language (metapackage)
php7.2-sodium - libsodium module for PHP