AI摘要:

文章详细介绍了使用docker-compose部署Yourls的步骤。首先,在宝塔后台的php项目中添加了用于承载Yourls的网站,申请了Let's Encrypt SSL证书并开启了强制HTTPS。然后,通过docker-compose.yml配置文件定义了MySQL和Yourls两个服务的容器,分别用于数据库和Yourls应用。通过指定环境变量、端口映射等配置了容器的运行参数,并使用docker-compose up -d命令拉取镜像并上线容器。接着,通过设置反代和目录禁止访问,完成了网站域名访问。在安装Yourls后,还介绍了如何汉化和优化容器内的网站。此外,文章还提供了非容器方式部署Yourls的步骤,包括在宝塔面板添加站点、下载源代码、配置伪静态等。整体而言,文章详细而清晰,适合初学者学习。

(使用docker-compose部署)

  1. 在宝塔后台php项目添加用以承载Yourls的网站(无需数据库,以ornm.cc为例),申请Let's Encrypt ssl证书并开启强制https。
  2. 在网站目录下新建docker-compose.yml并编辑入以下配置文件:

    version: "3.5"
    services:
    
      mysql:
     image: mysql:5.7.22              # 如果遇到不正确的数据库配置,或无法连接到数据库PDOException: SQLSTATE[HY000] [1045] 用户'yourls'@'yourls_service.yourls_default'的访问被拒绝(使用密码:是)   可以把5.7.22 改为 5.7
     environment:
       - MYSQL_ROOT_PASSWORD=my-secret-pw
       - MYSQL_DATABASE=yourls
       - MYSQL_USER=yourls
       - MYSQL_PASSWORD=yourls
     volumes:
       - ./mysql/db/:/var/lib/mysql
       - ./mysql/conf/:/etc/mysql/conf.d
     restart: always
     container_name: mysql
      
      yourls:
     image: yourls
     restart: always
     ports:
       - "8200:80"
     environment:
       YOURLS_DB_HOST: mysql
       YOURLS_DB_USER: yourls
       YOURLS_DB_PASS: yourls
       YOURLS_DB_NAME: yourls
       YOURLS_USER: zly      # 自己起一个名字
       YOURLS_PASS: ZLY@20020606i      # 自己换一个登陆密码
       YOURLS_SITE: https://ornm.cc  # 换成你自己的域名
       YOURLS_HOURS_OFFSET: 8
     volumes:
       - ./yourls_data/:/var/www/html   
     container_name: yourls_service
     links:
       - mysql:mysql
  3. 确认该服务使用的8200端口无占用后,进入文件目录使用docker-compose up -d拉取镜像上线容器。
  4. 设置反代并设置目录禁止访问即可完成网站域名访问,登录https://设置的域名/admin 完成后续安装。
  5. 下载并解压汉化包到映射目录的./yourls_data/user/languages位置,赋予文件root用户644权限。
  6. 修改./yourls_data/user/config.php,将define( 'YOURLS_LANG', getenv('YOURLS_LANG') ?: '' );空白语言设定改为define( 'YOURLS_LANG', getenv('YOURLS_LANG') ?: 'zh_CN' );,顺便修改同一条链接对应多个短链接配置,将define( 'YOURLS_UNIQUE_URLS', getenv('YOURLS_UNIQUE_URLS') === false ?: filter_var(getenv('YOURLS_UNIQUE_URLS'), FILTER_VALIDATE_BOOLEAN) );中false改为true。
  7. 进入后台Manage Plugins,激活第一个(Allow Hyphens in Short URLs)插件。
  8. 使用docker-compose restart重启容器即可。

docker部署容器优化

1.使用docker部署的容器内网站根目录没有index主页,直接访问会显示“Forbidden You don't have permission to access this resource.”,需要创建一个index.html。而容器内debian11系统没有安装vi,直接用apt安装会出现E: Unable to locate package vi,需要换源后安装。
2.首先备份软件源文件mv /etc/apt/sources.list /etc/apt/sources.list.bak
3.通过命令行换源

echo "deb https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free" >/etc/apt/sources.list
echo "deb-src https://mirrors.ustc.edu.cn/debian/ bullseye main contrib non-free" >>/etc/apt/sources.list

4.apt-get update后即可安装vim等软件。

非容器方式部署

  1. 在宝塔面板添加一个站点用以安装yourls,需要数据库,并开启ssl。
  2. 在伪静态设置如下内容:

    location / {
     try_files $uri $uri/ /yourls-loader.php$is_args$args;
      }
  3. 前往项目地址下载source code (zip),并上传至网站目录解压。
  4. 将/user/文件夹中的config-sample.php改名为config.php,填写其中相关内容,访问/域名/admin/完成安装即可。
  5. cookiekey可访问[此网址}(http://api.yourls.org/services/cookiekey/1.0/)随机生成
  6. 中文语言代码zh_CN,汉化包

参考

  1. https://blog.laoda.de/archives/docker-compose-install-yourls
  2. https://blog.laoda.de/archives/yourls-building
文章目录