2019年1月30日星期三

安装Nextcloud网盘系统

 #安装Nextcloud

👉Apache安装设置
sudo apt update
安装apache:
apt-get install apache2
安装PHP和Apache PHP模块:
sudo apt install php libapache2-mod-php
安装完软件包后,请重新启动Apache以加载PHP模块:
sudo systemctl restart apache2
测试配置文件语法:
sudo apachectl configtest
重新加载apache2
systemctl reload apache2
a2enconf/a2disconf 命令启用或关闭一个配置文件:
示例:
启用已创建站点配置文件:
a2ensite default-ssl.conf
关闭已创建的站点配置文件:
a2disconf default-ssl.conf

👉配置PHP.ini文件:
修改上传限制、执行超时限制、内存限制等
文件路径:/etc/php/8.1/apache2/php.ini
主要修改项:
; output_buffering = 4096
max_execution_time = 600
default_socket_timeout = 600
upload_max_filesize = 2048M
memory_limit = 2048M
post_max_size = 8192M
修改完成后重新启动Apache以加载PHP模块:
sudo systemctl restart apache2

👉系统启用APCu:
修改/etc/php/8.1/apache2/conf.d/20-apcu.ini文件
在文件中末尾添加 :
apc.enable_cli=1
重启php:
sudo systemctl restart apache2

👉Redis安装
sudo apt-get install redis                                                   #安装
sudo systemctl enable --now redis-server                        #允许开机启动
sudo systemctl restart redis-server                                   #重启
sudo apt remove --autoremove redis-server -y                #卸载

👉数据库安装
数据库部分配置详安装mariadb数据库
安装mariadb
apt install mariadb-server
初始化数据库
mysql_secure_installation
Enter current password for root (enter for none):(设置数据库root密码)
Switch to unix_socket authentication [Y/n] y
Change the root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] n
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
命令行登录数据库
mysql -uroot -p
输入数据库root用户密码成功登录后,建立一个新的用户,并给予最大的权限:
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' WITH GRANT OPTION;
创建数据库,登录:
mysql -uroot -p
新建nextcloud 格式utf8mb4的数据库:(删除数据库执行:DROP DATABASE nextcloud;)
create database nextcloud default character set utf8mb4 collate utf8mb4_bin;
刷新权限:
FLUSH PRIVILEGES;
退出:
quit;

二、开始安装Nextcloud
👉从nextcloud  获取Nextcloud latest.zip程序文件并上传程序至站点指定目录
cd /var/www
wget  https://download.nextcloud.com/server/releases/latest.zip
👉解压程序:
cd /var/www
unzip latest.zip
👉设置目录权限:
chmod -R 777 /var/www/nextcloud
👉安装必要依赖 :
sudo apt-get install  php-zip  php-gd  php-curl  php-intl  php-gmp  php-memcached php-apcu  php-bcmath  php-redis   php-mysqli   php-imagick  php-dom php-xmlwriter php-xmlreader php-mbstring php-simplexml
启用SVG支持 :
apt install libmagickcore-6.q16-6-extra
启用ffmpeg解码器支持
apt install ffmpeg
👉安装完软件包后,请重新启动Apache以加载PHP模块:
sudo systemctl restart apache2
👉Apache Web 服务器配置文件,详细配置见Apache Web 服务器配置
<VirtualHost *:80>
  DocumentRoot /var/www/nextcloud/
  ServerName  your.server.com

  <Directory /var/www/nextcloud/>
    Require all granted
    AllowOverride All
    Options FollowSymLinks MultiViews

    <IfModule mod_dav.c>
      Dav off
    </IfModule>
  </Directory>
</VirtualHost>
👉进入your.server.com按引导页面进行初始化安装,安装完成后继续下一步,

👉创建定时任务 
方式一:
创建指定用户并执行,www-data为网页服务器的用户,SSH连接服务器后,输入:
crontab -u www-data -e
创建一个Cron任务,输入下列内容并保存:
*/5 * * * * php -f /var/www/nextcloud/cron.php
查看定时任务列表:
crontab -u www-data -l
回显 含以下写入内容即为成功 */5 * * * * php -f /var/www/nextcloud/cron.php
方式二:
root权限直接指定用户执行,SSH连接服务器后,输入:
crontab -e
创建一个Cron任务,并使用正则表达式:
*/5 * * * * sudo -u www-data php /var/www/nextcloud/cron.php
保存即可。

👉设置区域为CN
在nextcloud config.php文件配置,【 ); 前】添加以下行数
'default_phone_region' => 'CN',

👉设置允许访问的链接地址
  'trusted_domains' => 
  array (
    0 => 'abc.com:444',
    1 => '192.168.0.5:444',
  ),

