新服务器 环境部署

安装 PHP 8.4

1.更新系统 & 安装依赖 Ubuntu 24.04 默认仓库 不包含 PHP 8.4,需添加 Ondřej Surý 的 PHP 仓库:

sudo add-apt-repository ppa:ondrej/php -y
sudo apt update && sudo apt upgrade -y

2.安装 PHP 8.4 以及tp8需要的php扩展

sudo apt install -y php8.4 php8.4-fpm php8.4-cli \
php8.4-common php8.4-mbstring php8.4-xml php8.4-opcache \
php8.4-zip php8.4-fileinfo php8.4-curl php8.4-pgsql php8.4-redis

3.检查 PHP 版本

php -v  # 应显示 PHP 8.4.x

4.配置 PHP-FPM
PHP-FPM 默认监听 unix:/run/php/php8.4-fpm.sock,无需修改。
但可以检查是否运行:

sudo systemctl start php8.4-fpm
sudo systemctl enable php8.4-fpm
sudo systemctl status php8.4-fpm  # 确认状态为 "active (running)"

安装 Composer

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
sudo chmod +x /usr/local/bin/composer
composer -V  # 验证安装

安装unzip
这是安装tp8的前置

sudo apt install -y unzip

安装tp8 项目

composer create-project topthink/think cream

安装 Nginx

sudo apt install -y nginx

启动 & 设置开机自启

sudo systemctl start nginx
sudo systemctl enable nginx
sudo systemctl status nginx

测试并重启 Nginx

sudo nginx -t  # 检查配置是否正确
sudo systemctl restart nginx

防火墙配置(UFW)

sudo ufw allow 'Nginx Full'  # 允许 HTTP (80) 和 HTTPS (443) 这个我不知道有没有用
sudo ufw allow 80  # HTTP 
sudo ufw allow 443  # HTTPS 
sudo ufw allow 22  # ssh
sudo ufw allow 6379  # redis
sudo ufw allow 9092  # kafka
sudo ufw allow 3306  # mysql  按需开启
sudo ufw allow 5432  # pgsql  按需开启
sudo ufw enable
sudo ufw status  # 查看规则

安装redis

sudo apt install -y redis-server
redis-server --version  # 验证安装  应输出类似 "Redis server v=7.2.4"
sudo systemctl start redis-server
sudo systemctl enable redis-server
sudo systemctl status redis-server  # 检查状态是否为 "active (running)"

修改配置文件(可选)

sudo vim /etc/redis/redis.conf

常用配置项:

bind 0.0.0.0  # 允许远程连接(需设置密码)
protected-mode no  # 关闭保护模式(仅测试环境用)
requirepass yourpassword  # 设置密码
maxmemory 1gb  # 限制内存

保存后重启 Redis:

sudo systemctl restart redis-server

安装依赖并编译 FFmpeg(含 AVIF)

以下为 Ubuntu 22.04 / 24.04 通用步骤:

这个方式ubuntu24.04.2有问题 用不了镜像里的软件包缺少

sudo apt install -y \
  autoconf automake build-essential cmake git libtool pkg-config \
  libfreetype6-dev libvorbis-dev libx264-dev libx265-dev libnuma-dev \
  libvpx-dev libopus-dev libwebp-dev libpng-dev libjpeg-dev \
  libssl-dev texinfo zlib1g-dev yasm nasm \
  python3 python3-pip

编译 libaom(AV1 编码器,用于 AVIF):

cd ~
git clone https://aomedia.googlesource.com/aom
cd aom
mkdir build && cd build
cmake .. -DCMAKE_BUILD_TYPE=Release -DBUILD_SHARED_LIBS=0 -DENABLE_NASM=1
make -j$(nproc)
sudo make install

编译 FFmpeg(启用 AVIF 支持)

