跳转至

Setup

安装

确保你的服务器满足所有的系统要求,然后执行下面的操作之一

通过我们提供的安装程序进行安装

这个安装程序是一个.php文件,它将为您下载并解压最新的版本

  1. 安装程序上传到你的目标地址(通常是public_html文件夹)。
  2. 打开你的网站并按流程操作。
通过Docker进行安装

Docker可以让你通过使用自动化应用程序容器轻松的安装和维护所有服务器依赖项。随时可用的Docker镜像位于nmtan/chevereto(十分感谢Tan Nguyen).

注意:使用安装标签去使用Docker,和我们的付费版本一起。

通过Softaculous/Fantastico进行安装

如果你的服务器托管在Softaculous/Fantastico,你可以一键安装Chevereto免费版。Chevereto免费版可以在"Image Galleries"分类下一键安装。

注意:我们的付费版本不在任何一个脚本库中可用。然而你可以先安装Chevereto免费版,然后直接使用仪表盘的一键更新,升级到付费版本。

通过zip文件进行安装
  1. 下载最新版本
  2. chevereto文件夹中的所有内容上传到你的服务器上(通常是public_html文件夹)。
  3. 转到目标网站网址。
  4. 按照说明操作。

注意:你需要一个MySQL数据库才能安装Chevereto.请参考有关数据库的托管文档。

通过cPanel进行安装

继续使用我们的通过我们提供的安装程序进行安装或者通过zip文件进行安装进行安装。安装完成之后,请按照以下的步骤去创建一个MySQL数据库并连接到cPanel:

  1. 登录到你的cPanel服务器面板。
  2. 转到"MySQL® Database Wizard"
    • 步骤一 创建Chevereto用于存储数据的数据库,记住用户名(稍后会询问)。
    • 步骤二 创建连接到数据库的数据库用户。记住该用户名和密码(稍后会询问)。
    • 步骤三 给数据库授予权限。请务必选择ALL PRIVILEGES,因为这将通过安装Chevereto的数据库向数据库用户添加权限。
  3. 完成之后,转到您的网站目标地址,然后这个系统会向你询问连接数据库所需要的信息(数据库名字,数据库用户名,数据库用户密码),然后按照说明操作。
通过宝塔进行安装(非官方文档内容)

当然你也可以使用宝塔面板进行安装chevereto,这对中国的用户将会非常方便。

大致上的步骤和上一步差不多。如果有兴趣查看详细的教程,请参考这篇博客:服务器+宝塔+Chevereto 搭建个人图床

安装时常见的问题

最常见的安装问题是不满足系统要求,因此请确保你正在运行一个兼容的系统,并且确保所有的数据都是正确的,例如MySQL的凭证(这里指的应该是数据库名,数据库用户名,数据库用户密码)和权限。对于其他问题,请随时在支持(support)中查找解决方案。

从之前版本进行更新

如果您正在从之前的版本进行更新,您应该参考更新指南

app/settings.php 的配置

此文件包含应用程序设置,如数据库凭据和其他设置。此文件可能如下所示:

<?php
$settings['db_host'] = '127.0.0.1';
$settings['db_port'] = 'port';
$settings['db_name'] = 'name';
$settings['db_user'] = 'user';
$settings['db_pass'] = 'password';
$settings['db_table_prefix'] = 'chv_';
$settings['db_driver'] = 'mysql';
$settings['debug_level'] = 1;

更新指南

这个指南包含将Chevereto更新到其上一版本的步骤。请通过你现在的版本请选择适当的更新步骤进行操作。 如果您需要下载Chevereto最新版本,您可以直接从您的帐户面板进行下载。

从3.6.9更新到现在的版本(当前的版本)
  1. 转到/update,系统会在几秒内下载并应用(进行)更新。
  2. 恢复或合并文件的更改(如果需要的话)。
手动更新

手动更新的步骤跟"从3.0.0.更新到3.6.8"的是一样的。

从3.0.0.更新到3.6.8
  1. 下载最新版本
  2. 备份所有的文件更改(主题,路径等等)。
  3. 上传chevereto文件夹中所有的文件和文件夹。
  4. 登录到你安装过chevereto的网站(管理员用户)然后转到/install
  5. 恢复或合并文件的更改(如果需要的话)。 每个版本都会有一些受影响的文件和文件夹,如果你是从之前的版本更新的并且不想覆盖所有的文件,这将会非常有用。如果你不是从上一个版本更新的(相邻的上一个版本),那么你应该始终执行列表中的步骤(2)。意思就是如果不是相邻的两个版本的更新,就一定要备份。
