Ubuntu 中源码安装Nginx

目录 码农

在Ubuntu中,apt-get install nginx 的版本比较旧,想要使用一些高级功能就需要从官方下载,通过源码安装。 之前的安装过程一直出现问题,特将此记录在案:

准备工作:
  1. 下载 nginx : http://nginx.org/en/download.html
  2. 下载 PCRE : ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
1.1 安装PCRE :

Nginx中使用正则相关功能的依赖,所以需要安装PCRE:

tar zxvf pcre-8.38.tar.gz
cd pcre-8.38
./configure --prefix=/usr/local/pcre-8.38
#安装到/usr/local/pcre-8.38 下
make
sudo make install

如果上面命令报错

libtool: compile: unrecognized option `-DHAVE_CONFIG_H'
libtool: compile: Try `libtool --help' for more information.
make[1]: *** [pcrecpp.lo] Error 1

则安装:build-essential

apt-get install build-essential
1.2 安装依赖库:
sudo apt-get install libssl1.0.0 libssl-dev openssl zlib1g-dev

如果出现错误如:

The following packages have unmet dependencies:
libssl-dev : Depends: libssl1.0.0 (= 1.0.1f-1ubuntu2.21) but 1.0.1f-1ubuntu9 is to be installed
Recommends: libssl-doc but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

在对应依赖后面加 /trusty (依赖冲突) 如:

sudo apt-get install libssl1.0.0/trusty libssl-dev/trusty openssl/trusty zlib1g-dev/trusty
1.3 安装nginx:
tar zxvf nginx-1.10.1.tar.gz
cd nginx-1.10.1
./configure --prefix=/usr/local/nginx --pid-path=/var/run/nginx.pid --with-http_stub_status_module --with-http_ssl_module --with-pcre=/root/pcre-8.38
make
sudo make install

注意:–with-pcre 的值为 pcre 解压后的文件目录,不是指定的安装目录,切记;
完成之后,需要将/usr/local/nginx/logs 目录设置为可写权限,里面是一系列得日志文件:

# sudo chmod 777 -R /usr/local/nginx/logs
1.4 注意事项

在源码安装的时候,需要安装编译环境,gcc ubuntu 下,可以直接 apt-get 安装:

 sudo apt-get install libtool
 sudo apt-get install gcc-c++

安装 gcc 出现如下错误:
安装 gcc-c++出错

Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package gcc-c

则先如下操作,再次安装:

 sudo apt-get install build-essential
 sudo apt-get update
 sudo apt-get upgrade
 sudo apt-get install gcc-c++

1.5 启动和停止/重启命令:

sudo /etc/init.d/nginx start   
sudo /etc/init.d/nginx stop
sudo /etc/init.d/nginx restart

产品过程中需要注意的点

目录 产品

整理产品过程中需要自己注意的点(犯得比较多和被问得比较多的问题),要想清楚每一个交互细节和异常流。

  1. 流程说明:主流程、分支流程、异常流程都要想到并写明。
  2. 跳转说明:点击按钮(返回/编辑/保存/取消…)分别触发什么动作(后台会有什么操作,是否会页面跳转),效果如何(弹窗怎么进入怎么消失)。
  3. 显示规则:页面有哪些元素、哪些字段、格式大小、是否换行全部展示、过长过短怎么展示、异常输入如何展示、无数据显示什么。
  4. 排序规则:优先级是什么,正序还是倒序。
  5. 分页规则:单页展示几个、每次拉取几个、拉取的动作如何(上滑还是下拉)、是否全页面刷新还是指定区域刷新

Maven 项目问题总结

目录 码农

1. 项目初始化:

