ProjeQtOr——面向质量控制的项目管理软件(一)

最近想选型一款免费的项目管理软件,除了具备计划管理、进度管控、任务管理、资源管理这些基本管理要求,也希望能将项目整个生命周期中的预算、成本、交付物等能集中管控,也可以让项目产生的大量数据集中管理,按照组织级度量要求积累项目的度量数据。这里将ProjeQtOr作为候选方案之一,简单记录部署和使用操作以备后需。

ProjeQtOr部署

ProjeQtOr源于“Quality based Project Organizer”,是一个开源的基于项目管理的质量控制软件。ProjeQtOr安装简单、使用方便,可参数化、定制化。ProjeQtOr除了管理项目计划,任务管理,还可以预估项目风险、评估风险,跟踪记录项目中发生的系统故障、缺陷、变更申请等等。

  • 环境要求

MYSQL数据库5及以上版本,或者PostgreSQL数据库V8.4、V9.1以上;

PHP服务器5.2及以上版本;

一个WebServer,apache或者nginx。

上述准备环境也可以使用一键式XAMPP建站集成软件包。

  • 安装部署

  • 部署环境准备

        一台Mac(M2)设备;操作系统MacOS 14;

        Homebrew软件包管理器。

        Homebrew如果没有安装的话,可访问https://brew.sh,复制命令

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
  • brew更新和升级

brew update
brew upgrade

  • 安装Mysql、nginx和php

brew install mariadb
brew install nginx
brew install php

  • PHP、Nginx和Mysql的建议配置及依赖软件

  PHP建议配置:

    max_input_vars = 4000 ; 
    must be > 2000 for real work allocation screen
    request_terminate_timeout = 0 ; 
    must not end requests on timeout to let cron run without ending;
    max_execution_time = 30 ;
    memory_limit = 512M ; minimum advised for PDF generation
    file_uploads = On ; to allow attachements and documents management
    error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT
 在配置文件php.ini中修改,配置文件所在目录:/opt/homebrew/etc/php/8.3
​​​​​​​
  PHP扩展:  
    gd => for reports graphs
    imap ==> to retrieve mails to insert replay as notes
    mbstring => mandatory. for UTF-8 compatibility
    mysql => for default MySql database
    openssl => to send mails if smtp access is authentified (with user / password) 
    pdo_mysql => for default MySql database
    pdo_pqsql => if database is PostgreSql
    pgsql => if database is PostgreSql
    php-xml => for xml parsing
    zip => ZipArchive class is mandatory to manage plugins and export to Excel format
 php8.3版本已自带很多php扩展,只需在php.ini中开启相应的扩展即可。

  MySql建议配置:
    collation when creating the database : utf8_general_ci
    innodb-default-row-format=dynamic
  • brew出现的问题与解决

安装完php后,使用brew services stop php停止php服务时报错,Error: uninitialized constant Homebrew::Service​​​​​​​。

解决:这是指Homebrew无法加载Homebrew::Service模块。百度借用别人的经验,删除目录:rm -rf /opt/homebrew/Library/Taps/homebrew/homebrew-services。然后使用brew services list,发现服务,所有服务已经重新生成。再使用brew services start/stop php都正常。

  •  确认和验证

  • 确认软件安装路径和配置文件路径

nginx安装路径:/opt/homebrew/Cellar/nginx

nginx配置文件路径:/opt/homebrew/etc/nginx/nginx.conf

php安装路径:/opt/homebrew/etc/php

php配置文件路径:/opt/homebrew/etc/php/8.3

  • 验证php服务

执行php -v命令

PHP 8.3.11 (cli) (built: Aug 27 2024 19:16:34) (NTS)

Copyright (c) The PHP Group

Zend Engine v4.3.11, Copyright (c) Zend Technologies

    with Zend OPcache v8.3.11, Copyright (c), by Zend Technologies

执行ps -ef |grep php-fpm

  501 30032     1   0  php-fpm: master process (/opt/homebrew/etc/php/8.3/php-fpm.conf)

  501 30033 30032   0  php-fpm: pool www

  501 30034 30032   0  php-fpm: pool www

可见php服务和php-fpm服务都正常运行 

  • 验证nginx和mysql服务

使用 brew services list 查看所有服务

mariadb started jlu  ~/Library/LaunchAgents/homebrew.mxcl.mariadb.plist

