Can’t convert string from native encoding to ‘UTF-8’

问题: 执行命令svn status 出现提示下面提示信息

svn: E000022: Error converting entry in directory '/wwwroot/test_ks/Application/M/View/default/Ac' to UTF-8
svn: E000022: Can't convert string from native encoding to 'UTF-8':
svn: E000022: lists - ?\229?\137?\175?\230?\156?\172.html

描述: 之前是没有问题的可以操作都是正常, 不知道什么原因突然就出现这个问题. 导致服务器上的svn库无法update等操作.

通过操作su切换到超级用户的时候显示正常, 然后再重新切换回普遍用户这个时候svn操作命令则都正常.但是用普通用户重新连接则又不正常了.

连接第二台服务器, 则无这个问题.


解决: export LC_ALL= (普遍用户执行命令)把变量重置为空 这样也可以无需编辑其他的任何文件重新连接也生效

设置后-使用命令 locale查看

LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

设置前(有问题时状态)-使用命令 locale查看

LANG=en_US.UTF-8
LC_CTYPE="C"
LC_NUMERIC="C"
LC_TIME="C"
LC_COLLATE="C"
LC_MONETARY="C"
LC_MESSAGES="C"
LC_PAPER="C"
LC_NAME="C"
LC_ADDRESS="C"
LC_TELEPHONE="C"
LC_MEASUREMENT="C"
LC_IDENTIFICATION="C"
LC_ALL=C

docker-walle2.0

walle 瓦力

官网-walle

测试安装环境

  • mac 10.13.1
  • docker 18.06.0-ce, build 0ffa825

部署步骤

  1. git clone https://github.com/owen-carter/walle-web
  2. docker-compose up -d
  3. docker exec -it walle-web_web_1 bash chmod +x ./admin.sh ./admin.sh migration
  4. 浏览器访问: http://127.0.0.1

部署错误

ERROR: for db  Cannot start service db: b'Mounts denied: \r\nThe path /data/walle/mysql\r\nis not shared from OS X and is not known to Docker.\r\nYou can configure shared paths from Docker -> Preferences... -> File Sharing.\r\nSee https://docs.docker.com/docker-for-mac/osxfs/#namespaces for more info.\r\n.'

原因: docker-compose.yml 中db服务volumes里的路径不在docker共享中.

处理方法: 自己的docker已把/users为docker路径那么, /data/walle/mysql修改为 ~/data/walle/mysql


启动后, 输入用户名密码登录的时候出现网络错误

原因: docker在构建启动的时候没有导入数据库

处理方法: 进入python的容器中, chmod +x ./admin.sh ./admin.sh migration


laradock目录说明-服务说明

在坚持Docker推动的关注分离原则时,Laradock在自己的Container上运行每个软件。您可以像任何容器一样打开/关闭任意数量的实例,而不必担心配置,一切都像魅力一样。

数据库引擎: MySQL – MariaDB – Percona – MongoDB – Neo4j – RethinkDB – MSSQL – PostgreSQL – Postgres-PostGIS。
数据库管理: PhpMyAdmin – Adminer – PgAdmin
缓存引擎: Redis – Memcached – Aerospike
PHP服务器: NGINX – Apache2 – Caddy
PHP编译器: PHP FPM – HHVM
消息队列: Beanstalkd – RabbitMQ – PHP工作者
排队管理: Beanstalkd控制台 – RabbitMQ控制台
随机工具: Mailu – HAProxy – Certbot – Blackfire – Selenium – Jenkins – ElasticSearch – Kibana – Grafana – Gitlab – Mailhog – MailDev – Minio – Varnish – Swoole – NetData – Portainer – Laravel Echo – Phalcon

Laradock将Workspace Image作为开发环境引入。它包含一组丰富的有用工具,所有这些工具都经过预先配置,可以与您选择的几乎任何容器和工具组合工作和集成.

工作区图像工具 PHP CLI – Composer – Git – Linuxbrew – Node – V8JS – Gulp – SQLite – xDebug – Envoy – Deployer – Vim – Yarn – SOAP – Drush

提高MacOS的速度

Tip: 更多见官网文档

在撰写本文时,Mac上的Docker 很慢。特别是对于大型项目,这可能是一个问题。问题是比2016年3月更早 – 因为这是一个长期存在的问题,我们将其包含在此处的文档中。

因此,与Linux相比,使用osxfs将代码共享到Docker容器中的性能非常差。可能有一些解决方法:

