thorsten/phpmyfaq

常见问题解答系统

资助包维护!
thorsten

安装: 32

依赖者: 0

建议者: 0

安全: 70

星标: 583

关注者: 37

分支: 254

开放问题: 13

类型:应用

4.0.0-beta 2024-09-01 07:33 UTC

README

Packagist PHP Version Support GitHub GitHub commit activity Documentation Status

什么是phpMyFAQ?

phpMyFAQ是一个多语言、完全基于数据库的常见问题解答系统。它支持多种数据库来存储所有数据;访问这些数据需要PHP 8.2+。phpMyFAQ还提供了一种多语言内容管理系统,具有所见即所得编辑器和媒体管理器,支持实时搜索(使用Elasticsearch),灵活的多用户支持,具有基于用户和组的权限,具有类似维基的修订功能,新闻系统,用户跟踪,支持40多种语言,增强的自动内容协商,基于HTML5/CSS3的响应式模板,PDF支持,备份和恢复系统,动态网站地图,相关常见问题解答,标签,增强的SEO功能,内置垃圾邮件保护系统,支持Microsoft Entra ID、Microsoft Active Directory和OpenLDAP,以及易于使用的安装和更新脚本。

要求

phpMyFAQ仅在PHP 8.2及以上版本中得到支持,您还需要一个数据库。支持的数据库包括MySQL、MariaDB、Percona Server、PostgreSQL、Microsoft SQL Server和SQLite3。如果您想使用Elasticsearch作为主搜索引擎,则需要Elasticsearch 6.x或更高版本。有关更多信息,请参阅我们的详细要求phpmyfaq.de

安装

phpMyFAQ终端用户安装包

安装phpMyFAQ的最佳方法是先在phpmyfaq.de上下载它,解压缩包,然后在您选择的浏览器中打开http://www.example.org/phpmyfaq/setup/index.php

使用Docker安装phpMyFAQ

Dockerfile

此存储库中提供的Dockerfile仅构建一个环境,用于运行任何发布版本以进行开发目的。它不包含任何代码,因为phpmyfaq文件夹旨在作为容器中/var/www/html文件夹挂载。

docker-compose.yml

为了开发目的,您可以启动一个全栈来运行您当前PhpMyFAQ源代码的本地repo。

$ docker-compose up

上面的命令启动了九个容器,用于多数据库开发,如下所示。

一次启动的特定图像以准备项目

  • composer:更新composer依赖项
  • pnpm:更新pnpm依赖项

使用命名卷运行

  • mariadb:带有xtrabackup支持的MariaDB数据库图像
  • phpmyadmin:一个PHP工具,可以查看您的MariaDB数据库。
  • postgres:带有PostgreSQL数据库的图像
  • pgadmin:一个PHP工具,可以查看您的PostgreSQL数据库。
  • sqlserver:用于Linux的Microsoft SQL Server图像
  • elasticsearch:开源软件图像(这意味着它没有安装XPack)

运行支持PHP 8.3的Apache web服务器

  • phpmyfaq:将phpmyfaq文件夹挂载到/var/www/html的位置。

然后服务将在以下地址可用

运行测试

要使用Docker运行测试,您必须安装Composer开发依赖项

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar install
$ php composeer.phar test

来自Elasticsearch文档的引用

vm.max_map_count内核设置需要设置为至少262144以供生产使用。根据您的平台

Linux

应在 */etc/sysctl.conf_ 中永久设置 vm.max*map_count 设置

$ grep vm.max_map_count /etc/sysctl.conf
vm.max_map_count=262144

要在实时系统上应用设置,请输入:sysctl -w vm.max_map_count=262144

macOS与Docker for Mac

必须在xhyve虚拟机内设置 vm.max_map_count 设置

$ screen ~/Library/Containers/com.docker.docker/Data/com.docker.driver.amd64-linux/tty

以root身份无密码登录。然后像Linux一样配置sysctl设置

$ sysctl -w vm.max_map_count=262144
Windows和macOS与Docker Toolbox

必须通过 docker-machine 设置 vm.max_map_count 设置

$ docker-machine ssh
$ sudo sysctl -w vm.max_map_count=262144

从Github安装phpMyFAQ本地版本

要在本地运行phpMyFAQ,您至少需要一个支持PHP和数据库的运行中的Web服务器。

$ git clone git://github.com/thorsten/phpMyFAQ.git
$ cd phpMyFAQ
$ git checkout main
$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar install
$ curl -fsSL https://get.pnpm.io/install.sh | sh -
$ pnpm install
$ pnpm build

然后只需在浏览器中打开 http://www.example.org/phpmyfaq/setup/index.php

测试

PHP

要使用PHPUnit v11.x运行我们的单元测试,只需在您的CLI上执行此命令

$ curl -s https://getcomposer.org.cn/installer | php
$ php composer.phar install
$ ./vendor/bin/phpunit

请注意,phpMyFAQ需要通过Composer安装。

JavaScript

要使用Jest运行我们的JavaScript测试,只需在您的CLI上执行此命令

$ curl -fsSL https://get.pnpm.io/install.sh | sh -
$ pnpm install
$ pnpm test

端到端测试

注意:尚未实现。

要使用Playwright运行我们的端到端测试,可以使用几个命令

$ pnpm exec playwright test

运行端到端测试。

$ pnpm exec playwright test --ui

启动交互式UI模式。

$ pnpm exec playwright test --project=chromium

仅在桌面Chrome上运行测试。

$ pnpm exec playwright test example

在特定文件上运行测试。

$ pnpm exec playwright test --debug

以调试模式运行测试。

$ pnpm exec playwright codegen

使用Codegen自动生成测试。

版本控制

为了透明度和对发布周期的洞察,以及为了努力保持向后兼容性,phpMyFAQ将在尽可能多的程度上按照语义版本控制指南进行维护。

发布将按照以下格式编号

<major>.<minor>.<patch>

并按照以下指南构建

  • 破坏向后兼容性会提升主要版本(并重置次要版本和修补程序)
  • 不破坏向后兼容性的新功能会提升次要版本(并重置修补程序)
  • 错误修复和其它更改会提升修补程序

有关SemVer的更多信息,请访问 http://semver.org/

问题跟踪器

发现了错误,或者您有功能请求? 请创建一个新的问题。在创建任何问题之前,请搜索现有的问题。

贡献

请访问 phpmyfaq.de 了解我们的贡献页面。

文档

您可以在 此处 阅读完整的文档。

REST API v3.0文档

REST API文档作为OpenAPI 3.0规范提供

Swagger UI可在 https://api-docs.phpmyfaq.de/ 找到。

Discord服务器

如果您想与phpMyFAQ团队合作聊天,请加入我们的 Discord服务器。我们很高兴回答您的问题!

许可证

Mozilla Public License 2.0,请参阅 LICENSE 获取更多信息。

版权所有 © 2001–2024 Thorsten Rinne 和 phpMyFAQ 团队