几天来,我一直试图在Linux上安装最新的稳定开源版本3.3.3的OrangeHrm。我在CentOS 7、UbuntuServer16.04、UbuntuServer14.04上试过。所有这些我都安装在VirtualBox上。我遵循了在不同网站上解释的不同指南。例如。
在每次安装时,当我访问虚拟机内部或从主机访问时,最终会出现内部服务器错误和空白页。
此错误发生在我输入数据库详细信息之后。
错误发生在install.php上,而chrome显示了开发工具中的installerUI.php。
我尝试使用现有的空白数据库和新的数据库。与根DB用户以及其他特权用户一起使用。
我更希望在CentOS上安装它。
我认为这一定是非常简单的安装,我可能遗漏了一些愚蠢的简单细节。
任何准则和资源都将不胜感激。
发布于 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:
然后重新启动Apache服务器(sudo service apache2 restart)并检查PHP。
在此之后,如果您的MySQL安装有最新版本( MySQL或MariaDB),您也需要更改默认的enconding,因为否则OrangeHRM的安装将失败。其实这是个解决办法。从5.5.3版本开始,默认输入更改为utf8mb4,允许键、索引等上的字符减少。如果不将其更改为utf8,您将看到指定的错误键太长;在OrangeHRM的安装过程中,最大键长度为767字节,无法创建表等。
编辑以下文件并为MySQL指定默认的char设置:
sudo nano /etc/mysql/my.cnf请注意,此文件可能位于不同的位置。如果您找不到它,请运行:mysqld --help --verbose 2> /dev/null | grep -A1 'Default options'以获得其他可能的路径。
编辑文件后,结果应该如下所示(这只是文件内容的一个子集):
# 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查找此配置的其他位置/文件:
/etc/mysql/conf.d/*.cnf如果您使用的是MariaDB:
/etc/mysql/mariadb.conf.d/*.cnf查找任何定义默认字符集= utf8mb4的行,并将其更改为默认字符集= utf8。
执行以下命令以确保获得了所有这些命令:
mysql --print-defaults然后重新启动MySQL (sudo service mysql restart)。
连接到MySQL:
sudo mysql -u root -p运行以下命令以检查当前的char设置值:
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';现在,提供数据库本身(用实际值替换your_db_name、your_db_user和密码):
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。
最后,再次尝试安装。确保使用“现有的空数据库”。
我的页面是这样的:
以下是更多的参考资料:
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
https://askubuntu.com/questions/883158
复制相似问题