系统问题汇总

来自DBShop帮助中心
跳转至: 导航搜索

目录

切换模板前台显示不正常

如果您在后台切换模板后,前台显示模板错乱,这时可以用两种方式处理。第一:刷新下后台模板切换页面;第二:删除 /data/cache/modulecache/ 下面的两个文件。

数据库不能正常连接

用户在完全符合安装条件的环境中进行安装的时候,发现数据库连接错误(用户名和密码都正确),导致无法安装。
这里需要重点说明下,DBShop系统不会自行在数据库中建立自己的数据库信息,需要用户手动在数据库中建立需要使用的数据库名称(即您填入的数据库名称,在数据库中必须存在),否则就会显示连接错误。

ftp软件二进制设置

FTP软件二进制设置方式

DBShop验证码显示问题

当您安装完成DBShop系统后,发现验证码无法正常显示。这时您需要查看下/public/upload/下captcha目录是否有足够的权限,因为验证码图片会保存在这个目录中。
还有就是保证session可以正常写入。基本来说就这两个问题,都处理ok了,肯定正常显示。

必须开启重写功能

区分是否已经开启重写的最简单方法,是访问 http://你的网站地址/user/login 如果能正常访问的话,就是开启了;如果访问不了,只能通过  http://你的网站地址/index.php/user/login 这样的方式才可以
正常访问,那就是没有开启。 
需要特别注意,如果您在本地修改host,给系统指向了一个在公网上不能访问的域名,这时重写检测程序,在公网上访问不到这个域名时,也会显示重写检测失败的提示。
在开启重写前,首先您要保证自己的web环境支持php程序运行,如果还不支持php运行,请先去处理好php的运行情况。
有些用户,环境搭建好了,重写也没问题,可是依然找不到页面,这个时候,您需要查看下DBShop系统的根目录中是否有.htaccess文件(重写规则),如果不存在,请到官方下载系统,将里面的.htaccess文件复制进去。

IIS开启重写功能

首先要准备IIS7.0的REWRITE组件。这个可以上IIS的官网上下载 下载地址:http://www.iis.net/download/URLRewrite 安装后 如下图(如果没有出现,可以试着重启一下电脑)

20150707162824444.png

在系统根目录建立一个 web.config的文件,然后将以下内容写入其中
 直接下载该文件 
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="dbshop-rule" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="false" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
 
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
如果上面的配置不行,可以看看ZendFramework 2 官方提供的方法 https://framework.zend.com/manual/2.4/en/ref/installation.html

Apache开启重写功能

以本人在Ubuntu 14.04的开启方式为例

sudo a2enmod rewrite 如果本身就是以root账户登录的 可以直接 a2enmod rewrite
修改/etc/apache2/apache2.conf 将
 <Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
 </Directory>
 
中的 AllowOverride None 修改为 AllowOverride All 即可。
重启Apache (service apache2 restart),Rewrite开启完成。

Ubuntu安装DBShop环境 http://blog.dbshop.net/ubuntu%E4%B8%8B%E6%90%AD%E5%BB%BAdbshop%E8%BF%90%E8%A1%8C%E7%8E%AF%E5%A2%83/
centos7安装DBShop环境 http://blog.dbshop.net/centos7%E4%B8%8B%E5%85%A8%E7%A8%8Byum%E5%AE%89%E8%A3%85%E9%80%82%E7%94%A8%E4%BA%8Edbshop%E7%9A%84lnmp%E7%8E%AF%E5%A2%83%EF%BC%88%E8%BD%AC%EF%BC%89/

下面这种开启Rewrite的方式太旧了

加载Rewrite模块:
在conf目录下httpd.conf中找到
LoadModule rewrite_module modules/mod_rewrite.so
这句,去掉前边的注释符号“#”,或添加这句。

允许在任何目录中使用“.htaccess”文件,将“AllowOverride”改成“All”(默认为“None”):

# AllowOverride controls what directives may be placed in .htaccess files.
# It can be “All”, “None”, or any combination of the keywords:
# Options FileInfo AuthConfig Limit
#
AllowOverride All

在Windows系统下不能直接建立“.htaccess”文件,可以在命令行下使用“echo a> .htaccess”建立,然后使用记事本编辑。

Nginx开启重写功能(rewrite)

配置Location 如下

可以先看看Nginx官方网站的配置介绍 https://www.nginx.com/resources/wiki/start/topics/recipes/zend/ 如果配置OK,就不需要往下看了。
location / {
    try_files $uri $uri/ /index.php$is_args$args;
}
  location ~ \.php$ {
    fastcgi_pass   unix:/usr/local/zend/tmp/php-fastcgi.socket;
    fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
  }

上面主要看的部分是 fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;其他部分可能是不一样的。

阻止 .htaccess 如下

location ~ \.htaccess {
    deny all;
}

上传后安装提示找不到页面出现500错误

问题主要有以下几种原因:
1)没有开启Rewrite,想知道如何开启,请在本页面寻找即可。
2)开启了Rewrite,没有用DBShop系统目录下的.htaccess 或者 .htaccess丢失,这种情况下,可以下载个新系统,把.htaccess提取出来。
3)可能就是Rewrite的规则的,因为使用的web服务器不同,规则也不同 Apache、IIS、Nginx,官方目录下默认有Apache和IIS的规则(IIS的需要导入),Nginx可以在本页面找到规则配置。
4)其他原因,待续……

上传图片提示文件类型无法检测

出现这样的情况图片也是无法上传成功的,这个在自己用环境组件搭建环境的时候出现的可能性大,如果是虚拟空间基本不会有这样的问题。
问题出在 php.ini中的 extension=php_fileinfo.dll (windows)| extension=fileinfo.so (linux)没有开启,开启就可以了。

PDO开启

Windows下面后缀是 .dll Linux下面后缀是 .so

DBShop电子商务系统默认使用MySql数据库,连接方式使用PDO连接。如果您没有开启PDO可按照下面方法开启PDO连接。
PHP.ini中,去掉"extension=php_pdo.dll 和 extension=php_pdo_mysql.dll"前面的";"号,若要连接数据库,还需要去掉与PDO相关的数据库扩展前面的";"号,然后重启Apache服务器即可。
extension=php_pdo.dll
extension=php_pdo_mysql.dll
extension=php_pdo_pgsql.dll
extension=php_pdo_sqlite.dll
extension=php_pdo_mssql.dll
extension=php_pdo_odbc.dll
extension=php_pdo_firebird.dll 
对于我们的系统来说,使用
extension=php_pdo.dll
extension=php_pdo_mysql.dll
就可以了。

SOAP开启

Windows下面后缀是 .dll Linux下面后缀是 .so 在php.ini中找到

extension=php_soap.dll

将前面的;号去掉,然后重启web服务

session写入权限问题

当session写入权限不够时,会出现类似下图中的错误
20140102135110.jpg

解决方法,如果是虚拟空间,联系空间商将对应目录赋予写入权限,上图中是/tmp/目录没有写入权限。如果是自己的服务器,设置对应目录权限即可。