gonicus/gosa2-core

GOsa² 核心文件

安装: 0

依赖项: 0

建议者: 0

安全: 0

星标: 16

关注者: 7

分支: 14

开放问题: 20

类型:项目

dev-composer 2024-09-23 08:34 UTC

This package is not auto-updated.

Last update: 2024-09-23 08:41:09 UTC


README

信息

GOsa 是一个用于用户管理的 LDAP 管理前端。它不是字典服务器的通用前端。信息以底层概念假设的方式存储(即人员账户存储在 "ou=people" 子树中,等等)。这只能略微配置。

完全设置 Kerberos、AFS、LDAP、邮件、代理和传真设置绝对不是一件简单的事情。您当然应该熟悉这些组件以及您的 UNIX 安装。此文件(并且不会是)任何这些组件的介绍。有关如何操作以快速了解如何启动和运行,请参阅 INSTALL。

如果您想在易于安装的服务器上尝试 GOsa,我们建议使用 Debian Edu 主服务器 安装。Debian Edu 主服务器预装并设置好 GOsa。

翻译

GOsa 没有提供您的母语?请继续阅读...

GOsa 中的翻译(或 i18n)是通过 gettext 库完成的。因此,每套翻译都存储在每个语言的一个目录中,作为名为 messages.po 的文本文件。

对于 GOsa,您需要区分 gosa-core 和各种 gosa-plugin。核心有自己的翻译,每个插件也有自己的单独翻译。

GOsa 核心可以通过查看 locales/core 目录进行翻译。只需将 messages.po 文件复制到其他位置,并将您的翻译放入此文件的 msgstr 字段。为了更方便,请使用 poedit 等程序来完成此操作。您可以查看 de/LC_MESSAGES 了解其工作方式。

完成这些后,请使用 ISO 短语(例如 es 代表西班牙)创建一个包含 LC_MESSAGES 子目录的目录。例如,西班牙语翻译将是

 gosa-core/locales/core/es/LC_MESSAGES

将新翻译的西班牙语 messages.po 放入此目录。

要测试此功能,您必须在 GOsa 运行副本中部署 messages.po 文件,并运行 update-gosa 命令,以便 GOsa 合并翻译。然后,确保您的 Apache 网络服务器具有区域支持,或者,在 Debian 的情况下,特定区域将被生成(通过 dpkg-reconfigure locales)。

对于 gosa-plugins,每个插件都有一个 locales 目录。翻译方式与 gosa-core 描述的相同。

在添加翻译后,始终运行 update-gosa 以让 GOsa 编译并重新同步翻译。

贡献翻译

如果您希望您的翻译包含在主 GOsa 存储库 中,请为正确的 GOsa 组件提交问题和附件 .po

注意

请确保 gosaUserTemplates 无法登录到您的服务器,因为这些模板可能未设置密码。示例配置可以在 contrib 目录中找到。

祝您玩得开心!

Cajus Pollmeier pollmeier@gonicus.de

模板系统

GOsa 包含一个新的主题和用于插件和 HTML 片段的简化模板系统。

简化模板系统使将新主题传输到所有插件变得更加容易。为此,您需要将新插件模板组织在一个以主题命名的子文件夹中。

现在,通过使用switch语句,生成视觉输出的代码片段也变得容易自定义。在那里,如果需要,请添加一个带有主题名称的表达式。

示例

在您的类或函数作用域内声明一个用于主题名称的变量。使用include/functions.inc中的函数getThemeName()进行初始化。

现在您可以像以下示例那样使用它。

switch (${ThemeVariableName}) {
    case '{YourThemeName}':
        code...
        break;

    default:
        code...
        break;
}

默认情况下,GOsa具有来自GOsa 2.7的经典设计以及一个新默认设计。主题更改仍然通过gosa.conf进行。

Sebastian Sternfeld sternfeld@gonicus.de

使用Xdebug调试GOsa²核心和插件