优化图片或视频缩略图加载缓慢或者无法显示的问题
nextcloud的配置文件中添加APCu设置,修改/var/www/nextcloud/config/config.php文件
在文件中末尾【 ); 前】添加 :

  'enable_previews' => true,
  'enabledPreviewProviders' =>
  array (
    0 => 'OC\\Preview\\PNG',
    1 => 'OC\\Preview\\JPEG',
    2 => 'OC\\Preview\\GIF',
    3 => 'OC\\Preview\\HEIC',
    4 => 'OC\\Preview\\BMP',
    5 => 'OC\\Preview\\XBitmap',
    6 => 'OC\\Preview\\MP3',
    7 => 'OC\\Preview\\TXT',
    8 => 'OC\\Preview\\MarkDown',
    9 => 'OC\\Preview\\Movie',
   10 => 'OC\\Preview\\MKV',
   11 => 'OC\\Preview\\MP4',
   12 => 'OC\\Preview\\AVI',
   13 => 'OC\\Preview\\Photoshop',
   14 => 'OC\\Preview\\TIFF',
   15 => 'OC\\Preview\\SVG',
  ),

👉启用缓存
启用APCu本地缓存(推荐选项):
nextcloud的配置文件中添加APCu设置,修改/var/www/nextcloud/config/config.php文件
在文件中末尾【 ); 前】添加 :
'memcache.local' => '\OC\Memcache\APCu',

启用Redis缓存:
打开/config.php指定使用Redis作为缓存,【 ); 前】添加(推荐选项)

    'filelocking.enabled' => true,
    'memcache.locking' => '\OC\Memcache\Redis',
    'redis' => array(
         'host' => 'localhost',
         'port' => 6379,
         'timeout' => 0.0,
         'password' => '', // Optional, if not defined no password will be used.
          ),

自动清理缓存文件,在Nextcloud文档中发现,通过修改trashbin_retention_obligation参数为'auto,D'可自动清理超过D天的trashbin
打开/config.php【 ); 前】添加(推荐选项)
'trashbin_retention_obligation' => 'auto,3',
auto,3即为超过3天自动清理,保存后等待下一次Cron生效

启用Memcached缓存(可选项):
打开/config.php【 ); 前】添加(可选选项)
  'memcache.distributed' => '\\OC\\Memcache\\Memcached',
  'memcached_servers' => array(
   array('localhost', 11211),
   ),

👉Nextcloud中启用外部储存插件,加载NTFS格式硬盘,手动给nextcloud的配置文件中添加设置,打开/config.php,手动给nextcloud的配置文件中添加设置(关闭数据目录的权限检查,消除错误提示)
'check_data_directory_permissions' => false,

👉上传速度优化:
为了在具有高上传带宽的环境中提高上传性能,可以调整服务器的上传区块大小:
定位到nextcloud程序目录
cd /var/www/nextcloud
设置值为 524288000 (500 MiB)执行:
sudo -u www-data php occ config:app:set files max_chunk_size --value 524288000
设置为完全没有分块 --value 0,执行:
sudo -u www-data php occ config:app:set files max_chunk_size --value 0
默认值为 10485760 (10 MiB)执行:
sudo -u www-data php occ config:app:set files max_chunk_size --value 10485760

👉手动刷新文件列表
定位到nextcloud程序目录
cd /var/www/nextcloud
刷新文件索引,终端执行
sudo -u www-data php occ files:scan --all --quiet

👉数据库整理修复
索引修复
sudo -u www-data php occ db:convert-filecache-bigint
sudo -u www-data php occ db:add-missing-indices
整形修复
sudo -u www-data php occ db:add-missing-indices
更新.htaccess文件(Apache适用)
sudo -u www-data php /var/www/nextcloud/occ maintenance:update:htaccess

👉使用软链接更改数据目录的实际位置,
【 /mnt/Data/admin(真实目录)  /var/www/nextcloud/data(软连接目录)】
ln -s /mnt/Data/admin  /var/www/nextcloud/data

👉目录下的所有文件与子目录执行相同的权限变更:
chmod -R 777 /home/wwwroot
chmod -R 777 /media/user/93d8f11a-0823-46e2-bde4-0b545de7a180

👉目录下的所有文件与子目录执行相同的所有者变更:
chown -R www-data:www-data  /var/www/nextcloud
chown -R www-data:www-data  /media/user/

👉清理运行日志:
rm /var/www/nextcloud/data/nextcloud.log

👉Nginx安装环境变量设置,需要打开/etc/php/8.x/fpm/php-fpm.conf,在其尾部添加一行
env[PATH] = /usr/local/bin:/usr/bin:/bin:/usr/local/php/bin

2019年1月1日星期二

2018年11月2日星期五

国内https访问Blogger的域名解析设置