项目经常拷来拷去,有时候会报一个很奇怪的错误。明明源码一模一样,为什么复制到另一台机器上就会报错呢?项目不管是移动还是拷贝做好这几步:

  • 项目所在的目录,在.settings子目录里面,用文本编辑器打开org.eclipse.wst.common.project.facet.core.xml配置文件

    <?xml version=”1.0″ encoding=”UTF-8″?>
    <faceted-project>
    <fixed facet=”wst.jsdt.web”/>
    <installed facet=”java” version=”1.8″/>
    <installed facet=”jst.web” version=”3.0″/>
    <installed facet=”wst.jsdt.web” version=”1.0″/>
    </faceted-project>

    将 java 修改为对应的版本,jst.web 修改为 3.0;

    注意:

    1. 查看项目Java版本,在Eclipse环境中,鼠标右键选择项目,点击Properties,选择Java Compiler 可以在窗口右边看到编译器版本,如图:
    20160707113426
    一定要和前面的 java版本一致。

    2. web 项目 web.xml 版本一定 和 jst.web 版本一致,3.0 因为为:

    <web-app xmlns=”http://java.sun.com/xml/ns/javaee”
    xmlns:xsi=”http://www.w3.org/2001/XMLSchema-instance”
    xsi:schemaLocation=”http://java.sun.com/xml/ns/javaee
    http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd”
    version=”3.0″>
    <display-name>Servlet 3.0 Web Application</display-name>
    </web-app>

  • pom.xml 模版:
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
    	<modelVersion>4.0.0</modelVersion>
    	<groupId>com. projectName </groupId>
    	<artifactId> projectName </artifactId>
    	<packaging>war</packaging>
    	<version>2.0.0.01</version>
    	<name> projectName  Maven Webapp</name>
    	<url>http://maven.apache.org</url>
    	
    	<dependencies>
    		<dependency>
    			<groupId>junit</groupId>
    			<artifactId>junit</artifactId>
    			<version>4.12</version>
    			<scope>test</scope>
    		</dependency>
    	</dependencies>
    	
    	<properties>
    		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    		<maven.compiler.encoding>UTF-8</maven.compiler.encoding>
        </properties>
    	<build>
    		<finalName> projectName </finalName>
    		<plugins>
    	        <plugin>
    	            <artifactId>maven-compiler-plugin</artifactId>
    	            <configuration>
    	                <source>1.8</source>
    	                <target>1.8</target>
    	            </configuration>
    	        </plugin>
    	    </plugins>
    	</build>
    	<repositories>
    		<repository>
    			<id>com.springsource.repository.bundles.release</id>
    			<name>Spring Maven Repository Repository</name>
    			<url>http://repository.springsource.com/maven/bundles/release</url>
    		</repository>
    		<repository>
    			<id>jboss</id>
    			<url>https://repository.jboss.org/nexus/content/groups/public/</url>
    		</repository>
    		<repository>
    			<id>sonatype</id>
    			<name>Sonatype Repository</name>
    			<url>http://repository.sonatype.org/content/groups/public/</url>
    		</repository>
    	</repositories>
    </project>

如何“临危不乱”?

目录 江湖

上大学的时候,武协不时会联合周边大学举行武术比赛。

大一那会,听说要参加比赛,兴奋地不得了,每天的早晚训都积极参加。

参加比赛的时候,上场对阵,我却惨不忍睹…

那是第一次参加比赛,平时训练的那些招式、格挡、套路在哪个瞬间都丢掉了,无意识了。那时的我肯定破绽百出,而对手是另一学校的师兄,有着几次的比赛经验。

想来,现在的我要是和那时的我赛场对阵,肯定完爆那时的我自己。不因为其他的,而是经过这么多次比赛有了一些感悟,能够依靠本能做到点“临危不乱”,不会在肾上腺素的作用下直接懵逼,沉着冷静了些。

我们经常遇到这一幕,生活中难免和人争执,有时候明明自己占理,口中能说出来的却是毫无意义逻辑地重复,搞得旁观者都站边对手围攻你了。等到冷静下来后,却觉得异常遗憾,我该这样反击的嘛!应该这样说就可以直击对手逻辑命门了啊!

现在我如果遇到有人突然向我打来,能够做到点冷静应对,理智反攻。在武协的这段经历,成长非常,临危不乱不外乎是经历了很多次的训练,爬过了很多的坑。我们在生活中遇到的争执也是这样,那如同辩论一样,也应该多训练自己,让自己在这种事情上临危不乱。

生活中我们应该更多感悟,触类旁通,还真是大道同宗。