cd ~
git clone https://github.com/ffmpeg/ffmpeg.git
cd ffmpeg
./configure \
  --enable-gpl \
  --enable-libx264 \
  --enable-libx265 \
  --enable-libvpx \
  --enable-libopus \
  --enable-libvorbis \
  --enable-libwebp \
  --enable-libfreetype \
  --enable-libfontconfig \
  --enable-libpng \
  --enable-libjpeg \
  --enable-libaom \
  --enable-nonfree \
  --enable-libssl
make -j$(nproc)
sudo make install

安装官方编译好的静态包:

cd ~
wget https://johnvansickle.com/ffmpeg/releases/ffmpeg-release-amd64-static.tar.xz

我存了这个下载的文件ffmpeg-release-amd64-static.tar.xz直接解压移动即可

tar -xf ffmpeg-release-amd64-static.tar.xz
cd ffmpeg-*-amd64-static #ffmpeg-7.0.2-amd64-static 截至编辑文章时

将 ffmpeg 和 ffprobe 拷贝到系统路径:

sudo cp ffmpeg ffprobe /usr/local/bin/

然后验证:

ffmpeg -version

kafka相关

Kafka 运行在 Java 虚拟机上,因此需要 Java:

sudo apt install default-jdk -y
java -version  # 确保 Java 安装成功

下载 Zookeeper

cd /opt
sudo wget https://downloads.apache.org/zookeeper/zookeeper-3.9.2/apache-zookeeper-3.9.2-bin.tar.gz
sudo tar -xzf apache-zookeeper-3.9.2-bin.tar.gz
sudo mv apache-zookeeper-3.9.2-bin zookeeper
cd zookeeper

配置 Zookeeper

sudo mkdir -p /opt/zookeeper/data

# 创建配置文件
sudo nano /opt/zookeeper/conf/zoo.cfg

写入内容如下(最简单的独立模式):

tickTime=2000
dataDir=/opt/zookeeper/data
clientPort=2181
maxClientCnxns=60

下载并解压 Kafka(二进制版)
可从 Apache 官方站点获取 Kafka:

# 进入适当目录
cd /opt

# 下载 Kafka(以 3.7.0 为例)
sudo wget https://downloads.apache.org/kafka/3.7.0/kafka_2.13-3.7.0.tgz

# 解压
sudo tar -xzf kafka_2.13-3.7.0.tgz
sudo mv kafka_2.13-3.7.0 kafka
cd kafka

Kafka 依赖 Zookeeper(默认用它做服务注册协调)。
启动 Zookeeper

cd /opt/zookeeper
bin/zkServer.sh start conf/zoo.cfg

💡可用 screen 或 tmux 保持进程运行,或加 & 在后台运行。

查看运行状态:

bin/zkServer.sh status conf/zoo.cfg

停止 Zookeeper

bin/zkServer.sh stop conf/zoo.cfg

启动 Kafka Server
另开一个终端窗口:

cd /opt/kafka
bin/kafka-server-start.sh config/server.properties

创建一个测试 Topic

bin/kafka-topics.sh --create --topic test-topic \
  --bootstrap-server localhost:9092 --partitions 1 --replication-factor 1

查看是否创建成功:

bin/kafka-topics.sh --list --bootstrap-server localhost:9092

后台运行方式(可选)

# 安装 screen
sudo apt install screen

# 启动
screen -S zookeeper
bin/zookeeper-server-start.sh config/zookeeper.properties

# 新终端
screen -S kafka
bin/kafka-server-start.sh config/server.properties

🚀 php-rdkafka 安装步骤(Ubuntu)

# 安装 librdkafka 库(必须)
sudo apt install librdkafka-dev

# 安装 pecl 扩展
pecl install rdkafka

# 编辑 php.ini 加入扩展
echo "extension=rdkafka.so" | sudo tee -a /etc/php/8.4/cli/php.ini

然后你就可以在 PHP 中使用 Kafka:

$conf = new RdKafka\Conf();
$producer = new RdKafka\Producer($conf);
$producer->addBrokers("localhost:9092");

$topic = $producer->newTopic("test");
$topic->produce(RD_KAFKA_PARTITION_UA, 0, "Hello Kafka!");