Blogger域名解析DNS 设置如下:
更简单的做法(假设你已经有一个国内可访问的 IP 地址):
http://tools.tracemyip.org/
打开网站,在网站的右上方的搜索框中键入 IP 地址,回车搜索,你会获得如下图红框所标识的一个二级域名。你只要将得到的域名替换上面的 ghs.google.com 就可以使博客启用 https 了。即:xxx.cn CNAME xxxx.1e100.net 

或指向ping可达的IP地址:

IPV6  :
2404:6800:4004:812::2013
2404:6800:4004:822::2013
2404:6800:4002:813::2013
2404:6800:4004:811::2013
2404:6800:4003:c11::79
2404:6800:4003:c00::79

2404:6800:4003:c04::79
2404:6800:4004:811::2013
2404:6800:4004:81f::2013
2404:6800:4004:823::2013
2404:6800:4003:c03::79
2404:6800:4001:800::2013
2404:6800:400a:813::2013
2404:6800:4005:813::2013




IPV4 :
 172.217.160.115
 172.217.163.51




1e100.net 是 Google 2009年10月启用的域名,名字来源于 googol (1e100 = 1 googol), google 这个单词同样来源于 googol。

以上方式获取的域名有两种,一种是 1e100.net 的,另一种是 googlehosted.com。如 xxxx.googlehosted.com。使用后面一种,是无法启用 https 的。

2018年8月1日星期三

可国内访问的Bloggers设置方法

Blogger,一个干爽、免费的博客发布平台,作为主流的发布,提供免费的托管,免去了Typecho&Wordpress高昂的服务器费用,避免了Hexo&Jekyll静态博客无后台的缺陷,与CSDN、简书相比,可以绑定域名,界面干净,无广告【当然可以自己放自己的广告】。

实际上,当今写博客的软件数不胜数,主要分为一下三类:

  • 服务器部署:典型代表:Wordpress\Typecho
  • 无服务器托管:典型代表:Hexo\Jekyll\Gidea\Hugo\Hola等等
  • 集成型网站:Blogger、简书、CSDNcnblogwodemo等等

上面所有软件,优缺点都有,具体看个人选择

实际上,由于Blogger托管于谷歌,写作域名 www.blogger.com 和托管域名 *.blogspot.com 均被MainLandBan。但是接下来来,我会讲讲如何打造一个能在国内大陆访问的Blogger

1. 注册Blogger

众所周知,请科学上网。

