首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OrangeHrm 3.3.3安装和配置错误

OrangeHrm 3.3.3安装和配置错误
EN

Ask Ubuntu用户
提问于 2017-02-14 06:17:18
回答 1查看 4.1K关注 0票数 0

几天来,我一直试图在Linux上安装最新的稳定开源版本3.3.3的OrangeHrm。我在CentOS 7、UbuntuServer16.04、UbuntuServer14.04上试过。所有这些我都安装在VirtualBox上。我遵循了在不同网站上解释的不同指南。例如

在每次安装时,当我访问虚拟机内部或从主机访问时,最终会出现内部服务器错误和空白页。

此错误发生在我输入数据库详细信息之后。

错误发生在install.php上,而chrome显示了开发工具中的installerUI.php

我尝试使用现有的空白数据库和新的数据库。与根DB用户以及其他特权用户一起使用。

我更希望在CentOS上安装它。

我认为这一定是非常简单的安装,我可能遗漏了一些愚蠢的简单细节。

任何准则和资源都将不胜感激。

EN

回答 1

Ask Ubuntu用户

发布于 2017-04-22 01:10:31

我也有同样的问题。下面是如何解决这个问题的方法:

首先,一般来说,您可以跟踪安装中的orangehrm.log文件以检查错误。它将在您的orangehrm文件夹中,沿着路径./symfony/log/orangehrm.log (例如: /var/www/html/symfony/log/orangehrm.log)。

对我来说,上面写着:

未定义错误:调用未定义函数mysql_connect()

显然,它试图使用一组废弃的函数,在php7.0中不可用。您发布的文章使用php5,但是在Ubuntu16.04中,php7是默认的。

因此,遵循本文,删除默认的php7.0 (如果安装了它)并安装PHP5.6:

在Xenial上安装PHP5.6 (16.04)

然后重新启动Apache服务器(sudo service apache2 restart)并检查PHP。

在此之后,如果您的MySQL安装有最新版本( MySQL或MariaDB),您也需要更改默认的enconding,因为否则OrangeHRM的安装将失败。其实这是个解决办法。从5.5.3版本开始,默认输入更改为utf8mb4,允许键、索引等上的字符减少。如果不将其更改为utf8,您将看到指定的错误键太长;在OrangeHRM的安装过程中,最大键长度为767字节,无法创建表等。

编辑以下文件并为MySQL指定默认的char设置:

代码语言:javascript
复制
sudo nano /etc/mysql/my.cnf

请注意,此文件可能位于不同的位置。如果您找不到它,请运行:mysqld --help --verbose 2> /dev/null | grep -A1 'Default options'以获得其他可能的路径。

编辑文件后,结果应该如下所示(这只是文件内容的一个子集):

代码语言:javascript
复制
# One can use all long options that the program supports.
# Run program with --help to get a list of available options and with
# --print-defaults to see which it would actually understand and use.

#
# This group is read both both by the client and the server
# use it for options that affect everything
#
[client-server]

[client]
default-character-set = utf8

[mysql]
default-character-set = utf8

[mysqld]
init-connect='SET NAMES utf8'
collation_server=utf8_unicode_ci
character_set_server=utf8

查找此配置的其他位置/文件:

代码语言:javascript
复制
/etc/mysql/conf.d/*.cnf

如果您使用的是MariaDB:

代码语言:javascript
复制
/etc/mysql/mariadb.conf.d/*.cnf

查找任何定义默认字符集= utf8mb4的行,并将其更改为默认字符集= utf8。

执行以下命令以确保获得了所有这些命令:

代码语言:javascript
复制
mysql --print-defaults

然后重新启动MySQL (sudo service mysql restart)。

连接到MySQL:

代码语言:javascript
复制
sudo mysql -u root -p

运行以下命令以检查当前的char设置值:

代码语言:javascript
复制
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

现在,提供数据库本身(用实际值替换your_db_name、your_db_user和密码):

代码语言:javascript
复制
create database your_db_name CHARACTER SET utf8 COLLATE utf8_unicode_ci;
grant all privileges on your_db_name.* to 'your_db_user'@'localhost' identified by "password";
show databases;
flush privileges;
exit;

最后一件事:确保您拥有扩展/模块php5.6XML。如果您不安装它(sudo apt-get install php5.6-xml),否则您将看到错误PHP致命错误:调用日志上的未定义函数simplexml_load_file(),安装完成后您将无法登录到OrangeHRM。

最后,再次尝试安装。确保使用“现有的空数据库”。

我的页面是这样的:

OrangeHRM数据库安装页面

以下是更多的参考资料:

https://dba.stackexchange.com/questions/59126/set-value-of-character-set-client-to-utf8mb4 https://dba.stackexchange.com/questions/76788/create-a-database-with-charset-utf-8 https://dev.mysql.com/doc/refman/5.7/en/charset-connection.html

票数 1
EN
页面原文内容由Ask Ubuntu提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://askubuntu.com/questions/883158

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档