都江堰赵公山宿营攻略

目录 旅途

清明节前购置了帐篷、睡袋等装备,迫不及待地想去体验漫天繁星的夜晚、美妙壮观的日出。

Anyway,目标反正定在了赵公山,地处都江堰、青城山附近,海拔2400多点。

上赵公山有东线和西线两条路,东线路难比较难走,尤其是半山的庙到山顶那段路,沿着或靠着山谷,路被水冲得泥泞不堪。

西线只有靠近公路的一小段难走,其他都被道长维护得很好(听道长说西线的休息亭、山路都是他建的,不由感叹,可能对他来说也是一种修行)西线更适合自驾游的朋友,车能够到海拔1600左右(路线自查..)。

本以为和青城山差不多,能够很快登顶,搭帐篷等美景。从成都出发高铁到都江堰,可以在高铁站外坐公交,到熊猫谷前面的路口,再乘当地车到东线脚下,准备爬山。(其实车比较难搭,最好在都江堰就找到山脚的车,费用大约80左右,千万不要相信出租车说30送你到山脚,他只会送你到熊猫谷前面,骗你说到山脚了!!不要问我怎么知道,我们从那里走到了山脚,走了两个多小时,不过我们似乎很强大,竟然不觉得累)。

到山脚已经傍晚七点过,原计划到山顶搭帐,不过爬了一点就怂了,周围越来越黑越走越吓人,可爱的伙伴都怕我被鬼附身。决定在山底露营,明早爬山。露营的时候人多会比较有安全感,不过鼾声更让人抓狂!!也不要问我怎么知道的… 还有,一定要一个带一个睡袋,清明的时候夜晚也是很冷的 /(ㄒoㄒ)/~~

在去之前看地图,别用百度地图,请用google地图,百度地图很多地方都不清楚,不过google需要翻墙才能看到,推荐一个翻墙工具:Tizi.in梯子翻墙

赵公山难度系数还是比较高的,爬山过程中汗水不断 ,不知道是不是由于自己

生活抗争,不停歇

目录 杂念

常常感觉自己属于乐天派,没什么大不了的事情。时不时被内心深处那种对于时间流逝的恐慌掀起的伤感影响,思考人生,思考自己。其实感觉这个时候的自己最真实,终于又一次明白自己的目标和追求。其实人的目标好似一座远处的山脉,看似离得很近,实际走起来,却非一朝一夕;内心异常的担心,担心虚度时光,担心迷失在生活中,以为自己是一步步在向着它靠近,时不时又异常惊醒,生活已经让我原地踏步了。

下班回家,看看手机,早早睡觉,又再一次上班;这大概是丝毫不与生活抗争的人;常认为轻轻松松过或者顶着压力前进都是一年,时间不会增减,对于大多数人来说,都在荒废中虚度着生命;我理解的荒废和虚度不单单那些被常理定为的堕落,这种堕落并不是最可怕的,那些原本可以生长出一片繁华叶茂的土地,却只长出了一棵树,因为那些耕耘的人已经满足于在这一块区域乘凉歇息,这些人可以获得很舒适,却也经受不住更多的风雨,这也可以称之为平庸。

天性总是习惯于大树的安逸,也不愿意去拾荒一片新的领域;这大概是有些人所说的“我是一个不喜欢改变的人” ,因为那或许意味着可能更多的劳累或可能饿死;

时不时也看到一些鸡汤文,说成长就是承认,承认自己就在这样的生活中,承认自己达不到自己的“妄想”,成长就是心不在悸动,不再冲动。 你可曾见过轻言放弃的将军,向岁月低头的英雄,迟暮便不再打扮的美人吗?

这就是我所畏惧的,和平庸抗争,和生活抗争,不停歇。

不能被胜利遮蔽

目录 日记

在知乎上刷到一个烧脑逻辑:http://www.zhihu.com/question/21262930

题目是这样的。说一个岛上有100个人,其中有5个红眼睛,95个蓝眼睛。这个岛有三个奇怪的宗教规则。
1. 他们不能照镜子,不能看自己眼睛的颜色。
2. 他们不能告诉别人对方的眼睛是什么颜色。
3. 一旦有人知道了自己的眼睛颜色,他就必须在当天夜里自杀。

