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

aliyun 安装gogs

 本来以为安装gogs是一件很轻松的事情不料发生了N多周折,一一记录下来

1、到官网下载二进制包:http://gogs.io/,具体页面请自己找
2、到aliyun上解压,然后到包里运行start.sh
问题就这样来了。。。
开始我没有下载二进制包,我下载的最新的版本,运行后提示:只有官方的二进制包才内置支持sqlite3。由于我不想装mysql所以。所以只能下载二进制包
1、运行后,提示我开放了端口3000,然后通过网页访问 ,最后提交的时候出错了,说是不能在root用户下运行:
XML/HTML代码
  1. Run user isn't the current user: git -> root  
2、创建一个新用户,git ....
XML/HTML代码
  1. adduser --disabled-login --gecos 'GitLab' git  
3、使用sudo运行:
XML/HTML代码
  1. sudo -u git ./start.sh  
提示:
XML/HTML代码
  1. 2014/07/18 09:37:43 [FATAL][github.com/gogits/gogs/models] publickey.go:72: publickey.init(fail to create sshPath(/root/.ssh)): mkdir /root/.ssh: permission denied  
咦,怎么在/root下?好纠结
4、用su - git
XML/HTML代码
  1. su - git  
切换 到了git 用户下。再运行提示:
XML/HTML代码
  1. 2014/07/18 09:43:03 [log.go:76] [E] Fail to parse 'conf/app.ini': open /tmp/goconfig/867736331: permission denied  
好吧。刚才是先用类似 root权限运行的。所以。。再次切换回root删除了刚才的目录,再su回来,重新运行。一切正常,然后在网页里输入信息,保存
又提示:
XML/HTML代码
  1. [martini] Started POST /install  
  2. [martini] PANIC: runtime error: invalid memory address or nil pointer dereference  
  3. /usr/local/src/go/src/pkg/runtime/panic.c:482 (0x48dffd)  
崩溃了,这肿么办?
干脆点,直接运行:gogs web,这回是WEB页提示了:
XML/HTML代码
  1. Fail to save configuration: open /alidata1/software/gogits/gogs/custom/conf/app.ini: no such file or directory  
于是手动创建目录 、文件,并chown权限为git。于是全解决了。
然后再回想一样,刚才的start.sh,是不是也是因为权限问题?果然再次就没有这个问题了。
----
回想整个过程,一切都是因为权限的原因,果然还是要细致才OK啊
 
 
 
 
 
 
 

php的curl函数怎么样请求https的网站

 说起curl请求https的网站,网上的教程很多,无非都是说在你没有证书的情况下,加上下面两句就可以了

PHP代码
  1. <?php  
  2. curl_setopt_array($handlearray(  
  3.             CURLOPT_SSL_VERIFYPEER => false,  
  4.             CURLOPT_SSL_VERIFYHOST => false,  
  5.   
  6.         ));  

诚然,很多人在这么处理后就OK了,但我遇到的情况不一样,这两个加上之后,还是不能访问。
于是问了vampire,他让我试了一下在命令行下加参数访问,如:curl -3 https://xxxxx.com,顺利的得到了结果,https还是有version的。于是在上述的脚本里再加上一句:
PHP代码
  1. CURLOPT_SSLVERSION     => 3,  
指定sslversion。
当然,这个值 不一定是3,只是我正好是在version为3的情况下访问正常罢了。实际情况还需实际对待。
话说回来,我在curl在访问的时候报的错是:
XML/HTML代码
  1. curl: (35) error:14077458:SSL routines:SSL23_GET_SERVER_HELLO:reason(1112)  
Over。
 
 
 
 
 

linux bash判断文件或文件夹是否存在

在写shell脚本的时候,还是有些注意事项的,比如。。空格,给变量赋值不能有空格,象a=1就不能写成a = 1,刚开始的时候好纠结。。

写判断语句的时候[]之间一定要有空格。以下是一些常见的判断:

参考:http://www.cnblogs.com/emanlee/p/3583769.html
  1. #如果文件夹不存在,创建文件夹  
  2. if [ ! -d "/myfolder" ]; then  
  3.   mkdir /myfolder  
  4. fi  
  5.   
  6. #shell判断文件,目录是否存在或者具有权限  
  7.   
  8.   
  9. folder="/var/www/"  
  10. file="/var/www/log"  
  11.   
  12. # -x 参数判断 $folder 是否存在并且是否具有可执行权限  
  13. if [ ! -x "$folder"]; then  
  14.   mkdir "$folder"  
  15. fi  
  16.   
  17. # -d 参数判断 $folder 是否存在  
  18. if [ ! -d "$folder"]; then  
  19.   mkdir "$folder"  
  20. fi  
  21.   
  22. # -f 参数判断 $file 是否存在  
  23. if [ ! -f "$file" ]; then  
  24.   touch "$file"  
  25. fi  
  26.   
  27. # -n 判断一个变量是否有值  
  28. if [ ! -n "$var" ]; then  
  29.   echo "$var is empty"  
  30.   exit 0  
  31. fi  
  32.   
  33. # 判断两个变量是否相等  
  34. if [ "$var1" = "$var2" ]; then  
  35.   echo '$var1 eq $var2'  
  36. else  
  37.   echo '$var1 not eq $var2'  
  38. fi  

 

macosx 10.10 开启深色模式

 比较简单

打开:
sudo defaults write /Library/Preferences/.GlobalPreferences AppleInterfaceTheme Dark
关闭:
sudo defaults write /Library/Preferences/.GlobalPreferences AppleInterfaceTheme Light
第二行其实就是恢复啦
切换到Dark模式后,去系统设置的general中将Appearance也改成Graphite,有写这个改动是:for menu,button和windows。

这回就真黑色了,但。。。大部分菜单都还没有反白,真让人揪心,不知道什么时候可以正常

ThinkPHP的主从数据库配置

最近涉及到的项目中用到了thinkphp,我都N年没有碰过这玩意了。但现在还是需要用一用。正好那些能够下载得到的wxcms也可以用这个来优化一下性能。。其实我就一台服务器。装逼而已

 

于是转一下别人的文章,因为他其中特别写了一句:只要是exec就一定从主库走,query一定从从库走。所以建议query中不要有实际的更新和插入操作。以防万一
原文地址:http://www.verydemo.com/demo_c327_i782.html
 
前言:
Thinkphp 框架本身是支持读写分离的,如何做呢?
 
最简单的做法是在配置文件中修改:
 
PHP代码
  1. 'DB_TYPE'=> 'mysql',     
  2. 'DB_DEPLOY_TYPE' => 1,  //开打支持多服务器                  
  3. 'DB_RW_SEPARATE'=>true, //读写<strong>分离</strong>分开    
  4. 'DB_HOST'=> '192.168.100.78,192.168.100.60'// 数据库服务器地址 master(写)/slave(读)    
  5. 'DB_NAME'=>'test',                   
  6. 'DB_USER'=>'root',                 
  7. 'DB_PWD'=>'root',           
  8. 'DB_PREFIX' => 'fav_',     
默认第一台数据库78是主数据库,负责写入操作,第二台60负责读操作,Thinkphp 会自动识别读和写,然后分配链接对应的数据库,来达到读写分离的效果。
 
注意事项:
 
1. 如果要设置分布式数据库,暂时不支持DB_DSN方式配置。
2.如果你当前采用了分布式数据库,并且设置了读写分离的话,query方法始终是在读服务器执行,因此query方法对应的都是读操作,而不管你的SQL语句是什么。
3.如果你当前采用了分布式数据库,并且设置了读写分离的话,execute方法始终是在写服务器执行,因此execute方法对应的都是写操作,而不管你的SQL语句是什么。
 
因此,'DB_DSN'=> 'mysql:host=192.168.100.60;dbname=51fanli_cang', 这种方式不支持主从分离,需要改。
 
当采用原生态的sql语句进行写入操作的时候,要用execute,读操作要用query,切记,否则乱掉了。
 
搞定!
---EOF---

Tags: thinkphp