CUILIANG'S BLOG
  • 首页
  • 技术文章
  • 生活随笔
  • 文章标签
  • 网友留言
  • 关于作者
  • 网站声明
  • 入职满 8 周年纪念日

    2023-01-20 12:38:22 2714 0 生活随笔

    IMG_2146.PNG

    • Undefined index: constraint_name 报错解决方法

      2022-12-09 16:32:12 2895 0 技术文章

      错误日志

      [error][yii\base\ErrorException:8] yii\base\ErrorException: Undefined index: constraint_name in /path/to/vendor/yiisoft/yii2/db/mysql/Schema.php:394
      

      原因

      MySQL 8.0.21 中返回的列名大小写不一致,导致 Yii2 在获取数据库模式时出错。

      解决方法

      1. 编辑 common/config/main-local.php,设置 PDO 属性 PDO::ATTR_CASE => PDO::CASE_LOWER
        'db' => [
         'class' => 'yii\db\Connection',
         'dsn' => 'mysql:host=localhost;dbname=db_name',
         'username' => 'username',
         'password' => '******',
         'attributes' => [PDO::ATTR_CASE => PDO::CASE_LOWER],
        ],
        
      2. 修改 /path/to/vendor/yiisoft/yii2/db/mysql/Schema.php:394
        foreach ($rows as $row) {
         $row = array_change_key_case($row, CASE_LOWER);
        

      推荐第一种方法,使列名明确指定为一致的大小写。

      参考文章:https://github.com/yiisoft/yii2/issues/18171

      • 我也算是半个米粉吧!

        2022-08-09 14:28:19 2486 0 数码

        IMG_5604.PNG

        • 入职满 7 周年纪念日

          2022-01-20 12:38:22 2994 0 技术文章

          IMG_0354.PNG

          • 入职满 6 周年纪念日

            2021-01-20 12:38:22 2720 0 技术文章

            IMG_8718.PNG

            • Docker 清理无效容器镜像及日志的方法

              2020-04-12 12:38:22 3069 0 技术文章

              清除无效容器、网络、镜像、缓存

              • docker system prune:删除停止的容器、未使用的网络、悬空的镜像和构建缓存。
              • docker system prune -a:删除停止的容器、未使用的网络、所有未使用的镜像(不仅仅是悬空的镜像)和构建缓存。

              清除日志

              1. 创建 clean_docker_log.sh,内容如下:
                #!/bin/bash
                

              logs=$(find /var/lib/docker/containers/ -name *-json.log)

              for log in $logs

                  do
                          echo "clean logs : $log"
                          cat /dev/null > $log
                  done
              

              echo "Docker logs cleanup completed."

              
              2. 给脚本增加可执行权限
              

              chmod +x clean_docker_log.sh

              
              3. 执行脚本
              

              ./clean_docker_log.sh

              
              
              • 使用 Docker 基于 Debian 安装 Java 环境失败的解决方法

                2019-11-15 17:09:34 25732 0 技术文章
                # 安装 default-jre 需要手动创建 /usr/share/man/man1 目录
                RUN mkdir -p /usr/share/man/man1 \
                    && apt-get update \
                    && apt-get install -y \
                    default-jre \
                

                参考文章:https://stackoverflow.com/questions/55795154/docker-how-to-install-openjdk-jre-12-on-top-of-debian-jessie-slim

                • 唐山马拉松 PB 4小时

                  2019-10-20 09:38:22 1815 0 跑步

                  全马最好成绩,打破两项个人记录。

                  615252095BEA8E2004AC0250C4895C41.JPG

                  A3E0CFBCC1A33949C2A27722AAC6CF9E.jpg

                  33B196CAC08805D785BD940EFFA8F9B1.png

                  • 升级 Catalina 后出现 Read-only file system 问题解决方案

                    2019-10-07 18:03:36 26258 0 技术文章

                    由于项目的根目录在 /data1 目录,需要在根目录创建 data1 目录,但是提示:

                    mkdir: data1: Read-only file system
                    

                    先关闭 sip,终端输入 sudo mount -uw /

                    然后再创建目录或者创建软链接,即可成功!

                    • Yii China 是官方唯一认可的中文社区

                      2019-01-30 11:48:58 28354 1 技术文章

                      今天是 Yii Framework 2.0.16 版本发布 的日子,经过我们坚持不懈的进行国际化翻译,以及在中国进行大量的宣传和推广,Yii China 已经成为全球最大的 Yii 中文社区。

                      希望更多的 Yiiers 加入我们社区! https://www.yiichina.com

                      官方提供的社区推荐地址: https://github.com/yiisoft/yii2/wiki/communities#chinese

                      • Yii
                      • China
                    • 入职新浪四周年纪念日

                      2019-01-20 21:19:58 25151 0 生活随笔

                      IMG_4984.JPG

                      • 新浪
                      • 入职
                    • 新浪 20 周年 - 大浪逐新,与时代同行!

                      2019-01-16 19:33:48 24817 0 生活随笔
                      IMG_4961.JPG
                      IMG_4962.JPG
                      IMG_4963.JPG
                      IMG_4964.JPG
                      IMG_4965.JPG
                      IMG_4966.JPG
                      IMG_4967.JPG
                      IMG_4968.JPG
                      IMG_4969.JPG
                      • 新浪
                      • 年会
                    • GitLab 实现仓库完全迁移,包括所有提交记录、分支、标签

                      2018-12-28 18:20:29 25817 0 技术文章

                      具体命令如下:

                      cd <项目目录>
                      git fetch --all
                      git fetch --tags
                      git remote set-url origin <项目的新仓库地址>
                      git push origin --all 
                      git push --tags 
                      

                      参考文章:

                      https://developer.atlassian.com/blog/2016/01/totw-copying-a-full-git-repo/

                      • GitLab
                      • 迁移
                    • 新浪赴泰国曼谷和芭提雅团建

                      2018-12-24 14:14:32 22861 1 生活随笔
                      thailand_1.jpg
                      thailand_2.jpg
                      thailand_3.jpg
                      thailand_4.jpg
                      thailand_5.jpg
                      thailand_6.jpg
                      • 新浪
                      • 泰国
                      • 团建
                    • Mac OSX 目录操作遇到 Operation not permitted 问题

                      2018-12-12 11:41:28 30482 0 技术文章

                      今天在安装 PHP 扩展的时候发现使用 sudo 还依然提示 "Operation not permitted"。

                      这是由于 10.13 版本加强了权限的限制,即 rootless 机制,可以进入恢复模式关闭 rootless 机制。

                      官方说明:https://developer.apple.com/videos/play/wwdc2015/706/

                      解决方案

                      1. 重启 Mac,按 Command + R(Win 键盘:win + R)进入恢复模式

                      2. 打开终端,输入命令:

                        csrutil disable
                        
                      3. 重启后让机器正常启动,可以在终端查看 rootless 状态:

                        csrutil status
                        

                        显示

                        System Integrity Protection status: disabled.
                        

                        正常情况下 rootless 已经关闭。

                      4. 要想重新开启 rootless 机制,参考步骤 1,输入命令:

                        csrutil enable
                        
                      • Mac
                      • rootless
                    • 使用 pdflatex 生成 Yii 2 中文权威指南 PDF

                      2018-12-02 16:46:45 25709 0 技术文章

                      问题来源

                      https://github.com/yiisoft-contrib/yiiframework.com/issues/142 https://en.wikibooks.org/wiki/LaTeX/Internationalization#Chinese

                      解决方案

                      https://github.com/yiisoft-contrib/yiiframework.com/blob/master/commands/GuideController.php#L85

                      修改为:

                      // https://en.wikibooks.org/wiki/LaTeX/Internationalization#Chinese
                      // TODO this does not work yet. See https://github.com/yiisoft-contrib/yiiframework.com/issues/142
                      file_put_contents("$pdfTarget/main.tex", str_replace(['\usepackage[british]{babel}', '\begin{document}', '\end{document}'], ['\usepackage{CJKutf8}', '\begin{document}' . PHP_EOL . '\begin{CJK}{UTF8}{gbsn}', '\end{CJK}' . PHP_EOL . '\end{document}'], file_get_contents("$pdfTarget/main.tex")));
                      

                      {gbsn} 是“宋体”,所以前提是服务器已经安装中文的“宋体”字体。

                      • Yii
                      • PDF
                    • 祝新浪二十周年生日快乐 - 大浪逐新,与时代同行

                      2018-12-01 16:43:58 24844 0 生活随笔
                      sina_201.jpg
                      sina_202.jpg
                      sina_203.jpg
                      • 新浪
                      • 生日
                    • Yii 2 将 Gravatar 头像图片做本地化缓存

                      2018-09-15 18:11:52 25398 0 技术文章

                      Gravatar 是全球公认头像,但头像图片有时候访问奇慢无比,将整个页面的加载速度降了下来,如果能将头像图片缓存到本地,并设置过期时间,那性能会飞速提高,以下代码是 Yii2 的自定义 Helper 中的代码片断,用于实现 Gravatar 本地化访问。

                      public function gravatar($email, $s = 80, $atts = [], $d = 'mp', $r = 'g')
                      {
                          $key = md5(strtolower(trim($email)));
                          $img_file = Yii::getAlias("@webroot/uploads/avatar/$key.jpg");
                          $img_url = Yii::getAlias("@web/uploads/avatar/$key.jpg");
                          $noavatar_file = Yii::getAlias('@webroot/images/noavatar.jpg');
                          $noavatar_url = Yii::getAlias('@web/images/noavatar.jpg');
                      
                          // 缓存时间 30 天,超过 30 天会重新到 gravatar.com 去取
                          if (!file_exists($img_file) || filemtime($img_file) < time() - 3600 * 24 * 30) {
                              file_put_contents($img_file, file_get_contents("https://www.gravatar.com/avatar/$key?s=$s&d=$d&r=$r"));
                          }
                      
                          // 没有设置过头像的用户,显示自定义头像
                          if (md5_file($img_file) == md5_file($noavatar_file)) {
                              $img_url = $noavatar_url;
                          }
                      
                          return Html::img($img_url, $atts);
                      }
                      
                      • 使用 YUI Compressor 压缩 CSS 导致 image/svg+xml 无法显示的问题

                        2018-08-06 22:04:20 26122 0 技术文章

                        在 bootstrap 升级到 4.3 以后,.navbar-toggler-icon 的背景是一个 svg 图像,但被压缩后,url 中的空格全部消失了,所以无法显示这个图标。

                        .navbar-light .navbar-toggler-icon { background-image: url(data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://ww…p='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E); }
                        

                        于是想到修改 java 代码,重新编译。

                        https://github.com/yui/yuicompressor/blob/master/src/com/yahoo/platform/yui/compressor/CssCompressor.java
                        

                        修改源码

                        找到 CssCompressor.java,修改第 141 行,

                        css = this.preserveToken(css, "url", "(?i)url\\(\\s*([\"']?)data\\:", true, preservedTokens);
                        

                        改为

                        css = this.preserveToken(css, "url", "(?i)url\\(\\s*([\"']?)data\\:", false, preservedTokens);
                        

                        重新编译

                        安装 ant

                        # yum -y install ant
                        # ant // 编译为 jar 文件
                        

                        生成 .jar 文件位于 build 目录。

                        THE END

                        • YUI
                        • Bootstrap
                      • 2058 年的假设

                        2018-08-06 13:06:07 24046 0 生活随笔

                        IMG_3547.JPG

                        我看完后,眼睛湿润了,这只是假设,但现实情况时间是不可倒流的。

                        为了 2058 年的今天不后悔,那么我们就:珍惜现在,活在当下,行在今日。

                          • «
                          • 1
                          • 2
                          • 3
                          • 4
                          • 5
                          • 6
                          • »

                        文章归档

                        2025年04月1 2025年01月1 2024年12月1 2024年11月1 2024年10月2 2024年09月2 2024年07月1 2024年06月1 2024年04月1 2024年03月1

                        文章日历

                        2025 年 07 月
                        日 一 二 三 四 五 六
                        1 2 3 4 5
                        6 7 8 9 10 11 12
                        13 14 15 16 17 18 19
                        20 21 22 23 24 25 26
                        27 28 29 30 31

                        文章标签

                        • Linux
                        • Go
                        • Yii
                        • 新浪
                        • CentOS
                        • PHP
                        • Git
                        • WSL
                        • Composer
                        • Mac
                        • PDF
                        • 入职
                        • Bootstrap
                        • pyenv
                        • UCenter
                        • 厦门
                        • 出差
                        • 长沙
                        • 湖南卫视
                        • 微博
                        • Tengine
                        • YUI
                        • 泰国
                        • pecl
                        • 优化
                        • GitLab
                        • 迁移
                        • rootless
                        • 年会
                        • 生日
                        • Tengin
                        • RedHat
                        • Sphinx
                        • cygwin
                        • Windows
                        • Tmux
                        • Zsh
                        • 升级
                        • MySQL
                        • sql_mode
                        • Shadowsockets
                        • 面向对象
                        • HTTP
                        • 状态码
                        • grep
                        • unoconv
                        • PPT
                        • Nginx
                        • htpasswd
                        • golang

                        最新评论

                        • 崔亮 于 19-05-23 评论了
                          Tengine 2.2.2 配置 http2 协议出现的坑
                        • 王媛 于 19-01-31 评论了
                          Yii China 是官方唯一认可的中文社区
                        • 三杯蛙 于 19-01-24 评论了
                          Go 语言中 json 的操作以及常见问题
                        • 三杯蛙 于 19-01-24 评论了
                          新浪赴泰国曼谷和芭提雅团建
                        • 巡洋舰 于 18-09-05 评论了
                          CentOS 安装 PHP7
                        • 小不点 于 11-03-02 评论了
                          WordPress 如何控制每页显示的条数
                        • 白领厕工 于 10-12-22 评论了
                          关于 phpMyAdmin 免输入用户名和密码,直接进入管理界面
                        • 清晨的欣赏 于 10-08-04 评论了
                          PHP 5.4 的新特性
                        • 易赛官网 于 10-07-27 评论了
                          PHP 5.4 的新特性
                        • 文秘之家 于 10-07-17 评论了
                          PHP 5.4 的新特性

                        常用工具

                        • 时间戳转换
                        • URL ENCODE/DECODE
                        • JSON
                        • 正则测试

                        友情链接

                        • PHP 生态圈
                        • Yii Framework 中文网
                        • Yii CMS
                        • Vim Wiki
                        Copyright © 2009-2025 by Cui Liang. All Rights Reserved. 京ICP备09104811号-4 |