V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  aristolochic  ›  全部回复第 3 页 / 共 4 页
回复总数  67
1  2  3  4  
@SuperMild 其实 Ruby 也是,而且应用广泛到在 Windows 上都不好装(因为要编译
毕竟 Ruby 和 Python 都用的是 libffi,而且 libffi 的 gem 封装 ffi 还可以适用于 JRuby 和 Rubinius
( libffi 用的实在太广泛了

除了拉原生扩展这个外援之外,动态语言还是比比什么抽象表达能力、类型标注什么的比较带劲
2021-05-09 20:59:19 +08:00
回复了 chenqh 创建的主题 Python 请教一下一般网站的目录规划放在哪里
@chenqh 对啊,/var 肯定是不能给除了 root 以外的别的东西的,但里面的东西比如 /var/www 归谁管就不一定了,不然为什么 Debian/Ubuntu 系创建 www-data 用户要设置 /var/www 为家目录呢?人家就是让你这么用的。
我现在设置的是 web:www-data,属于 web 是因为没钱+懒,开发测试部署都在一个机器上,所以需要启动不同的 Puma 实例,又不想改默认的 Puma 配置,所以 sock 文件相对于服务器目录,那生产不就放在 /var/www 里面了(不是好范式,应该放在 /run 底下,不要学我),加上又有部署魔改需求和使用 RVM 的需要,就这么做了,正常应该是 www-data:www-data,因为我要用 Nginx 。你要是不用的话,假设用 web 启动你的服务器,那就 web:web 。建议新建一个用户,最好是一个服务一个文件
2021-05-09 10:20:07 +08:00
回复了 chenqh 创建的主题 Python 请教一下一般网站的目录规划放在哪里
@no1xsyzy 神奇的是,www-data 虽然肯定是 nologin,但好多发行版给的家目录是 /var/www 。
Arch 系的 Nginx 还不用 www-data,用 http,给的家目录是 /srv/http (这就和之前对上了
或许这就是规范吧
2021-05-08 18:00:55 +08:00
回复了 chenqh 创建的主题 Python 请教一下一般网站的目录规划放在哪里
@chenqh 用户组属于 www-data 是为了让 Nginx 能够服务 public 下的静态资源,以及允许读写 sock 文件,仅需要针对 sock 文件添加组的写权限而已。Nginx 又不负责写文件,为什么要给用户组写权限呢?文件是运行应用服务器的那个用户写的(对于我而言是 Rails 应用,创建了一个 web 用户)。
部署和运行应用服务器的用户同时拥有这些文件 /目录,因为一来我希望 web 用户在 rvm 用户组下能用到 Ruby 虚拟环境,二来作为部署用户访问 rvm,能够使用 webpack 编译前端资源。如果不考虑自动化部署的话,/var/www/<YOUR_APP_NAME>完全是可以交给 www-data 的( www-data:www-data )
2021-05-08 15:26:45 +08:00
回复了 chenqh 创建的主题 Python 请教一下一般网站的目录规划放在哪里
@chenqh 这不得看场景嘛……我是利用了 www-data 用户组,把执行可执行文件的用户加进去,然后服务目录 755 g+s 。不好说算不算好实践。(要设置 gid bits 是部署时复制文件的 hack,没啥别的意思)。执行用户为什么一定要是 root 呢,没这个规矩啊
2021-05-08 15:04:28 +08:00
回复了 chenqh 创建的主题 Python 请教一下一般网站的目录规划放在哪里
按照设计来讲是应该放到 /srv 下面的,/var/www 也是个流行的选择,可实践起来却真的不一定。
首先是发行版(的打包者)就有脾气,同样是安个 Nginx,得有那个告诉你 Nginx 跑起来的静态目录吧,那个 sites-available/default 的 root 目录就不一样:
SUSE 系列的挺守规矩,就放在 /srv 里面; Debian/Ubuntu 和 RHEL/CentOS 都放在 /var/www,/srv 目录里面基本上默认啥都没有; Arch 系 /srv 下面倒是给你放了两个空文件夹 ftp 和 http,你以为要放在 /srv/http 那里了吗?当然不,是放在 /usr/share/nginx 下。
这就是另一种范式。系统打包的东西你真不知道装在哪儿,因为规范没那么强力,尤其是像 Arch 这样的八成就跟着上游走了。自己编译的、闭源的,没准还放在 /opt 里面。
我的推荐是在以下几个里面选:/srv, /var/www, /www, /opt 。前两者好多人都用,生态上也基本就认这两个,合理;/www 的话也见不少人用过(排除宝塔面板),但可能有一半都是 /var/www 的软链接;/opt 的话,比如说打包成 docker 就挺不错的,如果用户不想要了,可以一键删干净。
放家目录可就算了吧,自己玩儿的可行,真要部署可就没听说过了。部属用的用户比如 deploy 或者服务用的用户 www-data 哪儿有家目录啊?难不成放你普通用户家目录?凭啥啊,折腾用户组多费劲。再说 systemd 服务指向的工作目录是家目录下的一个子目录,心里不膈应吗。
对说到部署,还有一种选择是听工具链的选择。已经有人提到了,宝塔面板用 /www 。各有各的喜好,比如用 Capistrano 部署 Rails,就是 /var/www 。人家 Tomcat 还直接放在 webapp 呢,不就从根源上没这码事儿吗。
2021-04-29 14:21:53 +08:00
回复了 godall 创建的主题 硬件 有懂 LED 广告屏远程控制的技术的吗?小白请教
如果你说的 LED 是那种红色的点阵,或者最多了三色+白色的那种,那么大概是大学生用 ESP 搞课设的水平;
如果是电视那种 LED,要求播视频放轮播图放网页……其实也是大学生搞课设的水平,只不过硬件上 ESP 就不行了。
2021-04-29 13:58:10 +08:00
回复了 sillydaddy 创建的主题 奇思妙想 原创!在文章中添加“文字指纹”,追踪盗版源头
自定义字体可以一试,就是要求追踪到用户的话,怕不是每个用户一个字体。当然了,防不过 OCR
2021-04-26 14:30:21 +08:00
回复了 feitxue 创建的主题 Python 不懂就问,关于 Python web 项目发布
以前 Ruby 生态搞出来的基于 ssh 的部署工具 Capistrano 流行过一段时间,依靠插件简化的部分大概是拉取版本管理系统的提交、保留多个版本供回滚用、多版本共享目录、自动运行 migration 等等,还有生成和自动重启中间件 /应用服务器( Python 的话就是 WSGI,Ruby 就是 Rack,PHP……是啥不知道,没用过) systemd 服务,还有生成 Nginx 配置啥的(不过感觉提供 systemd 和 Nginx 管理的插件就是用来给不怎么懂这些东西的人一个开箱即用的最佳实践,有需要可以手动编辑)。当时不止 Ruby on Rails 的人在用,PHP 和 Python 也有一些。当然现在也不是不能用,就是装 Ruby 和熟悉 Ruby 不是很多人都能接受(因为 Ruby 生态的东西,配置文件一般也是 Ruby 造的 DSL )

小规模的话最好不用也没必要,但是理念可以参考一些,比如利用软链接在多个版本间共享前端资产、用户上传的图片等公共资源、数据库 Schema 和服务器 pid 和 socket 文件目录等等,不知道怎么写 Systemd service 也可以照抄,Nginx 配置也可以照抄(虽然现在可能用 Caddy 和 HAProxy 的多了?),还有写点脚本来搞点服务端的自动化之类的

要是不痛恨 Docker 的话,就 Docker 得了
2021-03-19 20:39:58 +08:00
回复了 Superway117 创建的主题 Node.js 前端录制视频的方法
姑且能用 Microsoft Edge Tools for VS Code 插件,这个是官方的方案。不过窗口大小无法调整且比较模糊,毕竟是开了 Headless 的窗口再把图形复制过来。这个插件宗旨是为了调试浏览器而非调试网页。其他浏览器应该也有类似的,都是通过远程调试协议来的。我觉得会比较鸡肋,根本解决方案是大显示屏或多个显示屏。保存自动刷新可以用别的方案,不一定也最好不要交给插件
2021-02-16 23:49:30 +08:00
回复了 tu7jako 创建的主题 Python 请问 django 如何连接 mongo,并且能使用 django 自带的 admin??
印象里 Django Admin 还有其他的 contrib 是不会对数据库是关系型还是什么作出限制的吧,一般只会依赖 ORM
那就好办了,找找 MongoDB 的 Django Driver
我找到一个,叫 Djongo
但这么整真的有优势嘛?无非就是不用 migrate 了呗,剩下还不如 RDBMS 呢
2021-02-16 23:40:56 +08:00
回复了 xxbutoo 创建的主题 MySQL 在整个应用中, v 友是怎样去禁用某个用户的
上面说到了微服务
其实单体应用也要拆分模块提供接口的
不明白为什么认为只有微服务才能解耦
任何系统大起来之后里面也不能是糊糊叭
微服务一开始就注意这些,可单体应用老油条们也各有各的解决方案
Java 的 Spring 那些不有业务层吗,不是用来干这个的?
Rails 充血模型,一开始写在模型里,后来复杂起来写在 Concern 里,再复杂一点学 Java 用 Service Object,等成熟了抽离出 Engine,就成了一个完整的独立模块
Django 的 App 应该也可以做这些(但我不太熟不好说明)

这又不仅仅是 Ban 一个用户如何实现的问题
其他涉及数据敏感的地方,也要谨慎啊

就算内部是一团浆糊,维护者需要直接访问数据,
但还有手册吧?虽然确实可能“忘记写什么东西了”,
要是 CodeReview 没有铺开也可能发现不了
但这个不是还有测试管着呢嘛
怕什么怕
2020-12-25 12:11:48 +08:00
回复了 QGabriel 创建的主题 Python Python 小白提个问题
@no1xsyzy yep ( x
2020-12-24 16:19:55 +08:00
回复了 coool 创建的主题 Ruby on Rails Rails new 命令一直转圈怎么办?
@coool (啊居然一个半月之后才看到……我没用 cnpm,据说有巨多坑而且不会影响到 yarn 。我是改在.npmrc 里的,yarn 应该会尊重这个的
2020-12-24 16:13:51 +08:00
回复了 youla 创建的主题 程序员 有工具可以模拟 4k 屏访问网页吗?只有一台垃圾 1080p 125%~~
@youla 这……还真不清楚(用了新 Edge 就把 Chrome 卸了(巨硬这个懒狗改开发者工具净是改 UI 的应该不至于加功能……吧?
2020-12-24 15:25:20 +08:00
回复了 QGabriel 创建的主题 Python Python 小白提个问题
@no1xsyzy 不论是开发还是测试生产,都别碰系统的。Python 更是如此,一个几乎所有发行版都得乖乖放到 base 里面的超级依赖,疯了才去卸载它( Arch Linux 躲过一劫)。剩下的不要碰系统 Python 的原因是,系统的包管理器也会打包 Python 包,这时候如果用 Pip 更新了,会检查文件完整性的系统包管理器(比如 pacman )就会直接罢工。这个 Nodejs 啊 Ruby 啊等等也是一样的。推荐的做法是一定要用虚拟环境,个人的解决方案是把系统 Python 的所有依赖交给系统包管理器管理,甚至 pip 能不装都别装,平常用的话,用系统包管理器装的 pipx 装 PyPi 发行的 cli 工具,比如 pgcli 、asciinema 之类的,然后再装个 poetry 负责平常的开发
2020-12-24 15:18:14 +08:00
回复了 youla 创建的主题 程序员 有工具可以模拟 4k 屏访问网页吗?只有一台垃圾 1080p 125%~~
@youla 新 Edge 的响应式设计模式上面有一条,最高可以调到 4K 。不是下拉菜单选择设备那种,是用竖线分隔开的左右对称的一个控件,鼠标悬浮在上面就能看到目标宽度。当然自己缩放应该行的吧
2020-12-21 19:01:46 +08:00
回复了 samun 创建的主题 程序员 请教各位老哥一个问题 如何避免扯皮
@madworks 有针对 CPU 的币种比如门罗币,前几年还炒过硬盘币种你敢信?所以问题不在这儿,蚂蚱也是肉的原因是人家是分布式挖矿,进程也不多占稳定百分之五十。如果楼主说的服务器在公网有入口的话,只要是没禁用密码登录的特别容易被扫,可锲而不舍了所有端口都挨个试一遍。这东西影响还挺深远,一查就有。是连着一个荷兰的 IP,伪装成 java 和 kswapd0 都有。
2020-11-24 19:39:29 +08:00
回复了 zhouxelf 创建的主题 Vue.js Vue3 目前有已经在生产环境用的吗
@jjianwen68 Github 上置顶 Issue 说要明年
似乎作者身体不太好,之前也说过去住院了
然后还有就是希望借着兼容 Vue 3 的机会奠定出新版本的基础
1  2  3  4  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2858 人在线   最高记录 6543   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 36ms · UTC 15:00 · PVG 23:00 · LAX 08:00 · JFK 11:00
Developed with CodeLauncher
♥ Do have faith in what you're doing.