解决方法A:使用小艇
Dinghy使用docker-machine创建自己的VM,它不会修改现有的docker-machine VM。

快速设置giude,(我们建议您查看他们的文档)

1) brew tap codekitchen/dinghy

2) brew install dinghy

3)dinghy create –provider virtualbox(必须安装虚拟机,但如果您愿意,它们支持其他提供商)

4)完成上述命令后,它将显示一些env变量,将它们复制到bash配置文件或zsh或..(这将指示docker使用在VM内运行的服务器)

5) docker-compose up …

你可以在具有相同的使用任何时间有或无搬运工同步运行laradock .env和docker-compose.yml,因为当使用搬运工同步的配置被自动忽略。
您可以检查sync.sh脚本以了解每个命令,甚至添加自定义命令。
如果容器无法访问docker-sync上的文件,则可能需要在该容器的Dockerfile上设置id为1000的用户(这是nginx和php-fpm在laradock上配置的UID)。或者,您可以将权限更改为777,但不建议这样做 更多-docker-sync文档

Laradock有两个基本图像(Workspace和php-fpm,主要由以加快您的计算机上生成时间。

目录抓取时间: 2018年11月16日16:50:06

├── LICENSE
├── adminer Adminer替换phpMyAdmin
├── aerospike Aerospike(以下简称AS)是一个以分布式为核心基础,可基于行随机存取内存中索引、数据或SSD存储中数据的数据库
├── apache2
├── aws 亚马逊
├── beanstalkd Beanstalkd,一个高性能、轻量级的分布式内存队列系统
├── beanstalkd-console
├── caddy caddy是一个用go语言开发的服务器,可用作web端
├── certbot Certbot是EFF加密整个互联网的一部分。通过Web进行安全通信依赖于HTTPS,这需要使用数字证书,让浏览器验证Web服务器的身份
├── docker-compose.sync.yml
├── docker-compose.yml
├── docker-registry
├── docker-sync.yml
├── docker-web-ui
├── elasticsearch ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口
├── env-example
├── gitlab
├── grafana 自动创建监控图
├── haproxy haproxy是一款非常的专业的全7层的反向代理负载均衡器
├── hhvm HHVM (HipHop Virtual Machine)会将PHP代码转换成高级别的字节码(通常称为中间语言)。然后在运行时通过即时(JIT)编译器将这些字节码转换为x64的机器码。在这些方面,HHVM十分类似于C#的CLR和Java的JVM
├── ide-codiad Codiad是一个基于Web的IDE框架,占用空间小,需求量小。
├── ide-icecoder
├── ide-theia
├── ide-webide
├── ipython
├── jenkins
├── jupyterhub
├── kibana
├── laravel-echo-server
├── logs
├── maildev
├── mailhog
├── mariadb
├── memcached
├── minio
├── mongo
├── mongo-webui
├── mssql
├── mysql
├── neo4j
├── nginx
├── percona
├── pgadmin
├── php-fpm
├── php-worker
├── phpmyadmin
├── portainer
├── postgres
├── postgres-postgis
├── rabbitmq
├── redis
├── rethinkdb
├── selenium
├── solr
├── sync.sh
├── thumbor
├── travis-build.sh
├── varnish
└── workspace

相关资料

aerospike-官网
Certbot-官网
grafana-官网
codiad-官网

Aerospike使用介绍
PHP 使用 ElasticSearch 做搜索

walle 瓦力-安装部署

部署时间: 2018年10月31日
部署环境:centos_1708 php7.2 nginx (php5.6无法完成composer install 会提示报php版本过低)

数据库中配置: config/local.php 后面的数据库信息(由于系统是基于YII 可能有指定的环境配置环境 我这就是直接改这个文件了) 文档中说是改config/web.php 但是改了之后还是无效

'dsn'       => isset($_ENV['WALLE_DB_DSN'])  ? $_ENV['WALLE_DB_DSN']  : 'mysql:host=127.0.0.1;dbname=walle',
'username'  => isset($_ENV['WALLE_DB_USER']) ? $_ENV['WALLE_DB_USER'] : 'root',
'password'  => isset($_ENV['WALLE_DB_PASS']) ? $_ENV['WALLE_DB_PASS'] : '',

安装中主要遇到是php版本和数据库配置信息的问题. 其它的步骤参考 官网-安装步骤文档

相关资料

walle-web github
代码部署工具walle
Yii2 使用 .env 来配置项目环境变量 还没测试这个目测好像不符合瓦力这个项目