gonicus / gosa2-core
GOsa² 核心文件
Requires
- php: >=8.1
- gonicus/gosa2-plugin-ldapmanager: dev-composer
- gonicus/gosa2-plugin-mailaddress: dev-composer
- gonicus/gosa2-plugin-rolemanagement: dev-composer
- gonicus/gosa2-plugin-systems: dev-composer
- smarty/smarty: ~4.3
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²核心和插件
免责声明:不要,我再说一遍,不要在生产服务器上使用这个!启用调试器很容易导致数据泄露、数据丢失、远程代码执行等问题!所以,请使用一个隔离的开发服务器,没有任何重要用户数据。
- 通过执行以下命令在您的GOsa²服务器上安装
php-xdebug
包
Debian (9+):sudo apt install php-xdebug
这将自动配置apache2。
更多信息:https://xdebug.org/docs/install
- 配置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都允许您进行配置。
- 测试您的安装。
首先重启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
- 在您的开发浏览器上安装xdebug-helper扩展。
您的互联网浏览器需要向服务器发送一个特定的header来指示调试会话。这可以通过一个扩展轻松完成。幸运的是,Firefox和Chrome已经有了易于使用的扩展。
https://github.com/BrianGilbert/xdebug-helper-for-firefox)
https://github.com/BrianGilbert/xdebug-helper-for-chrome)
- 配置您的IDE(以Visual Studio Code为例)
-
安装
PHP Debug
扩展:https://marketplace.visualstudio.com/items?itemName=xdebug.php-debug -
配置VS Code以正确启动PHP调试会话。
示例 .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" }, } ] }