从2.1-2.6中的版本进行更新

当从这些旧版本更新时,请始终对系统的数据库进行备份。

  1. 下载最新版本
  2. 从includes/config.php中保存数据库的连接信息。
  3. 保存你在includes/definitions.php中的__CHV_CRYPT_SALT__,如果你没有在crypt中设置salt属性,你将不能更新。
  4. 上传除了图像文件夹的所有文件。
  5. 转到你安装了chevereto的网站,系统将会向你询问数据库的连接信息。
  6. 完成这些步骤,通过所给的信息。
  7. 系统一定会向你询问你的__CHV_CRYPT_SALT__。如果没有询问,不要再继续你的步骤并且寻求支持和帮助。
  8. 删除/admin文件夹,因为你再也用不到它了。从3.0.0开始,管理员的文件夹变为/dashboard
从2.0.X或更早的版本进行更新
  1. 通过这些下载中的说明更新到2.1或者更新的版本。
  2. 随着系统的更新,你现在可以使用2.1版本的更新指南。

系统需求

  • Apache or Nginx web服务器(推荐使用的服务器)
  • 5.6版本的PHP(推荐使用7.3版本)和标准库。
  • MySQL 8 / MariaDB 10
文件权限

Chevereto需要在以下路径中写入并存取(递归权限):

  • app/content
  • app/content/languages
  • app/content/languages/cache
  • app/content/locks
  • app/content/system
  • content
  • images

Chevereto使用PHP和Web服务器(Apache,Nginx等)继承其对Chevereto的权限,因此如果Apache无法写入文件夹,那么Chevereto将无法在其上写入。确保Web服务器位于网站文件夹的root文件夹中,以保证Chevereto可以正常工作。

还要仔细检查对temp文件夹的读/写访问权限(Unix/Linux中的/tmp和Windows中的C:/Windows/Temp)。

设置文件(app/settings.php)

默认情况下,系统会尝试创建文件app/settings.php,用来存储数据库连接的详细信息。在某些服务器的环境中,Chevereto不具备创建这个文件的权限,所以你需要手动的在app/目录中创建一个空文件,并命名为'settings.php'。安装过程将告诉您应该在此文件中放入哪些内容。

数据库权限

建议您的MySQL用户在目标数据库拥有'ALL PRIVILEGES'的权限。在平常的运行环境中Chevereto仅仅只需要CRUD(创建/读入/更新/删除)的权限以保证它的正常工作,所以你可以撤销一些其它的权限,但是在安装或者更新的环境中它需要所有的权限。

漂亮的URL

这指的是使用漂亮(或友好)的url,是通过服务器重写完成的。根据您的服务器,您需要遵循适当的步骤才能使其正常工作。

Apache服务器

你需要Apache mod_rewrite。默认情况下,Chevereto附带一个.htaccess管理URL重写的文件,因此您只需上传此文件并确保mod_rewrite已启用并正常工作。

如果你有关于漂亮的URL或者Apache的问题。尝试启用RewriteBase /指令,并确保在你的虚拟主机中允许'覆盖全部'。

Nginx server

在你的站点配置文件里面添加如下指令

# Image not found replacement
location ~* (jpe?g|png|gif) {
        log_not_found off;
        error_page 404 /content/images/system/default/404.gif;
}

# CORS header (avoids font rendering issues)
location ~ \.(ttf|ttc|otf|eot|woff|woff2|font.css|css|js)$ {
        add_header Access-Control-Allow-Origin "*";
}

# Pretty URLs
location / {
        try_files $uri $uri/ /index.php?$query_string;
}
其它的服务器

对于其他web服务器,您应该参考服务器API中关于URL重写的文档。

服务器问题

不是所有的web服务器都遵从一些基本原则,所以在有些情况下,即使拥有一个满足系统需求的服务器,你也可能会遇到一些问题,导致chevereto无法正常工作。 这是一个主要由服务器配置错误导致的已知服务器问题列表。 如果你想无忧的使用chevereto托管,你可以尝试使用我们的bundle。

bundle: 用于将本地数据打包到一个文件中,然后共享给别人(供参考)

