我正在运行 Ubuntu 18.04 并尝试运行 zoneminder。当我运行 systemctl status zoneminder 时,状态为活动。
所以它已安装。当我浏览到服务器时http://linux-box_IP/zm/我收到以下错误。
Unable to connect to ZM db.could not find driver
我遵循了两个不同的演练并获得了相同的结果(包括自动安装脚本):
https://wiki.zoneminder.com/Ubuntu_Server_18.04_64-bit_with_Zoneminder_1.32.x_the_easy_way
https://bkjaya.wordpress.com/2018/05/22/how-to-install-zoneminder-v1-31-44-on-ubuntu-18-04-lts/
有人见过这个或者有什么想法吗?
** 更新
我在全新安装的 ubuntu 上再次使用了 wiki 中的自动安装脚本,第一次就成功了。不确定是什么导致了问题,因为我最初尝试的系统远非干净的环境。
答案1
我遇到了同样的问题,并找到了解决办法。这可能会对你有帮助。
就我而言,我最初使用的是 Ubuntu 14.04 LTS,后来升级到 Ubuntu 16.04 LTS,最后升级到 Ubuntu 18.04 LTS。因此,我有几个相互冲突的 apache2-mod-php 配置。
# ls -la /etc/apache2/mods-available/php*
-rw-r--r-- 1 root root 897 Jul 2 2015 /etc/apache2/mods-available/php5.conf
-rw-r--r-- 1 root root 59 Jul 2 2015 /etc/apache2/mods-available/php5.load
-rw-r--r-- 1 root root 867 Mar 22 19:16 /etc/apache2/mods-available/php7.0.conf
-rw-r--r-- 1 root root 79 Mar 22 19:16 /etc/apache2/mods-available/php7.0.load
-rw-r--r-- 1 root root 855 Apr 18 17:12 /etc/apache2/mods-available/php7.2.conf
-rw-r--r-- 1 root root 102 Apr 18 17:12 /etc/apache2/mods-available/php7.2.load
并且 php7.0 与 php7.2 同时启用,这导致了这个问题。
# ls -la /etc/apache2/mods-enabled/php*
lrwxrwxrwx 1 root root 29 Apr 7 20:25 /etc/apache2/mods-enabled/php7.0.conf -> ../mods-available/php7.0.conf
lrwxrwxrwx 1 root root 29 Apr 7 20:25 /etc/apache2/mods-enabled/php7.0.load -> ../mods-available/php7.0.load
lrwxrwxrwx 1 root root 29 May 3 00:22 /etc/apache2/mods-enabled/php7.2.conf -> ../mods-available/php7.2.conf
lrwxrwxrwx 1 root root 29 May 3 00:22 /etc/apache2/mods-enabled/php7.2.load -> ../mods-available/php7.2.load
禁用它们,确保所有库都已安装并重新启动 apache:
sudo a2dismod php7.0
sudo a2dismod php5
sudo apt install php7.2 libapache2-mod-php7.2 php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline
sudo a2enmod php7.2
sudo systemctl restart apache2
此时 ZoneMinder 应该没问题了。希望这能有所帮助!
答案2
希望能对大家有所帮助。我运行的是 Linux Mint 18.x (Linux 4.15.0-48-generic #51~16.04.1-Ubuntu8 6_64 GNU/Linux),从 1.29 升级后,Apache 2.1.18、PHP 7.0 和 ZoneMinder v1.33.8 出现了这个问题。
$> php -i | grep mysql gave the following output:
PHP Startup: Unable to load dynamic library '/usr/lib/php/20151012/pdo_mysql.so' - /usr/lib/php/20151012/pdo_mysql.so: undefined symbol: mysqlnd_connect in Unknown on line 0
经过调查,我发现了以下情况:
下列
.ini
文件已安装/usr/share/php7.0-mysql/mysql
在不是在发现/etc/php/7.0/mods-available
mysqlnd.ini
pdo_mysql.ini
mysqli.ini
.ini
这些文件存在于的符号链接/etc/php/7.0/fpm/conf.d/
,/etc/php/7.0/cli/conf.d
并/etc/php/7.0/apache2/conf.d
指向/etc/php/7.0/mods-available
。
解决方案:
将
.ini
文件从/usr/share/php7.0-mysql/mysql
复制到/etc/php/7.0/mods-available
重新启动Apache2:
systemctl restart apache2
之后我就能愉快地启动 ZoneMinder 了,而且php -i
没有php -m
任何问题。