注:虽然题设了有5个红眼睛,但岛民是不知道具体数字的。

某天,有个旅行者到了这个岛上。由于不知道这里的规矩,所以他在和全岛人一起狂欢的时候,不留神就说了一句话:【你们这里有红眼睛的人。】

最后的问题是:假设这个岛上的人足够聪明,每个人都可以做出缜密的逻辑推理。请问这个岛上将会发生什么?

自己点过去烧脑吧~~

不过,想明白后突然又想到,难道不是n+2天后,全岛人自杀么?后面更多的逻辑,为什么没有看到有人提到?

记得大学学工笔画的时候,让我们临摹作品,我临摹的是一串吊在葡萄藤上的局部葡萄。第一次临摹自己感觉看起来真不错,老师看了让我修改下某些地方,着笔要自然,平滑。那时图样的我觉得看起来很棒,不愿擦掉重来,怕重画没有第一次的好。

这算毁掉了我绘画这一条路,但当时为什么就不愿意重来呢?后来看《黑客与画家》里提到过,编程和绘画类似,一次次的修改(重构)才能够更快进步,这需要很大勇气和毅力(大致意思)。当时要擦掉已经费力画好的画,确实不舍得,因为费了很多心思。这就像沉没成本,无处不在的沉没成本思想。

(顺便说一句,或许有了自己的经历,《黑客与画家》这段给我印象最深,也有自己的体会,该回头看看曾看过的经典书了,或许所得更多。)

回到这个烧脑问题上,为什么很多人没有更深的去想这个问题本身?得到n+2后全岛人自杀的结论?说实话,当我想明白这个问题的时候,兴奋是难以言表的,缠着妹子讲了好半天,那快感~  或许因为这个坎翻越的比较费力,当成功后便要速去宣告自己的领悟,生怕别人不能理解,开始浮躁。可还有机会呢,还有更大的临门一脚被忽略了。

“回头可以重构”,听到程序员说这句话,不应该高兴起来,以为问题可以解决。我见到的公司,到最后出了问题迫于无奈才开始重构,折腾不小。道理也有类似的部分。

果敢的抛开“成果”,要不断的去做再改进。

研发offer,belloliving的第一天

目录 日记

结束一年多的产品经理岗,今天开始了一份研发工作。所幸的是,之前产品工作的时候,空余时间兼做了外包项目,技术倒是没有落(lao)下,越发的喜欢专研一些技术问题,于是干脆面了一份研发工作。

小公司offer比较急,第二天就让来上班,虽然不满意还有试岗这一说(第一次遇到),但毕竟期待一个快速敏捷的团队,答应了offer,当然要好好做,达到自己期望的目的。

没想到,一辆快速驶过的SUV,溅起了一滩水,正好命中已经到达公司楼下的我;更没想到的是,已经迟到了半个小时… 咒骂一遍车主,开始第一天的工作。

试岗就想了解工作能力,也没啥好说,认真干,也不过分表现。

在看到设计页面的妹子和老板讨论页面的信息结构,竟然没有出现任何产品岗的痕迹,我实在是有些忍不住想发表我的意见,毕竟一年多产品岗不是白混的,但我忍住了,话说第一天就想全盘否定别人的成果,那等于是以后混不下去。后面循序渐进的调整,一样可以达到我理解的产品目标,而且让同事开心也是前段时间比较在意的,看了下界面风格很喜欢,赞个。

搭建底层框架、思考团队协作开发、顺利完成第一天的试岗任务,中午放弃午睡,精力高度集中了一天挺累,好在底层框架搭建完成,后面整理一份搭建详解,发出来大家讨论下。

明天搭建团队协作开发、测试、持续集成的模块,以git为基础,到时候也整理成一份技术文章,每天的总结能够帮助我更快的成长。

从来没有见过甘心认命的将军,轻易服老的英雄,迟暮便不打扮的美人,骄傲的人,从来都不肯承认自己平庸。