Ubuntu24.04 安装 禅道
Ubuntu24.04 安装 禅道
环境:
软件 | 版本 |
---|---|
Ubuntu | 24.04.3 |
Nginx | 1.24.0 |
MySQL | 8.4.6 |
PHP | 8.3.6 |
phpMyAdmin | 5.2.2 |
ZenTaoPMS | 21.7.5 |
LNMP
1. 更新本地软件包索引并升级已安装软件
更新可用软件包列表
把已安装的软件升级到最新版
安装常用工具
sudo apt update && sudo apt -y upgrade
sudo apt -y install curl wget vim unzip net-tools
2. 安装 Nginx Web 服务器
- 安装 Nginx
- 设置开机自启
- 设置开机自启
- 查看运行状态(按 q 退出)
sudo apt -y install nginx
sudo systemctl enable nginx
sudo systemctl start nginx
sudo systemctl status nginx
journalctl -u nginx -f
修改nginx启动端口为66
vim /etc/nginx/sites-available/default
sudo systemctl restart nginx
浏览器访问测试
3. 安装 MySQL
-
MySQL APT存储库的下载页面
wget https://repo.mysql.com//mysql-apt-config_0.8.34-1_all.deb
-
安装mySQL APT存储库
sudo dpkg -i mysql-apt-config_0.8.34-1_all.deb
-
使用以下命令从MySQL APT存储库更新包信息(此步骤是必需的):
sudo apt-get update
-
使用APT安装MySQL
sudo apt-get -y install mysql-server
这将安装MySQL服务器的包,以及客户端和数据库公共文件的包。
在安装过程中,您需要为MySQL安装的根用户提供密码。
-
启动和关闭MySQL服务
MySQL服务器在安装后自动启动。您可以使用以下命令检查MySQL服务器的状态:
sudo systemctl status mysql
如果操作系统启用了systemd,则应该使用标准的systemctl(或者参数相反的服务)命令(如stop、start、status和restart)来管理MySQL服务器服务。默认情况下,mysql服务是启用的,它在系统重新启动时启动。
一些依赖于本地MySQL包的第三方本地存储库包可能无法与MySQL APT存储库包一起使用,
不应与它们一起使用;其中包括akonadi后端mysql、handlersocket-mysql-5.5和zoneminder。
-
登录MySQL
mysql -uroot -p
-
修改密码并设置访问主机
运行安全初始化脚本(交互式,按提示操作)
本案例未使用该方法,可略过此步骤
# 设置 root 密码、删除匿名用户、禁止远程 root 等,本案例未使用该方法,可略过此步骤 # sudo mysql_secure_installation
使用SQL语句方式,本案例使用
select host , user , plugin ,authentication_string from mysql.user;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'lihaozhe'; flush privileges;update mysql.user set host = '%' where user='root'; flush privileges;quit;
sudo systemctl restart mysql
4. 安装 PHP 8.3 及常用扩展
sudo apt -y install php-fpm php-mysqlnd php-cli
sudo apt -y install php-{mbstring,zip,gd,curl,json,intl,bcmath,xml,opcache}
sudo systemctl enable --now php$(php -v | awk '/^PHP [0-9]/{print $2}' | cut -d. -f1,2)-fpm
下面把这两条命令逐段、逐包拆开,告诉你“为什么要装、装了什么、不装会怎样”。
-
php-fpm
• 全称:PHP FastCGI Process Manager
• 作用:把 PHP 解释器变成常驻进程,供 Nginx/Apache 通过 FastCGI 协议调用,比传统
mod_php
省内存、易池化、易隔离。• 不装:Nginx 无法解析
.php
,浏览器访问直接下载源码。 -
php-mysql
• 作用:给 PHP 提供与 MySQL/MariaDB 通信的驱动(新版里实际是
php-mysqlnd
)。• 不装:mysqli、PDO_MySQL 都不可用,程序连不上数据库。
-
php-cli
• 作用:命令行版 PHP。你在终端里敲
php -v
、composer
、artisan
、drush
之类都要用它。• 不装:无法离线跑 PHP 脚本、无法使用 Composer 等 CLI 工具。
逐个解释:
扩展 | 功能场景 | 缺了会怎样 |
---|---|---|
mbstring | 多字节字符串(UTF-8/中文/日文/emoji)处理,正则、截取、大小写转换。 | 出现乱码、strlen 算错字数、Laravel 直接报错。 |
zip | 读写 .zip 压缩包(WordPress/Composer 更新、备份)。 | 无法解压上传的插件、无法生成备份。 |
gd | 图片处理:缩略图、加水印、验证码。 | 无法调用 imagecreatefromjpeg() ,上传头像失败。 |
curl | HTTP 客户端,访问 API、抓取网页。 | 无法使用 Guzzle、无法请求微信/支付宝接口。 |
json | 编码/解码 JSON。 | 与前端、第三方 API 交互失败(现在已内置,但仍需显式安装)。 |
intl | ICU 国际化库:格式化货币、日期、排序、转换字符集。 | Laravel Carbon、Symfony Intl 直接抛异常。 |
bcmath | 任意精度数学计算,财务场景避免浮点误差。 | 金额计算出现 0.30000000000000004 之类问题。 |
xml | 解析 XML、RSS、SOAP、微信支付回调。 | 无法使用 SimpleXML/DOMDocument。 |
opcache | 字节码缓存,把编译后的 PHP 脚本放内存,提速 2~5 倍。 | 性能大幅下降,每次请求都重新编译。 |
5. Nginx配置PHP并验证安装
配置PHP时区
-
修改 /etc/php/8.3/fpm/php.ini 配置文件,添加以下内容:
date.timezone = Asia/Shanghai
-
重启服务
sudo systemctl restart php8.3-fpm nginx
验证安装
-
创建测试 PHP 文件:
vim /usr/share/nginx/html/info.php
添加内容:
<?php phpinfo(); ?>
-
通过浏览器访问:
- PHP 信息:
http://服务器IP:PORT/info.php
- PHP 信息:
6. 安装 phpMyAdmin
-
下载并解压phpMyAdmin
wget https://files.phpmyadmin.net/phpMyAdmin/5.2.2/phpMyAdmin-5.2.2-all-languages.zip unzip phpMyAdmin-5.2.2-all-languages.zip -d /usr/share mv /usr/share/phpMyAdmin-5.2.2-all-languages /usr/share/phpmyadmin
-
创建缓存模板文件的临时目录并授权
mkdir /usr/share/phpmyadmin/tmp sudo chown -R www-data:www-data /usr/share/phpmyadmin/tmp/ sudo chmod -R 755 /usr/share/phpmyadmin/tmp/
-
配置
cookie
加密密钥cp /usr/share/phpmyadmin/config.sample.inc.php /usr/share/phpmyadmin/config.inc.php
打开
/usr/share/phpmyadmin/config.inc.php
文件,添加或修改以下配置:c f g [ ′ b l o w f i s h s e c r e t ′ ] = ′ 这里填随机复杂字符 串 ′ ; 示例:可生成 32 位随机字符,如在线工具生成后替换,也可简单写(但越复杂越安全)比如: cfg['blowfish_secret'] = '这里填随机复杂字符串'; 示例:可生成 32 位随机字符,如在线工具生成后替换,也可简单写(但越复杂越安全) 比如: cfg[′blowfishsecret′]=′这里填随机复杂字符串′;示例:可生成32位随机字符,如在线工具生成后替换,也可简单写(但越复杂越安全)比如:cfg[‘blowfish_secret’] = ‘abcdefghijklmnopqrstuvwxyz123456’;
$cfg['blowfish_secret'] = 'abcdefghijklmnopqrstuvwxyz123456';
-
创建独立的 Nginx 虚拟主机
创建并编写 /etc/nginx/conf.d/phpmyadmin.conf 文件,内容如下:
server {listen 33;# server_name _; # 如要域名访问,把 _ 改成 phpmyadmin.example.comroot /usr/share/phpmyadmin;index index.php index.html;# 安全:禁止访问 .ht* 隐藏文件location ~ /\.ht { deny all; }# 禁止访问敏感目录location ~ ^/(doc|sql|setup)/ { deny all; }# 处理 PHPlocation ~ \.php$ {include snippets/fastcgi-php.conf;# Ubuntu 24.04 默认 php-fpm sock 路径,若版本不同请自行调整fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;}# 其余静态文件location / {try_files $uri $uri/ =404;} }
注意:云服务器厂商对80和8080常用web服务端口有限制故而监听端口改成了33
-
重启服务
systemctl restart nginx php8.3-fpm
-
配置连接
-
使用浏览器打开链接 http://服务器IP:33,见到如下界面:
-
-
使用数据库账号密码登录后进入主界面
点击查找原因 -
创建一个名为’phpmyadmin’的数据库,并在那里设置phpMyAdmin配置存储。
点击创建
-
重新访问主页
禅道
1. 下载禅道
禅道下载页面:https://www.zentao.net/downloads.html
注意:根据实际情况选择对应版本
2. 成为 root 用户
以 root 权限启动新的 shell 会话。
sudo -s
3. 下载并配置禅道
# 下载禅道开源版21.7.5
wget https://dl.zentao.net/zentao/21.7/ZenTaoPMS-21.7.5-php8.1.zip# 解压到网站目录
unzip ZenTaoPMS-21.7.5-php8.1.zip -d /var/www
4. 配置 Nginx 虚拟主机
vim /etc/nginx/sites-available/zentao
添加以下配置:
server {listen 6633;root /usr/share/zentaopms/www;index index.php index.html index.htm;access_log /var/log/nginx/zentao_access.log;error_log /var/log/nginx/zentao_error.log;location / {try_files $uri $uri/ /index.php?$query_string;}location ~ \.php$ {include snippets/fastcgi-php.conf;fastcgi_pass unix:/run/php/php8.3-fpm.sock;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}# 禁止访问.ht文件location ~ /\.ht {deny all;}
}
启用站点配置:
ln -s /etc/nginx/sites-available/zentao /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginx
5. 设置文件权限
chown -R www-data:www-data /usr/share/zentaopms
6. 完成禅道安装
-
打开浏览器,访问你的服务器 IP 或域名、
-
按照禅道安装向导进行操作
-
在数据库配置页面,输入之前创建的数据库信息:
- 数据库类型:MySQL
- 数据库主机:localhost
- 数据库名:zentao
- 用户名:zentao
- 密码:你设置的数据库密码
-
截图如下: