Tips

共计 27 篇文章

服务器图片403

这两天服务器端的环境已经部署好了,发现了一个问题,登录后台管理系统的时候,很多图片的地址无法正常访问。提示403错误,顺藤摸瓜的找了很久,没发现什么异常。 改了Nginx的配置文件,支持了正则图片格式。仍然失效。 突然想起来是不是权限设置的有问题。 ls -al 一看果然。,。默认的权限都是root的。因为我设置了一个独立的用户组来控制,所以在nginx访问这些目录的时候,肯定会提示403错误。 大意了大意了。

SSH服务器免密码登录

最近由于工作的需要,经常需要通过SSH登录各种不同的服务器。之前是通过vSSH这个软件来管理,现在比较倾向就使用iTerm2就可以了。 在使用终端来进行操作的时候,一次两次SSH还可以,但是次数多起来后,一遍又一遍的输入密码很麻烦。而且为了安全,我们AliYun的密码也挺复杂。每一次都需要在Evernote中找到,复制粘贴过来,很不爽。本来考虑写个脚本来处理,但是觉得明文的将密码存储下来,不是很安全。 So,既然都用的SSH,那合不使用SSH的特性来处理这个问题?免密码登录,就能方便的登录各个不同的服务器了。 SSH是一种对称加密,所以我们就只需要通过把自己的公钥放到远程服务器中就可以了。 拷贝出自己的公钥信息 cat ~/.ssh/id_rsa.pub 登录到远程服务器中,查看**~/.ssh/authorized_

Centos中双开Tomcat

因为最近的项目需要使用Tomcat来运行,且分了API和Admin两个项目。我就想通过配置,让Tomcat多开。经过一天的折腾和配置,基本上已经完全实现业务需求。由于本机已经安装过一个Nginx,所以Tomcat的默认端口需要修改下。 有两种方案可以解决。 第一种方案:一个Tomcat多开Service 想要多开Service也很简单,只需要复制Tomcat配置中的Service页签就可以了。 <Service name="Catalina"> <Connector port="9080" protocol="HTTP/1.1" connectionTimeout=

MySQL远程数据库访问出错排查

上一次在做Django的时候,我就遇到一个问题,我的远程MySQL数据库一直连接不上,比较头疼。但是后来通过mysqldump把数据从远程拷贝到本地来了。 这一次由于牵扯到Typecho的数据转换,我找到的解决方案是通过node的一个包来进行转换。为了使我的Blog数据得以迁移过来,我就不得不开始了折腾之旅。 Navicat里面提示错误信息「2013」,查询了很多结果,基本上都是说自己的远程MySQL没有配置好导致的。 问题排查记录: 去找了下配置文件/etc/my.cnf,里面并没有配置bind_address。应该是MySQL版本较高的原因,默认配置是没有的。 在**[mysqlld]中添加上了skip_name_resolve**,仍然不起作用 远程数据库帐号权限问题,再三确认没有问题 可以通过以下命令获取远程登录权限 grant all

取消git中文件或者文件夹的版本管理

很多时候,在开发的时候,由于自己的不小心或者别人的不小心,将一些本来不应该被git版本管理的文件或者文件夹放到网络上或者本地的版本库中(我好像用了很多个或者)。下来就需要将这些文件移除在git版本之外。 当文件已经被手动删除,但是没有从git版本库中删除的时候 这个时候需要,通过**git rm -r fileFloder/ **来删除整个文件夹 当文件仅仅想从git版本库中删除,但本地不删除的时候 通过**git rm -r --cached -r fileFolder/ **。这样fileFolder这个文件夹就从git版本中移除了,同时并没有在本地文件删除这个文件夹。 另外一种方法,可以将这个文件夹,写在.gitignore里面,push到服务器上面即可。

MySQL迁移至SQLite

由于最近学习了Django,想着不然把自己的Blog从Typecho迁移到Django的框架中,其实上层差别不是特别大,一个是PHP一个是Python。下层的话,由于我初学Django基本的教程都是通过SQLite作为默认的数据库的。刚好我做Android开发的时候,其实数据库使用的就是SQLite。因此着手把数据库进行迁移下。遇到了一些坑,记录一下。 网上很多SQLite转MySQL的教程,唯独没有MySQL转SQLite的方案。找了几个,大体上的方案都很类似。先将MySQL的DB转换成txt格式,通过批处理修改一下创建表的语法,然后在生成一个SQLite的数据库。实际操作起来不是特别方便,我选择了这个回答下面的方案。 得益于dumblob这位开发者开源的这个项目,我在服务器端通过mysqldump和它的脚本生成了一个SQLite3的DB,将其考到本地。 由于这个脚本只是生成表结构的,并没有将数据导入进来,所以下一步的计划是将数据导入到新生成的SQLite3DB中。 在导入的过程中发现了,若按照正常的生成语句是无法写入NULL数据 template = models.IntegerField(blank=True)

Python安装virtualenv

今天在Youtube上看一个视频教程的时候,才知道Python下面有这样一个好东西,有点类似Docker,实际上又比Docker轻量级很多。Python的优点就是库很多,很方便的站在别人肩膀上快速开发。但这个有点也是一个缺点,在项目比较多的情况下,由于所有的site-packages都是公用的,这样不便于修改配置。所以,需要有一个类似虚拟环境的东西,来保证对于单个项目中的虚拟环境都是互相隔离的,特别的纯净。 安装的过程实际上也特别的简单: pip install virtualenv 进入你的项目目录中,创建一个虚拟的环境: cd yourproject virtualenv —no-site-packages venv 这样一个独立的虚拟环境就设置好了,在项目的目录下多了一个venv,里面包含了Python所需要的环境。接下来以安装Django为例,我们看看怎么使用这个虚拟环境。仔细观察一下 venv/bin/

Mac配置Android Adb

之前自己的Mac中Adb已经配置成功,但是因为还了一个路径,导致Adb失效。 从终端进入用户的Home目录,如果不知道Home目录在哪里,可以输入以下代码查询 echo $HOME Vim .bash_profile文件,输入以下代码并保存 exprot PATH=${PATH}:/xxxx/sdk/platform-tools exprot PATH=${PATH}:/xxxx/sdk/tools 最后更新刚刚配置的环境变量 source .bash_profile

Mac修改通知中心通知的展示时间

我个人有点强迫症,看见有东西闪烁总觉得想去点点 但有时候有比较矛盾,通知中心的通知,有时候需要短暂的看一看了解就可以了。但是默认Mac的展示时间较长,我想能不能通过设置去修改掉。 Google了下,找到了解决方案: defaults write com.apple.notificationcenterui bannerTime 将上面的#设置为自己需要的秒数就可以了,我目前设置的5秒,感觉还不错,网易云音乐、邮件的提示也就短短5s就过去了,不碍眼。 要是想恢复到系统默认的参数,用下面的命令就好了: defaults delete com.apple.notificationcenterui bannerTime

Retrofit获取网络Dom数据

前两天在一个小事情上面卡壳好久,需求是这样的,我想通过jsoup去解析一个数据源。 通过Retrofit处理这个请求,但是一直会出问题。 单步调试才发现问题的所在,response.body()中的数据并不是我想要的。 我比较需要response.body().raw()里面的数据,但是官方没有这个方法获取。 愁的我继续看官方的API,后面才发现,需要这样 将response.body().toString()改成response.body().string(),万事大吉。 得到了我需要的网页源数据。