-
WordPress没有写入权限
使用WordPress上传图片时,提示:`WordPress解决无法建立目录wp-content/uploads/yyyy/MM,有没有上级目录的写权限。`这个其实很简单就是你运行WordPress的时候,用户没有这个文件的写入权限。解决办法:*建立uploads文件夹,假设WordPress的目录为:`/home/www````bashcd/home/www/wp-contentmkdirsuplaods```*查看运行WordPress的用户,假设使用的Apache作为http服务器```bashpsaux|grephttpd```如下图:![Apache用户名](//static.acgist.com/resources/images/article/201609/14749429897021001.png)apache就是用户名,将uploads的用户改为apache:```bashchown-Rapacheuploadschown-Rapache:apacheuplaods```后面一条是把uploads的用户和用户组都改为apache,然后你就可以上传文件了。当然应该还可以直接将Apache的用户...
WordPress 文件上传 -
CentOS安装WordPress
安装PHP/MySQL/httpd(一般Apache默认安装好了)```bashyuminstallmysqlmysql-servermysql-develyuminstallphpyuminstallhttpd```启动命令:```bashservicemysqldstart/stop/restartservicehttpdstart/stop/restart```设置MySQL密码和外网访问,修改后需要重启MySQL服务:```sqlmysqlusemsyql;updateusersetpassword=password("password")whereuser='root';GRANTALLPRIVILEGESON*.*TO'root'@'%'IDENTIFIEDBY'password'WITHGRANTOPTION;FLUSHPRIVILEGES;```修改`/etc/httpd/conf/httpd.conf`修改默认目录(假设你的WordPress目录为`/home/www/html`):```DocumentRoot"/home/www/html"```如果提示`您的PHP似乎没有安装运行Wor...
CentOS WordPress -
Java总结
总结一些编码的注意事项:1.变量使用前一定要判断空值。2.方法尽可能的拆分为不同用途的小方法,减少每个方法的行数,尽量复用代码。3.Spring定时器中`00/4006-07**?`这个写法,执行的时间不是`6:00/6:40/7:20`而是`6:00/6:40/7:00/7:40`这样,是每个小时分开的。##隐式转换```shorta=1;a+=1;//正确a=a+1;//报错```##字符串拼接```Stringa="1";Stringb="2";Stringc=a+b;//StringBuilder```##float```floata=1.1;//错误```##连接接入连接接入注意管理,防止内存泄露,可以考虑使用`WeakHashMap`。##@SafeVarargs```java@SafeVarargspublicfinalTof(List...list){//...}```>必须是final方法##Java监控Java启动本地监控自动启动,如果需要远程监控可以使用JMX。本地RMI随机端口远程JMX指定端口:代码(RMI/HTTP)或者命令参数本地监控端口随机(自带):jconsole
Java -
常见场景问题整理及解决办法
一般场景应该想到的问题和解决办法。提交表单:*重复提交:*禁止刷新*处理完成重定向*Token*返回上一页:*在新窗口打开*ajax提交
常见问题 -
URL参数转换
将URL参数转为MAP或者JSON格式DEMO地址:[http://www.acgist.com/demo/url-map/index.html](http://www.acgist.com/demo/url-map/index.html)
URL2MAP URL2JSON URL转MAP URL转JSON -
Hadoop启动不了
执行`start-dfs.sh`后提示:```Error:JAVA_HOMEisnotsetandcouldnotbefound.```但是`JAVA_HOME`确实配置正确的,怎么办?这是我们直接去修改`/etc/hadoop/hadoop-env.sh`(Hadoop相对路径下面)设置JAVA_HOME。原配置:```bashexportJAVA_HOME=${JAVA_HOME}```改为:```bashexportJAVA_HOME=/usr/java/jdk1.8.0_101```Hadoop安装资料:[http://www.powerxing.com/install-hadoop/](http://www.powerxing.com/install-hadoop/)[http://www.cnblogs.com/laov/p/3421479.html](http://www.cnblogs.com/laov/p/3421479.html)
start-dfs.sh Hadoop -
手机浏览器数字输入
手机浏览器的`input`为数字的时候输入法会自动切换到数字输入模式,非常的方便。```html```但是一些验证框架就出现了非常多的问题,数字中间有空格的时候,也可以通过验证。
手机浏览器 input number -
小黄书
最近终于把小黄书写完了,最近需要找很多的聊天记录导入到系统里面。小黄书是一个自己做的一个聊天机器人,功能可能不够强大,但是希望以后慢慢学习完善。功能分几部分:1.分词,这个本来想用现成的,但是最后还是自己写了。词库用的[IK分词的词库](http://git.oschina.net/wltea/IK-Analyzer-2012FF)2.词语分类3.句子抽象,其实就是将句子分词,然后进行词语分类匹配,组装为抽象句子4.句子最优匹配5.抽象句子实体化,根据聊天的上下文将词语分类反向生成句子6.句子转为语音,讯飞文本转语音基本思路:句子分词后,相同的词语后面跟随的词语词义可能是一样的。例如:```我喜欢吃苹果。我喜欢吃李子。```>苹果和李子同时水果。大量的出现时归为一类,然后将句子抽象,然后每一个对话归为一个场景,使用类型来获取上下文的代指词语。
小黄书 聊天机器人 -
Servlet3.0文件上传
Servlet3.0可以使用注解,而且文件上传也比以前简单多了。代码如下:```java/***文件上传*/@MultipartConfig@WebServlet(name="UploadServlet",urlPatterns="/upload")publicclassUploadServletextendsHttpServlet{privatestaticfinallongserialVersionUID=1L;@OverrideprotectedvoiddoPost(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOException{//request.getPart("file");//单个文件file是input的nameCollectionparts=request.getParts();//多个文件for(Partpart:parts){part.write("文件路径");}}}```注意Servlet上面的注解`MultipartConfig`,没有会提示以下错误:```Unable...
Servlet3.0 文件上传 -
a标签href的其他用法
*拨打电话:```13888888888```*发送短信:```发送信息```*发送邮件:```发送邮件```*打开应用市场:```下载神女控```
a标签 href 拨号 发短信 发邮件 -
网页截图
使用JS插件`html2canvas.js`将网页转为`canvas`:```javascripthtml2canvas(document.body,{onrendered:function(canvas){//操作画布对象}});```然后将画布转为图片:```javascriptvarimage=canvas.toDataURL("image/png");```如果需要下载:```javascriptvar$download=$('');$download.appendTo("body");varimage=canvas.toDataURL("image/png").replace("image/png","image/octet-stream;");$download.attr("href",image);$download.attr("download","image.png");//下载文件名//$download.trigger("click");//jQuery模拟点击事件无效varevent=document.createEvent("MouseEvents");//模拟点击事件event.i...
网页截图 网页快照 html2canvas html2image -
Spring判断当天最后一次定时任务
要判断当天最后一次定时任务思路:获取下次执行时间,判断日期是不是今天。```java@AutowiredprivateApplicationContextcontext;...//获取正确的定时任务时间表达式Maptasks=context.getBeansOfType(CronTask.class);Stringexpression=null;//时间表达式Setkeys=tasks.keySet();for(Stringkey:keys){CronTasktask=tasks.get(key);ScheduledMethodRunnablerunnable=(ScheduledMethodRunnable)task.getRunnable();if("方法名".equals(runnable.getMethod().getName())){expression=task.getExpression();break;}}//获取下次执行时间CronTriggercronTrigger=newCronTrigger(expression);Datenext=cronTrigger.nextExecutionT...
Spring 定时任务 -
身份证正则表达式
```^\\d{8}(0[1-9]|1[0-2])(0[1-9]|1\\d|2\\d|3(0|1))\\d{3}$|^\\d{10}(0[1-9]|1[0-2])(0[1-9]|1\\d|2\\d|3(0|1))\\d{3}(\\d|X|x)$```主要验证15位和18位身份证,主要验证了月和日,还验证了月01-12和日01-31,但是校验位未验证。
身份证 正则表达式 -
Dubbo线程池优化
Dubbo通过配置`threadpool`来配置线程池的类型:1.`fixed`固定大小线程池,启动时建立线程,不关闭,一直持有。2.`cached`缓存线程池,空闲一分钟自动删除,需要时重建。3.`limited`可伸缩线程池,但池中的线程数只会增长不会收缩。默认是固定大小线程池,如果服务消费者太多时会出现等待,甚至超时:```Causedby:com.alibaba.dubbo.remoting.TimeoutException:Waitingserver-sideresponsetimeoutbyscantimer.starttime:2016-04-2210:36:58.471,endtime:2016-04-2210:37:18.535,clientelapsed:342ms,serverelapsed:19722ms,timeout:20000ms,request:Request[id=178,version=2.0.0,twoway=true,event=false,broken=false,data=RpcInvocation[methodName=install,parameterTypes...
Dubbo 线程池 -
Java生成二维码之zxing
##pom.xml```xmlcom.google.zxingjavase3.2.1com.google.zxingcore3.2.1```##代码```javapackagecom.acgist.qrcode;importjava.awt.Graphics2D;importjava.awt.Image;importjava.awt.image.BufferedImage;importjava.io.File;importjava.io.FileNotFoundException;importjava.io.FileOutputStream;importjava.io.IOException;importjava.io.OutputStream;importjava.util.HashMap;importjava.util.Map;importjavax.imageio.ImageIO;importorg.apache.commons.io.IOUtils;importorg.apache.commons.lang.StringUtils;importcom.acgist.logger.Logger;impo...
二维码 Java zxing -
Eclipse找不到或无法加载主类
今天使用Eclipse遇到一个问题,不能执行JUnit,而且`main`方法也不能执行。我开始以为不能编译,后来发现编译了,但是一直不行。最后项目我重新建了也有问题,后来发现原来要重新配置一下`run/debug`的配置,删除掉旧的配置信息就可以了。![run/debug配置](//static.acgist.com/resources/images/article/201604/14600156574441001.png)
classnotfound Java Eclipse -
CentOS搭建SVN服务器
##安装软件```bashyuminstallhttpdmod_dav_svnsubversion```##修改端口修改`/etc/httpd/conf/http.conf`端口`9090`##创建SVN库```bashsvnadmincreate/home/svn```##修改配置修改`/etc/httpd/conf.d/subversion.conf`配置文件:```DAVsvnSVNPath/home/svnSVNListParentPathonSatisfyAnyAuthTypeBasicAuthName"acgist.comsvnserver"AuthUserFile/home/svn/conf/passwdRequirevalid-userAuthzSVNAccessFile/home/svn/conf/authz```一般`.so`库文件都已经正常的引用了。>注:如果同时要支持匿名用户访问,一定要加上`SatisfyAny`这行,否者匿名用户不能访问。授权软件`authz`和`svn`配置一样,`passwd`文件需要使用命令`htpasswd`创建,如果没有文件需要加上参数`-c`:``...
SVN httpd Nginx Apache -
href不跳转
很多时候我们都是用`a`标签作为按钮,想要点击鼠标指针显示手型,又不使用`css`的`cursor`样式,所以加了`href`属性,为了防止跳转加上`javascript:void();`。但是最近发现有很多用`href="###"`这种写法,`##`的锚点不存在所以不会滚动,但是单个和两个`#`会回到顶部。看似非常完美,但是这里有一个陷阱,就是如果同时有`target="_blank"`时,会打开新页面。`javascript:void();`还可以简单的写成:`javascript:;`有的人也喜欢`javascript:void(0);`
### javascript:void() -
Java AIO
感觉上NIO开发要比AIO简单一点。两者区别:[http://bbym010.iteye.com/blog/2100868](http://bbym010.iteye.com/blog/2100868)代码参考:[http://yunhaifeiwu.iteye.com/blog/1714664](http://yunhaifeiwu.iteye.com/blog/1714664)上面文章的代码已经非常好了,注释也写的非常好,这里需要补充一些需要注意的地方:##解码```javaattachment.flip();CharsetDecoderdecoder=Charset.forName("UTF-8").newDecoder();decoder.onMalformedInput(CodingErrorAction.IGNORE);//注意content=decoder.decode(attachment).toString();attachment.compact();```##连接```javasocket.connect(newInetSocketAddress("localhost",8888),so...
AIO NIO2.0 Java -
系统架构演变
这篇文章主要是摘录。引用`Dubbo`的一段文字服务器架构的演变:![服务器架构](//static.acgist.com/resources/images/article/201603/14575066661131003.jpg)###单一应用架构当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。此时,用于简化增删改查工作量的数据访问框架(ORM)是关键。###垂直应用架构当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。此时,用于加速前端页面开发的Web框架(MVC)是关键。###分布式服务架构当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的分布式服务框架(RPC)是关键。###流动计算架构当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的资源调度和治理中心(SOA)是关键。>一个知乎里面不错的回答:...
分布式 系统架构