手机浏览 RSS 2.0 订阅 膘叔的简单人生 , 腾讯云RDS购买 | 超便宜的Vultr , 注册 | 登陆
浏览模式: 标准 | 列表分类:Linux

找了台4c8g的机器装了sentry

sentry这个东西吧,你要不用它,其实也可以只是用它的话呢,你能收集到更详细的信息。平时的错误日志可能是会散的,比如你nginx访问返回500,这时候你还得看程序出错的异常,对应那个时间段 。然后如果当时记录的信息不够详细,你还要倒推,请求了哪些参数,能不能复现,这些参数有没有更方便的请求,带了哪些cookie,有没有session。烦

有了sentry之后呢,这些出错信息,自然也就都带过来了。至少看到出错日志的时候,我能够知道出错行数、出错内容、请求来源、以及请求的参数。甚至还有curl的代码给你。让你可以模拟请求进行复现。
 
为了装sentry。真的是很痛苦。因为之前买的小鸡都一般是2c4g。对于开发Web来说,2c4g足够了。但sentry要求,至少4c8g,20G空间。20G空间是小事。。。但4c8g真的太贵了。。。腾讯轻量云年购老用户5.5折都要1680一年了。心痛啊。
 
不过看在他可以收集:flutter、vue以及laravel的错误日志上,我还是购了一台。毕竟网页里的vue出错了。我没法让用户告诉我你打开f12把错误信息截个图我。。
 
先试试看用一年再说了。为自己的线个项目都建一个project。看看能不能改善现在的开发情况。
---
本来也想用官方的服务的,但sentry.io有时候访问还得爬梯子,速度也不尽如意,创建项目也没有那么多。所以才想了自建,就是成本高了点
 

Tags: sentry

rpm数据库修复

因为偷懒,在腾讯云上使用的时候,就直接用了bt面板的镜像,这个镜像用的是centos,也因此就有了yum 和rpm数据库的问题。

因为某次在更新的时候嫌慢,所以直接ctrl+c,然后。。。再次启动的时候就:
 yum update
错误:rpmdb: BDB0113 Thread/process 8643/139904725112896 failed: BDB1507 Thread died in Berkeley DB library
错误:db5 错误(-30973) 来自 dbenv->failchk:BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
错误:无法使用 db5 -  (-30973) 打开 Packages 索引
错误:无法从 /var/lib/rpm 打开软件包数据库
CRITICAL:yum.main:
 
Error: rpmdb open failed
 
---看这个样子,就是数据库坏了。
看起来没什么特别好的办法,只能重建,于是:
# mkdir /var/lib/rpm/backup
# cp -a /var/lib/rpm/__db* /var/lib/rpm/backup/
# rm -rf /var/lib/rpm/__db.[0-9][0-9]*
# rpm --quiet -qa
# rpm --rebuilddb
# yum clean all
 
yum clean all运行完后会显示 :
已加载插件:fastestmirror, langpacks
Repository epel is listed more than once in the configuration
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
正在清理软件源: centos-sclo-rh epel extras os updates
Cleaning up list of fastest mirrors
 
至此,修复完毕,因为用的腾讯云,所以直接将源切到腾讯:CentOS (tencent.com),先用yum version看看版本,然后下载相应的repo。最后运行:
yum clean all
yum makecache
 
世界清静了
 
 

千辛万苦搭建了一台gitea server

一直使用github,也有因为各种原因使用过不少的git server,比如:codeup/gitee/coding/甚至腾讯工蜂,国外的么,bitbucket/gitlab其实也都有使用,这里面带来的最大的问题就是网络问题,当然国内的没这个毛病,但比如gitee,不能超过3个协作者(个人账户),coding的话,我个人是很喜欢的,甚至想成为他们的商业用户,但商业用户需要至少5个使用者。(国内好象其他平台也差不多,要想成为商业用户,几乎最少人数都是5人,一年500多我愿意付出,但2500多确实没有太大必要)

 
github/gitlab 当然没什么问题,但偶尔的不能访问也确实有点麻烦,这些都不是重要的。github也尝试过通过Action来进行自动部署,但确实不舒服,连接国内进行部署的时候,一个40多M的jar包。有一次传输上就花了将近10分钟,这种在国外向国内进行传输速度,有时候还是挺抽风的。
 
于是搭建git server的相法就开始了。之前其实也搭过,从16年开始,基本上就是用gogs,当然也不是没遇过问题,比如超过50M时就无法上传之类的。这时候就要改nginx最大允许的post max size了。这次是看到说gitea推出了【包管理(Package Registry)】,然后才决定使用的。
 