如果您的服务器出现问题,并且这个服务器问题不在脚本层(就是下面列举出来的几种情况),必须向您的服务器托管公司或服务器管理员求助。

Web服务器

这些问题大多数是Apache或者Nginx的错误配置导致的。最常见的问题有

  • 缺少Mod_rewrite或者Allow Override All虚拟主机中已禁用。
  • Chevereto路径中缺少写入权限
  • 错误或者无效的设置(时区、多视图、超时等).
PHP

PHP在你的服务器上可能导致有问题产生的的不同风格(模块或fcgi)和不同的库和设置:

  • PHP版本过低(Chevereto需要PHP5.5.0及以上的版本)
  • PHP库中的配置错误(GD, cURL, BCMath等)
  • 错误的php.ini指令
  • 执行时间短(系统在安装完成之前就停止了)
  • 会话(权限)设置错误
  • 启用eAccelerator (PHP 5.3及以上版本不推荐)

在某些服务器中,您可以通过执行.htaccess解决方法轻松切换到PHP 5.5。只需转到您的网站根目录中的.htaccess文件,并在顶部添加以下行:

AddHandler application/x-httpd-php55 .php55 .php

请注意,php.ini指令还负责文件上载限制。您应该查看这篇文章以获取更多信息:PHP常见的陷阱

MySQL

大部分MySQL得问题都跟错误的凭证或者没有权限有关,最常见的问题是:

  • 错误的凭证(用户名和密码)
  • 权限无效或缺少权限(不能再数据库中读写)
  • 数据库版本太低(chevereto需要5.0版本的MySQL)
设置技巧

由于大量配置不当的服务器,我们开始添加设置技巧以便您强制设置PHP,此时,您可以破解会话保存路径、时区和HTTPS标志。请注意这些内容应该添加到app/settings.php文件中。

$settings['session.save_path'] = 'absolute path';
$settings['default_timezone'] = 'timezone identifier';
$settings['https'] = TRUE; // TRUE to force PHP HTTPS

你甚至可以使用这个指令通过ini_set()强制php.ini指令。我们鼓励你不要这样做,但你可以把它作为最后的方法,它不应该破坏任何东西。

调试

调试指的是检测你在安装过程中遇到的问题的办法。进行调试是了解系统中问题的准确原因的唯一办法。并且,当涉及到缩小错误的来源时,它将非常有用。

调试级别

chevereto的异常问题处理程序包含四个调试的级别,你可以使用合适的级别来满足你的需求。这些调试等级在下面这个表格中说的很详细。

调试级别                     描述                     
0
1 错误日志(默认)
2 仅打印错误
3 打印错误并生成错误日志

默认的调试级别是生成错误日志(级别1),如果你想改变这个级别,那么你必须去编辑文件app/settings.php。如果你的文件中没有debug_level属性,这是示例

$settings['debug_level'] = 1;
chevereto的堆栈轨迹

堆栈轨迹:如果你需要打印出某个时间的调用堆栈状态,你将产生一个堆栈轨迹。

stack trace 中包括三部分,分别为:.bss .text .data

bss: 表示程序中未初始化的全局变量的一块内存区域

text: 表示程序中已初始化的全局变量的一块内存区域

data:表示存放程序执行代码的一块内存区域

(摘自百度百科)

chevereto自带一个错误堆栈跟踪器,有助于安全地找出错误所在的位置,它可能如下所示:

Fatal error [123]: Test
Triggered in /app/routes/route.index.php at line 22

Stack trace:
#0 /lib/G/classes/class.handler.php(205): G\Handler->{closure}(G\Handler)
#1 /lib/G/classes/class.handler.php(100): G\Handler->processRequest()
#2 /app/loader.php(201): G\Handler->__construct(Array)
#3 /index.php(21): include_once('/app/loader.php')

但你看到类似于这样的提示的时候不要慌,整个系统使用PHP异常处理工作,所以得到这样的报告是正常的。 您可能注意到没有公开完整的路径,所以这里没有安全隐患。

注意:在网站运行中不建议显示任何类型的PHP错误或chevereto异常,我们建议你使用调试级别1来搭建网站,

PHP错误报告

如果要启用打印错误(error_reporting)你需要转到你的仪表盘 > 设置 > 系统,启用此功能之后,所有运行时的错误都将被打印出来。我们只建议在开发环境中启用此功能。