Chevereto是目前最好的图床之一,支持图片的批量上传。
本文教大家如何搭建一个免费的Chevereto图床,演示环境为CentOS系统。
安装Nginx/Apache
Nginx与Apache都是web服务器,我们需要通过它搭建web服务。Nginx是轻量级高并发服务器,处理静态页面更加方便;而Apache则更加稳定安全,安装其中一个即可。
安装Nginx
使用yum install nginx
命令下载安装Nginx
对于ubuntu系统的用户,使用apt install nginx
即可
编译安装nginx
有些系统,yum或apt可能会提示找不到nginx这个包,这时我们就需要编译安装nginx
我们可以从 官网 下载源码,也可使用下方命令下载最新版nginx源码。wget -c https://nginx.org/download/nginx-1.20.0.tar.gz
解压并转到相应目录 tar -zxvf nginx-1.20.0.tar.gz & cd nginx-1.20.0/
使用默认配置 ./configure
编译安装
make
make install
设置开机自启动,使用vim /etc/rc.local
打开文件,按下a进入编辑模式,加入 /usr/local/nginx/sbin/nginx
这一行,按下esc退出编辑模式,按两下Z保存退出。
编译好的nginx位于/usr/local/nginx/sbin文件夹下,进入该目录,启动nginx服务。
./nginx 启动
./nginx -s stop 停止
./nginx -s quit 退出
./nginx -s reload 重启
配置Nginx
不同版本的nginx其配置文件的位置可能不同,可以通过whereis nginx
查找nginx位置,使用locate nginx.conf
查找配置文件的位置
通过下面的命令编辑配置文件sudo vim /usr/local/nginx/conf/nginx.conf
修改user为nginx,这是nginx运行的用户名
找到http那一栏,在其中加入下面的内容,这是图床的一些配置,注意修改server_name为自己的服务器的IP或域名。
server {
# 监听80端口
listen 80;
# 服务器的IP或域名
server_name 127.0.0.1;
# 默认网站根目录
root /var/www/picbed;
# 不添加这行可能部分页面会出现403错误
# 除了以上情况,还有403错误。需要排查的思路
# 1. selinux
# 2. 目录下有没有index.html 文件(如果有就需要配套有 index index.html )
# 3. 权限问题
# 4. nginx用户和
autoindex on;
index index.php;
# fastcgi configurationg
location ~ \.php$ {
# php服务监听端口
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 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;
}
保存退出,检查配置文件是否正确,然后重启nginx
安装Apache
Apache在CentOS系统上被称为httpd,使用yum install httpd
进行安装。
安装完成后,使用systemctl enable httpd
设置开机自启
使用service httpd status
或systemctl status httpd
查看运行情况,出现active则说明服务启动成功
httpd服务的默认监听端口为80,网站默认目录为/var/www/html/,可以不另作配置。
安装MySQL
在CentOS中默认安装有MariaDB数据库,它是MySQL的分支。为了搭建图床,我们需要安装MySQL。
可以进入 mysql官网,选择合适的版本并复制链接下载
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
配置MySQL
找到生成的临时密码 grep "password" /var/log/mysqld.log
输入 mysql -u root -p临时密码
以root身份登陆mysqlALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
修改密码CREATE DATABASE picbed;
为图床创建数据库picbedCREATE USER 'picbeduser'@'localhost' IDENTIFIED BY '图床用户的密码';
为图床创建用户picbeduserGRANT ALL PRIVILEGES ON picbed.* TO 'picbeduser'@'localhost';
添加权限FLUSH PRIVILEGES;
刷新权限exit
退出mysql
安装php
自带的yum源搜索不到php,手动添加rpm源rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
使用yum list php*
查看可以安装的版本yum -y install php72
安装php72版本yum -y install php72-cli php72-common php72-devel php72-mysql
安装依赖
出现上述内容时表明php安装成功
图床默认上传大小为2M,我们可以对其进行扩容
找到/etc/php.ini,在文件最后加入以下配置,不然会被原有配置覆盖;也可以手动搜索原有配置项并修改值。
;文件上传允许的最大值
upload_max_filesize = 20M
;PHP可接受的最大POST数据
post_max_size = 20M
;每个脚本的最大执行时间,由于上传文件过大,执行时间也应变长
max_execution_time = 300
max_input_time = 300
;内存限制
memory_limit = 512M
;配置mbstring
mbstring.language = all
mbstring.internal_encoding = UTF-8
mbstring.http_input =auto
mbstring.http_output =UFT-8
mbstring.encoding_translation = On
mbstring.detect_order = UTF-8
mbstring.substitute_character = none
mbstring.func_overload = 0
systemctl start php-fpm
使用该命令启动php-fpm
PHP-FPM(PHP FastCGI Process Manager)用于管理PHP 进程池的软件,用于接受web服务器的请求。
nginx分发过来的请求的时候,通过匹配后缀发现该请求是个动态的php请求,会把这个请求转给php
因为服务器使用的是nginx,所以需要使用php-fpm 因此之前我们配置nginx时指定php服务的端口为9000,这也是php的默认服务端口
启动php服务 systemctl start php-fpm
查看9000端口是否被占用 netstat -lnt |grep 9000
可能会遇到PHP服务已启动但9000端口未被占用的情况,这时找到/etc/php-fpm.conf,在[global]段前手动加上 [www]
和 listen=127.0.0.1:9000
两行
最后使用 systemctl restart php-fpm
命令重启php-fpm即可。
查看php-fpm进程的情况
配置图床
我们将图床设置在80(http)端口firewall-cmd --zone=public --add-port=80/tcp --permanent
防火墙开放80端口systemctl restart firewalld
重启防火墙
还要进入服务器控制台,开放80端口
上述的步骤完成后,可以在浏览器地址栏输入自己的服务器地址访问(如果之前设置的不是80端口,则地址后还要加上端口)。
如果出现File not found.
则说明nginx服务开启成功;如果连接不到主机,多半是防火墙的问题,关闭所有防火墙再重试。
下载图床
mkdir -p /var/www/picbed & cd /var/www/picbed
创建图床所在目录并转到该目录wget https://github.com/rodber/chevereto-free/releases/download/1.4.2/1.4.2.zip
从github上下载图床源码unzip 1.4.2.zip
解压,如果报错就把文件名中的点去掉再解压,新版(1.5以上)Chevereto不支持中文,推荐下载旧版。
安装图床
将下载好的源码解压,接着我们转到install路由进行安装,若php报错,使用以下命令给nginx权限。chown -R nginx:nginx /var/lib/php/session/
再次刷新,此时可能会提示缺少文件vim app/settings.php
创建对应文件,将下面的内容复制进去,注意修改掉密码。这个文件是图床连接mysql数据库的配置文件
<?php
$settings = array (
'db_host' => 'localhost',
'db_name' => 'picbed',
'db_user' => 'picbeduser',
'db_pass' => '数据库密码',
'db_table_prefix' => 'chv_',
'db_driver' => 'mysql',
'db_pdo_attrs' =>
array (
),
'debug_level' => 1,
);
再次报错,这是由于php没有权限所致,使用下方命令给整个文件夹的内容赋予读写和执行权限 chmod -R 777 /var/www/picbed/
最后终于大功告成,可以尽情上传和欣赏图片了。
叨叨几句... NOTHING