免责声明:不要,我再说一遍,不要在生产服务器上使用这个!启用调试器很容易导致数据泄露、数据丢失、远程代码执行等问题!所以,请使用一个隔离的开发服务器,没有任何重要用户数据。

  1. 通过执行以下命令在您的GOsa²服务器上安装php-xdebug

Debian (9+):sudo apt install php-xdebug

这将自动配置apache2。

更多信息:https://xdebug.org/docs/install

  1. 配置Xdebug

sudo editor /etc/php/7.4/mods-available/xdebug.ini(Debian)

zend_extension=xdebug.so

xdebug.profiler_enable_trigger = 1
xdebug.profiler_enable = 0
xdebug.profiler_out_dir = "/tmp"

xdebug.remote_enable = 1

xdebug.start_with_request = yes

xdebug.idekey = <REPLACE ME WITH IDE KEY ('VSCODE', 'PHPSTORM'…)>

xdebug.mode = debug

xdebug.client_host = "<REPLACE ME WITH DEV HOST IP>"
xdebug.client_port = 9003

xdebug.log = "/tmp/xdebug.log"

警告:许多Linux发行版现在使用systemd,它实现了私有tmp目录。这意味着当PHP通过web服务器或作为PHP-FPM运行时,/tmp目录前面会有类似以下的内容:

/tmp/systemd-private-ea3cfa882b4e478993e1994033fc5feb-apache.service-FfWZRg

如果您使用两台不同的机器(或一个虚拟机)进行开发,您还可以设置SSH端口转发隧道

ssh user@remote-machine -R 9003:127.0.0.1:9003

也请注意,Xdebug服务器连接到IDE客户端!(而不是反过来!)所以IDE客户端需要在这个示例中监听端口号9003

IDE密钥取决于您使用的IDE。Visual Studio Code使用VSCODE,PhpStorm使用PHPSTORM。但不用担心,大多数IDE都允许您进行配置。

  1. 测试您的安装。

首先重启apache2

sudo systemctl restart apache2

然后测试Xdebug是否已成功安装

执行php -v,它应该看起来像这样

PHP 7.4.25 (cli) (built: Oct 23 2021 21:53:50) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.25, Copyright (c), by Zend Technologies
    with Xdebug v3.0.2, Copyright (c) 2002-2021, by Derick Rethans
  1. 在您的开发浏览器上安装xdebug-helper扩展。

您的互联网浏览器需要向服务器发送一个特定的header来指示调试会话。这可以通过一个扩展轻松完成。幸运的是,Firefox和Chrome已经有了易于使用的扩展。

https://github.com/BrianGilbert/xdebug-helper-for-firefox)

https://github.com/BrianGilbert/xdebug-helper-for-chrome)

  1. 配置您的IDE(以Visual Studio Code为例)

示例 .vscode/launch.json

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            // server -> local
            "pathMappings": {
                "/usr/share/gosa/plugins/": "${workspaceRoot}",
            },
            "postDebugTask": "sleep-task",
            "log": true,
        },
    ]
}

pathMappings设置非常重要且非常有用!想象一下,您在~/dev/test.php上工作,您的Apache2 web服务器配置为使用/var/www/html/(test.php)。您的IDE将报告使用路径~/dev/test.php的任何断点。但Xdebug服务器找不到任何位于~/dev/test.php下的文件,因为它在另一台机器上!

pathMappings~/dev映射到/var/www/html,反之亦然。

此外,您必须保持本地文件和服务器文件同步!这可以通过使用SSHFS挂载直接在服务器文件上开发来实现。

sshfs <local-mount-dir> root@<remote-server-ip>:/var/www/html

此外,VS Code中的xdebug客户端有时重启较慢,所以请在此调试会话关闭后稍等片刻

.vscode/tasks.json:

{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "sleep-task",
            "command": "sleep 0.5s",
            "type": "shell",
            "presentation": {
                "reveal": "never"
            },
        }
    ]
}