挂载OSS到ECS[阿里云]

听说OSS可以挂载到ECS当盘使,原来是真的。

优点如下:

1.挂完了是不是看着很爽:

2.可以挂载到非阿里云主机

缺点如下:

1.随机或者追加写文件会导致整个文件的重写(官方说法)

2.性能差点儿,因为是远程的

3.文件夹非原子操作:如咱们一般的电脑,mv一个有很多子项的文件夹,相当于操作一个文件;但是在OSS里这个mv操作,对每个子项都要单独搞一下。

以CentOS8为例,实际挂载步骤如下:

Step1 下载ossfs最新源代码至ECS,Github就有; 在ECS解压缩该zip文件至【目录A】

Step2 用SSH连接ECS,cd至【目录A/ossfs-master】, 并运行如下指令

sudo yum install automake gcc-c++ git libcurl-devel libxml2-devel \
                 fuse-devel make openssl-devel
./autogen.sh
./configure
make
sudo make install

Step3进入阿里云访问控制,建立RAM用户,建立并记录AccessKeyId和AccessKeySecret;给该RAM用户添加OSS访问权限(控制台的那种就行,不用编程访问的)

Step4 进入阿里云OSS,记录你的bucket的名字; 记录endpoint;

endpoint如果你的内网能连接ecs,就可以用内网;不行就外网的。

Step5 在ECS运行如下指令

echo bucket的名字:你的AccessKeyId:你的AccessKeySecret > /etc/passwd-ossfs
chmod 640 /etc/passwd-ossfs
mkdir 你的本地路径
ossfs bucket的名字 你的本地路径 -ourl=你的endpoint

示例如下

mkdir /mnt/oss
ossfs my-bucket-name /mnt/oss -ourl=http://oss-cn-hangzhou.aliyuncs.com

然后就可以在ECS用/mnt/oss访问你的OSS啦

参考文献:

https://github.com/aliyun/ossfs/blob/master/README-CN.md

PHPCMS V9隐藏后台入口的方法

Step1 建立如/asdf123/index.php, 作为新的登录入口, 其中代码如下

<?php
define('PHPCMS_PATH', realpath(dirname(__FILE__) . '/..') . '/');
include PHPCMS_PATH . '/phpcms/base.php'; // pc_base::creat_app(); 
$session_storage = 'session_' . pc_base::load_config('system', 'session_storage');
pc_base::load_sys_class($session_storage);
session_start();
$_SESSION['right_enter'] = 1;
unset($session_storage);
header('location:../index.php?m=admin');

Step2 建立/phpcms/modules/admin/MY_index.php, 其中代码如下

<?php
defined('IN_PHPCMS') or exit('No permission resources.');

class MY_index extends index
{

  public function __construct()
  {

    if (empty($_SESSION['right_enter'])) {

      header('location:./');

      exit;
    }

    parent::__construct();
  }

  public function public_logout()
  {

    $_SESSION['right_enter'] = 0;

    parent::public_logout();
  }
}

然后就可以用www.domain.com/asdf123来访问后台入口啦