Debian 新系统部署

基本配置

1
2
3
4
5
6
7
8
9
10
11
12
13
# 更新
sudo apt update
sudo apt upgrade
# 添加新用户
sudo adduser 用户名 -g users
# 给用户添加 sudo 权限
sudo usermod -aG sudo 用户名
# 配置 ssh key 登录
sudo mkdir -p /home/用户名/.ssh
vim /home/用户名/.ssh/authorized_keys
# 贴入 ssh 公钥
chown -R 用户名:users /home/用户名

设置自定义命令

/etc/profile 文件添加一下配置

1
2
3
4
5
alias l="ls -lhF --color"
alias ll="ls -lAhF --color"
alias la="ls -A --color"
alias clean="history -c; history -w"
alias ws="cd ~/workspace"

source /etc/profile

ssh 登录设置

1
2
3
sudo vim /etc/ssh/sshd_config
PasswordAuthentication no # 禁用密码登录
PermitRootLogin no # 禁止root用户登录,可通过user0登录后切换到root

安装应用包

1
sudo apt install git

Debian 通过 APT 安装 PHP

用 WSL Debian 12 安装 php 做开发,apt 的 PHP 版本足够新,安装非常方便。
如果 Debian 版本比较老,建议参考这里通过源码编译安装PHP

1
2
sudo apt install php php-dev php-gd php-curl php-mysql \
php-mbstring php-redis php-xdebug php-intl php-zip

安装 swoole

1
sudo pecl install swoole

修改配置

1
sudo vim /etc/php/8.2/cli/php.ini

加入:

1
extension=swoole.so

Debian 通过 APT 安装 MariaDB

在开发环境完全可以用 MariaDB 代替 MySQL,而且安装更方便。

1
2
3
4
5
6
7
8
9
10
11
# 更新索引包
sudo apt update
# 安装 MariaDB 软件包
sudo apt install mariadb-server
# 配置 MariaDB
sudo mysql_secure_installation
# 启动服务
sudo service mariadb start

# 查看服务状态
sudo service --status-all

服务状态显示例如:

1
2
3
4
5
6
7
8
9
[ + ]  cron
[ - ] hwclock.sh
[ + ] kmod
[ + ] mariadb
[ + ] networking
[ + ] procps
[ - ] rsync
[ - ] sudo
[ + ] udev
  • [ + ] 为已启动
  • [ - ] 为未启动

配置文件位置:

1
/etc/mysql/debian.cnf

Debian 12 设置使用清华镜像源

Debian 官方源网速太慢,换成国内源必不可少。

1、安装 apt https 支持

1
sudo apt install apt-transport-https ca-certificates

2、修改源

先备份 /etc/apt/sources.list,然后把其内容替换为:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-updates main contrib non-free non-free-firmware

deb https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware
deb-src https://mirrors.tuna.tsinghua.edu.cn/debian/ bookworm-backports main contrib non-free non-free-firmware

# deb https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware
# deb-src https://mirrors.tuna.tsinghua.edu.cn/debian-security bookworm-security main contrib non-free non-free-firmware

deb https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware
deb-src https://security.debian.org/debian-security bookworm-security main contrib non-free non-free-firmware

备注

Debian 系统源码编译安装 PHP8.2

1
2
groupadd www
useradd www -r -g www -s /bin/false
  • yum 安装相关库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
sudo apt update
sudo apt -y install cmake git wget mtr vim gcc autoconf make bison automake \
bzip2 ncurses-dev curl e2fsprogs openssl build-essential \
libtool libxml2-dev libssl-dev libcurl4-openssl-dev libpng-dev \
libjpeg-dev libonig-dev libzip-dev libsodium-dev libevent-dev \
libgd-dev libpng-dev libjpeg-dev libwebp-dev libgif-dev \


# sqlite3,如果不用 SQLite 就不需要这一步
wget https://sqlite.org/2023/sqlite-autoconf-3420000.tar.gz
tar zxf sqlite-autoconf-3420000.tar.gz
cd sqlite-autoconf-3420000/
./configure
make && make install

cd ~
wget https://www.php.net/distributions/php-8.2.8.tar.gz
tar zxf php-8.2.8.tar.gz

cd ~/php-8.2.8/

export LD_LIBRARY_PATH=/lib/:/usr/lib/:/usr/local/lib

./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-mysqlnd \
--with-pdo-mysql \
--with-pdo-mysql=mysqlnd \
--with-mysql-sock \
--with-iconv \
--enable-bcmath \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mbstring \
--enable-gd \
--enable-phpdbg \
--enable-shmop \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--with-zip \
--with-zlib \
--with-curl \
--with-openssl \
--enable-pcntl \
--enable-simplexml \
--with-sodium \
--enable-exif \
--enable-intl \
--with-webp \
--with-jpeg \
--enable-opcache \
--with-pear

make && make install

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

# CentOS
chkconfig --add php-fpm
chkconfig php-fpm on
chkconfig --list php-fpm # 查看服务器设置

# Debian
# 设置开机启动
# sysv-rc-conf --level 2345 php-fpm on
sysv-rc-conf php-fpm on # 也可以用 sysv-rc-conf 命令图形化设置服务
sysv-rc-conf --list php-fpm

# Debian 还需添加服务 才能用 service php-fpm xxx 命令
vim /lib/systemd/system/php-fpm.service
# 加入以下内容
[Unit]
Description=php-fpm service
After=network.target
[Service]
Type=forking
ExecStart=/etc/init.d/php-fpm start
ExecStop=/etc/init.d/php-fpm stop
ExecReload=/etc/init.d/php-fpm reload
ExecRestart=/etc/init.d/php-fpm restart
ExecStatus=/etc/init.d/php-fpm status
ExecForceQuit=/etc/init.d/php-fpm force-quit
ExecConfigtest=/etc/init.d/php-fpm configtest
PrivateTmp=true
[Install]
WantedBy=multi-user.target
# END -----

# 启动 php-fpm
service php-fpm start

# 安装 MariaDB(可代替 MySQL)
apt install mariadb-server
mysql_secure_installation
service mariadb start
  • 编译 fileinfo 扩展需要较多内存,报虚拟内存用尽可增加虚拟内存。
  • libgd-dev 包含了 freetype 库
  • SQLite3 扩展默认启用。 允许在编译时使用 –without-sqlite3 禁用之。
  • iconv 系统自带,不需要 apt 或源码安装
  • 加 –with-pear 才会生成 bin/pecl 文件