然而在使用的时候,就开始遇到各种问题了。比如不能运行在root下,腾讯的轻量默认是root用户嗯,cvm/阿里云的ecs,也是root,但阿里云的轻量,默认居然是admin。有点妖
然后创建git用户,测试su git -c '/usr/local/bin/gitea web'进行测试。到这里都没啥问题,然后我就开始遇到问题
1、用nginx做反向代理 ,毕竟我也不可能一直用ip+port进行访问,然而css/js全部无法访问,检查了很久,才发现原来是默认的配置文件里对css/js等静态文件做了过期时间设置,但因为最早3000端口被 zerotier的UI占用了。这时候他就一直不过期了。所以一直就无法访问(在缓存里?)这个有点麻烦,现在很多路径都是/assets/css/css.css,这种自动生成的格式,所以大部分自动打包的可能路径都是这种,这时候一旦被缓存了,短时间内就一直无法变改。这很纠结
2、ssh 登录,这个才是大坑。其实也是怪我自己,如果我允许port登录,估计早就解决了。比如我可以让root用户通过自定义端口登录,然后git用户就可以通过22端口登录了。(测试过可行,但不太想改默认登录端口,想复用端口,结果就启动不了了,好象非root用户进行的项目,无法使用1024以下端口)
3、最后只能使用docker来进行部署,然后因为我偷懒没使用docker,用了podman。。。默认安装的podman是3.0.4,使用podman-compose的时候有问题。于是又升级到4.2,然后才能正常使用podman-compose。对着官方文档配置 gitea脚本以及 默认的转发(再折腾了1个小时才搞完)
 
先做个笔记,后面看什么时候有空补上详细的,以后重装也能更方便一点

valet 支持多版本的php啦

Valet 支持多版本下的PHP啦 。

要想valet支持多版本PHP,你必须要将valet升级到3.0以上
 
更新方法:
```
This super exciting new feature is now officially released, as a part of Valet 3! To update: 1. Update your global Valet constraint to "^3.0" 2. Run `composer global update laravel/valet` 3. Run `valet install` 4. Party On, Wayne!
```
so easy。如果你在使用mac,那个 phpmon也支持valet3啦 。记得更新哦
如果你已经装过,那么直接brew upgrade phpmon,如果你之前没有装过,支行
```
brew tap nicoverbruggen/homebrew-cask
brew install --cask phpmon
```
 
参考:
1、Laravel Valet 3 Released With Multi-Version PHP Support | Laravel News (laravel-news.com)
2、nicoverbruggen/phpmon: Lightweight, native Mac menu bar app that interacts with Laravel Valet. Helps you manage multiple PHP installations, locate config files and more. (github.com)
 

服务器偷懒采用LNMP了。

服务器上曾经偷懒过,比如用宝塔,但如果不想要个界面那就用lnmp会相对方便一点,主要是配置多环境PHP会相对容易 

初始化安装就不谈了,直接说安装另一个版本的PHP吧。
进入 lnmp的目录。运行./install.sh mphp,选择一个和当前PHP不一样的版本。比如我正常是PHP8,但因为用了dcat-admin,只能用PHP7.4了,于是./install.sh mphp,选择php7.4,一路回车。安装完毕。
 
这时候还要改一下vhost的配置,原来conf中,include enable-php.conf,则要改成 include enable-php7.4.conf
 
然后要运行composer u,发现报错,因为composer.json中指定php<8,这时候只能这样运行:/usr/local/php7.4/bin/php /usr/local/bin/composer u,所有的都要指定全路径。
 
再次运行,居然还是报错,发现说少了一个zip组件。OK,重新进入lnmp的目录,再进入src目录。刚才安装的php7.4,会有一个tar.bz的文件存在,tar -xvf php7.4...tar.bz。解压到目录,并进入该目录下的ext/zip目录。运行: /usr/local/php7.4/bin/phpize,然后运行:./configure --with-php-config=/usr/local/php7.4/bin/php-config --with-zip,完事后:make && make install,这时候就完成了,但zip还是没有,因为使用 /usr/local/php7.4/bin/php -m|grep zip,一片空白
 
进入/usr/local/php7.4/etc/,修改php.ini文件,在extension_dir,下增加:extension=zip.so,由于laravel的composer在执行时需要proc_open和exec。等函数,检查 disable_function,删除掉一点程序。
<code>
  [Symfony\Component\Process\Exception\RuntimeException]
  The Process class relies on proc_open, which is not available on your PHP installation.
</code>
 
 
如果你本身enable_phpinfo(lnmp的配置),那你几乎可以把disable_function这一行重新注释起来。
 
至此,新环境搞定。如果是一些其他 插件,比如eacc/apc/opcache,直接在lnmp目录下,运行./addons.sh 即可
 

Tags: lnmp, bt

Records:26612345678910»