nginx   started jlu  ~/Library/LaunchAgents/homebrew.mxcl.nginx.plist

php     started jlu  ~/Library/LaunchAgents/homebrew.mxcl.php.plist

可以看出mariadb、nginx和mysql都处于运行状态

  •  下载ProjeQtOr 

 官方下载地址:ProjeQtOr free project management software - Downloads​​​​​​

下载当前最新的稳定版本11.3.2。

将ProjeQtOr解压到/opt/homebrew/var/web目录。

  • Nginx配置

nginx的路由匹配配置:

        #监听本机80端口。加上ip的话,就只监听该ip上的80端口

        listen       80;

        #域名

        server_name  localhost;

        root /opt/homebrew/var/web/;

        location /projeqtor {

            index index.html index.htm  index.php;

        }

nginx支持php文件解析的配置:

        location ~ \.php$ {

            fastcgi_pass   127.0.0.1:9000;

            fastcgi_index  index.php;

            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;

            include        fastcgi_params;

        }

这里nginx 将会连接127.0.0.1:9000 端口执行 PHP 文件,基于 tcp/ip 协议 。这里必须加上,否则通过nginx访问的php文件都无法解析,直接变为php文件的下载。

此时,访问http://localhost/projeqtor/view/index.php

报如下错误:出现 File not found. 的提示信息。查看错误日志报告显示 FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream。。。

主要原因是php-fpm默认的用户和组,与运行php-fpm进程的用户和组不同,导致无法访问文件。找到www.conf文件,位于/opt/homebrew/etc/php/8.3/php-fpm.d目录下,修改该文件中的user和group属性,默认的用户名和组都是_www。

user = jlu

group = admin

把user和group的值改为运行php-fpm进程的用户和组

重启nginx、php服务

brew services restart nginx

brew services restart php

  • 运行projeqtor

 访问http://localhost/projeqtor/view/index.php

出现如下页面即表示应用部署成功。

  • 初始化ProjeQtOr 

  • 参数设置

按照要求输入mysql数据库设置和本地化参数、应用安全参数设置,如下图

 参数配置项的所有内容都存储在parameters.php页面,该文件路径位于projeqtor/files/config目录下。安全起见,应用建议我们修改附件、文档、日志等文件的存储目录,不要放在应用可见的位置。这里仅仅是方案选型测试,未做修改。

  • 参数说明

列举主要的参数项进行说明,SSL设置、LDAP等参数项没有列出来。配置项都保存在parameters.php文件中,具体如下表所示:

web页面上的配置项配置项说明PHP文件的对应参数
Database typemysql或者PostgreSQL$paramDbType
Database host数据库服务器地址,默认127.0.0.1$paramDbHost
Database Port数据库服务器端口$paramDbPort
Dabatabase user to connect数据库用户名,默认root$paramDbUser
Dabatabase password for user

数据库密码

$paramDbPassword
Dabatabase schema name数据库实例名,默认projeqtor。如果没有创建实例,初始化过程中会创建实例$paramDbName
Dabatabase prefix for table name数据库表前缀$paramDbPrefix
Default locale本地化语言,选择简体中文$paramDefaultLocale
Default timezone默认时区,中国地区可选择Asia/Shanghai$paramDefaultTimezone
currency使用货币,中国地区可填写¥$currency
Directory to store attachment

附件存放路径,默认 '../files/attach/';

安全起见,不建议放在web应用的目录下。

$paramAttachmentDirectory
Directory to store document文件的存放路径。默认'../files/documents/',安全起见,不建议放在web应用的目录下。$documentRoot
log file

日志文件路径。

默认'../files/logs/projeqtor_${date}.log',安全起见,不建议放在web应用的目录下。

$logFile
log level日志级别,选项包括error only、trace and error等等$logLevel
  •  系统登录

参数设置完成后,下一步就会跳转到登录页面。登录使用用户名/密码:admin/admin。此时,系统会花费一定时间来创建数据库。登录进入主页面后就可以开始使用系统了。

  • 备注事项

  • 浏览器兼容性?

在使用Safari浏览器(版本safari17.3)过程中,发现系统运行过程中偶有白屏,清除缓存依然存在问题。改用360极速浏览器后可以正常运行。

  • 重新初始化参数配置项

如果要重新初始化应用的参数配置,只需要删除projeqtor/tool目录下parametersLocation文件.php即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值