用谷歌账号登录(https://www.blogger.com) ,没有?不是不是吧不是扒,都0202年了,还不会去注册一个谷歌账号?

进入控制台,新建一个博客:

绑定域名,这一步随意,因为我们还要绑定一个自定义域名.

点击确定,一个博客就搭建好了!快吧?

这时候,我们科学上网访问之前的域名,我这里是: cyfblogger.blogspot.com,打开:

搞定!搞完之后才知道,Blogger真正做到了什么叫1分钟创建一个博客,但这还不够,中国访客实际上还是打不开这个网站1。所以,接下来,我们要让这个网站能在中国访问。

目前我们有一下思路:

  • 选择一个未被官方屏蔽的Blogger节点,此方法几年前还是可用的,最近不大灵光了,被屏蔽的差不多了
  • 使用服务器反向代理Blogger,不推荐,有这个闲工夫你还不如直接用Typecho
  • CloudFlareCDN反向代理,这似乎是唯一一个解决的办法.

2.绑定自定义域名

由于 *.blogspot.com 泛域名被屏蔽,所以你必须要有一个自己的域名.

不推荐免费域名,因为免费域名无法自选CF节点,当然你也可以换别的方式。

这里推荐一个买域名的好网站:https://namebeta.com/ namebeta并不是购买域名的地方,但是它可以帮你货比三家,让你跳出更优惠的方案,并且自带各种温馨提示,包括能不能备案,有没有被注册等等,比较适合刚入门想买域名的小白.

购买绑定NS不在谈论范围内,有域名的看下去

以下演示方便在CloudFlare官网里进行,采用免费域名演示,实际用笨牛CNAME解析为好.

点击【设置】-【正在发布】-【自定义域名】

接着会报错:

提示没验证,没关系,去CloudFlare加上CNAME,注意验证过程中切记把橙色云朵点灰2

回去,点击确定,勾选HTTPS可用性。

谷歌SSL验证和办法真的慢,没办法,喝杯茶,写点作业,过了10min,显示颁发成功:

回到CloudFlare,把访客访问的那条记录点亮橙色云朵,作为验证的记录不点亮.

国内访问试试?

这时候我们发现,虽然国内能直连了,但是背景图加载不出来,整个网页加载缓慢。控制台以下,我们就会发现,Blogspot请求了国外谷歌边缘节点的内容,包括背景图片和部分js

所以,我们还要对博客主题进行加工。

3.更改主题

演示方便,用Contempo Light主题 实际上用其它主题也差不多的,注意替换掉外链即可

点击备份,下载主题

Notepad++打开,方便处理

屏蔽加载

<head>替换为&lt;!--<head>--&gt;&lt;head&gt;

</head>替换为&lt;/head&gt;&lt;!--</head>--&gt;

</body>替换为&lt;!--</body>--&gt;&lt;/body&gt;

替换背景

49行左右,有这么一段代码:

xml <Variable name="body.background" description="Background" color="$(body.background.color)" type="background" default="$(color) none repeat scroll top left" value="$(color) url(https://themes.googleusercontent.com/image?id=L1lcAxxz0CLgsDzixEprHJ2F38TyEjCyE3RSAjynQDks0lT1BDc1OxXKaTEdLc89HPvdB11X9FDw) no-repeat scroll top center /* Credit: Michael Elkan (http://www.offset.com/photos/394244) */;"/>

将其中的

https://themes.googleusercontent.com/image?id=L1lcAxxz0CLgsDzixEprHJ2F38TyEjCyE3RSAjynQDks0lT1BDc1OxXKaTEdLc89HPvdB11X9FDw

替换为背景外链.

必要的JS替换

打开F12,我们会发现,有一个资源阻塞了请求:

https://resources.blogblog.com/blogblog/data/res/2629068285-indie_compiled.js

但这个是必须的,我们要保留,搜索 <b:template-script async='true' name='indie' version='1.0.0'/> 并删除,将其替换成: <script async='async' src='https://cdn.jsdelivr.net/gh/chenyfan/chenyfan.github.io/1468123664-indie_compiled.js'></script>

当然你也可以用自己的链接.

解决缩略图问题

【感谢阿虚同学的博客解决此方法】

JS 代码放置于 </body> 标签前:

xml <b:if cond='data:blog.pageType in {"index","searchQuery","searchLabel","archive"}'> <!--如果当前页是首页,搜索页,标签页,那么代码继续执行--> <script defer='defer'> //<![CDATA[ var postThumbnails = document.getElementsByClassName("post-thumbnail"); var postContents = document.getElementsByClassName("post-text"); for (var i=0;i<postContents.length;i++) { var postContent = postContents[i].innerText; var imgReg = /<img.*?(?:>|\/>)/gi; var srcReg = /src=[\'\"]?([^\'\"]*)[\'\"]?/i; var imgTags = postContent.match(imgReg); imgSrcs = imgTags[0].match(srcReg); imgSrc = imgSrcs[1]; postThumbnails[i].setAttribute('src', imgSrc); } //]]> </script> </b:if>

修改模板,搜索data:post.featuredImage,在缩略图处改成下代码:

xml <b:if cond='data:post.featuredImage'> <!--判断文章内是否有图片,有则代码继续执行--> <div class='snippet-thumbnail'> <!--创建一个 div 容器,缩略图放置在这里--> <img class='post-thumbnail' sizes='(max-width: 800px) 20vw, 128px' src='https://ae01.alicdn.com/kf/HTB1Gb7LUmzqK1RjSZFL5jcn2XXac.gif'/> <!--预先放置一个加载图片,增强用户体验--> <textarea class='post-text' style='display:none;'><data:post.body.escaped/></textarea> <!--这里放置文章全文,图片从中提取,样式设置为不显示--> </div> </b:if>

头像、icon设置

搜索 profile-img 3899行:

xml <img class='profile-img' expr:alt='data:messages.myPhoto' expr:height='data:authorPhoto.height' expr:src='data:authorPhoto.image' expr:width='data:authorPhoto.width'/>

将其直接改成

xml <img class='profile-img' src="你的头像外链地址">

字体问题

我测试时没有发现字体相关问题,请求字体的网址gstatic.com在国内可以访问,虽然部分地区莫名其妙解析到澳大利亚facebook,但大多数都正确解析时国内谷翔。

评论问题

默认的Google评论肯定时不行的,留着还拖慢加载,推荐用DiqusJSValine.

修改主题,搜索 <b:includable id='comments' var='post'> 3453行至 </b:includable> 3511,全部删除,将以下代码填写回原处

` <b:includable id='comments' var='post'> <div id='disqus_thread'/>

</b:includable> `

在末端 &lt;!--</body>--&gt;&lt;/body&gt; 前添加:

<script> var dsqjs = new DisqusJS({ shortname: '', siteName: '', identifier: '', url: '', title: '', api: '', apikey: '', admin: '', adminLabel: '' }); </script> 以上代码具体配置前往[https://github.com/SukkaW/DisqusJS#%E4%BD%BF%E7%94%A8 ] 配置


推荐自选CDN加速.

注意以后写文章图片必须是外链,可以试试sm.ms


分割线 html

<hr size="3" noshade style="border:3px #cccccc dotted;" />