新服务器 环境部署
安装 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!");
评论区