0%

总体上来说,ubuntu安装PHP5.6与CentOS是差不多的,但是有一些库的名称在ubuntu和CentOS上是不一样的,安装过程中还是有一些细微的差别.

  • 在安装PHP时,使用的configure指令如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
./configure \
--prefix=/usr/local/php \
--with-curl \
--with-gd \
--enable-sockets \
--with-freetype-dir=/usr/local/freetype \
--enable-mbstring \
--enable-bcmath \
--with-gettext \
--with-jpeg-dir=/usr/local/libjpeg \
--with-config-file-path=/usr/local/php/etc \
--with-mysql=/usr/local/mysql \
--with-mysqli=/usr/local/mysql/bin/mysql_config \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-pdo-mysql=/usr/local/mysql \
--enable-fpm \
--disable-fileinfo
阅读全文 »

log4j是Apache基金会的一个开源项目,作为一个java日志框架,能够方便地在程序中记录日志,提供许多记录日志的选项和功能。日志文件一般是不允许修改的,在隐藏权限中加入了只能增加不能删减的权限。但是,我在近期做了一个项目,需要在程序运行过程中将日志文件上传至数据库,上传之后要清空日志文件重新记录。我尝试了一下几种方法:

  1. 将记录日志的文件删除,让日志框架重新生成
  2. 将记录日志的文件删除,并手动创建名称一致的日志文件
  3. 复制一个log4j自动生成的空的同名日志文件来覆盖旧的日志文件
  4. 调用linux命令echo > <log_file_name>来清空日志
    经过测试发现,log4j生成的日志文件只要被移动或删除,log4j就不会继续向其中写入日志,复制过来的空的同名日志文件也是一样的情况。调用linux命令清空日志文件之后,log4j能向日志文件中写入内容,但是不能被识别为txt或log文件,无法用编辑器打开查看(有例外,Atom编辑器能查看到其中的内容),gedit会说字符编码无法识别,无法打开;sublime会直接将这个文件当作二进制文件来打开,只能看到其中的0101内容。我用vim将其打开,发现在文件的开始处有许多“@^@^”这样的内容,在网上查到这是一种正常编码格式无法识别的字符,也称为“/0”。因此,只要将这些编码无法识别的内容除去即可。在网上查到了一个sed指令可以做这件事。使用如下代码来除去“@^”:
1
sed -r 's/\x0//g' -i <file_name>
阅读全文 »

基本的使用方法:

1
mysqldump -u<user_name> -p<password> -d <database_name> <table_name> <file_name>.sql

导出名称为dbname的database的所有表结构(导出database所有的表,只有结构,不包含数据)

1
mysqldump -u<user_name> -p<password> -d dbname > db.sql

导出名称为dbname的database的名称为tbname的表的结构(导出databse的某张表,只有结构,不包含数据)

1
mysqldump -u<user_name> -p<password> -d dbname tbname > db.sql

导出名称为dbname的database的所有表结构及数据(导出database所有的表,不仅有结构,还包含数据)

1
mysqldump -u<user_name> -p<password> dbname > db.sql

导出名称为dbname的databases的名称为tbname的表的结构及数据(导出database的某张表,不仅又结构,还包含数据)

1
mysqldump -u<user_name> -p<password> dbname tbname > db.sql

从中可以看出,参数-d的作用在于是否只导出表结构,加-d之后只导出结构,不导出数据

阅读全文 »

  • 今天很粗浅地学会了如何使用maven来管理我的java项目,也就初步了解了一些项目的依赖如何写入pom.xml文件中,以及几个maven的插件。项目的依赖包可以到maven的仓库中进行查询,并将依赖的xml代码复制到自己项目的pom.xml文件中,maven仓库的地址为:
    http://mvnrepository.com/
  • 使用maven首先需要在系统上安装maven,对于linux系统而言,直接到maven官网下载tar.gz文件,解压到一个目录,例如/usr/local/maven,在环境变量中加入M2_HOME的值为maven的解压目录/usr/local/maven。在PATH变量中加入${M2_HOME}/bin,修改变量完毕之后不要忘记source /etc/profile
  • 在我的项目当中
1
2
import com.sun.image.codec.jpeg.JPEGCodec;
import com.sun.image.codec.jpeg.JPEGImageEncoder;

这两个包是sun公司的,并不对外公开,maven的仓库中当然也没有这两个包,导致maven项目不能成功编译。这两个包实际上是jdk和jre的lib中自带的,路径分别为${JAVA_HOME}/lib/rt.jar${JAVA_HOME}/jre/lib/jce.jar,也就是说我们有这两个库,现在需要加入到maven项目当中。在Google查找资料发现一种可行的办法,就是在pom.xml中加入一个maven的插件(plugin),具体的内容如下所示:

1
2
3
4
5
6
7
8
9
10
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
<compilerArguments>
<verbose />
<bootclasspath>${java.home}/lib/rt.jar:${java.home}/lib/jce.jar</bootclasspath>
</compilerArguments>
</configuration>
</plugin>
阅读全文 »

之前从 coding git clone 私有项目到EC2服务器一直出现400的网页错误,不知道如何解决,今天查阅资料后发现需要以一下格式来 git clone 才能将私有项目成功 clone 下来。

1
git clone -b sci-demo https://<coding_username>:<coding_password>@git.coding.net/<coding_username>/<repository_name>.git

为coding的账户名
为coding的密码
为 clone 的项目的仓库名
实际上只需要将用户名和密码部分加上,其他部分的内容直接拷贝 git 地址即可

AWS SDK 是一套用于开发者与 Amazon Web Services进行交互的系统,其功能繁多,对于普通开发者来说,本人主要使用了其针对Java开发的向S3云存储上传文件和文件夹的功能。AWS开发工具包的下载地址:
https://aws.amazon.com/cn/tools/
其中的Java开发工具包的API文档地址:
http://docs.aws.amazon.com/AWSJavaSDK/latest/javadoc/index.html
进行开发之前建议自习阅读其官方的开发引导:
http://docs.aws.amazon.com/AWSSdkDocsJava/latest/DeveloperGuide/welcome.html

心得

  • 开发AWS应用仅靠API接口的阅读是不够的,最好能够仔细阅读官方SDK中的Sample文件夹中的程序,熟悉整个SDK开发的代码流程,也可以到论坛和GitHub中找与AWS相关的代码进行阅读
  • AWS SDK for Java 中有两种上传文件的方法,一种是构造一个PutObjectRequest,调用其中的构造函数:
1
2
PutObjectRequest(String bucketName, String key, File file)
Constructs a new PutObjectRequest object to upload a file to the specified bucket and key.

构造一个上传文件的PutObjectRequest对象,然后使用AmazonS3Client类中的putObject方法来实现上传文件的操作:

1
2
3
public PutObjectResult putObject(PutObjectRequest putObjectRequest)
throws AmazonClientException,
AmazonServiceException
阅读全文 »

介绍

VIPS 是一个能够处理大型图片的很棒的图片处理系统。特别是它能通过dzsave很简单地生成deepzoon图片(.dzi)。从VIPS版本7.40开始,它需要使用libgsf库来激活对dzsave的支持。

安装libgsf库

libgsf库的作用在于能够使用dzsave指令,没有安装libgsf的话会报dzsave不存在的错误。安装libgsf之后需要重新编译安装vips才能使用dzsave。

1
yum install libgsf

ubuntu中安装libgsf库的方法为:

1
sudo apt-get install libgsf-1-dev

安装libjpeg和libpng库

vips要支持png和jpeg还需要安装libpng和libjpeg,在CentOS中安装的方法为:

1
2
sudo yum install libjpeg libjpeg-devel libpng libpng-devel

在ubuntu中安装方法为:

1
2
sudo apt-get install linpng12-0
sudo apt-get install libjpeg-dev

安装VIPS

简单的编译安装,采用vips dzsave --version来检查dzsave是否安装成功

使用VIPS

1
/usr/local/vips dzsave <source_file> <destination_file> --suffix .png

安装redis

  • 下载地址: http://redis.io/download
  • 解压并进入解压目录,并进行编译安装。直接make & make install
  • 拷贝配置文件到 /etc 目录,将其中的daemonize no改为daemonize yes
    1
    cp redis.conf /etc/
  • 将解压目录中 src/ 中的redis-benchmark redis-cli redis-server 拷贝到 /usr/bin 中,方便之后启动
    1
    cp src/redis-benchmark redis-cli redis-server /usr/bin/
    阅读全文 »

1. 下载和安装PHP 5.6

  • 下载地址: http://php.net/downloads.php
  • 解压之后使用如下指令进行安装
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    ./configure \
    --prefix=/usr/local/php \
    --with-curl \
    --with-gd \
    --enable-sockets \
    --with-freetype-dir=/usr/local/freetype \
    --enable-mbstring \
    --enable-bcmath \
    --enable-gettext \
    --with-jpeg-dir=/usr/local/jpeg \
    --with-config-file-path=/usr/local/php/etc \
    --with-mysql=/usr/local/mysql \
    --with-mysqli=/usr/local/mysql/bin/mysql_config \
    --with-mysql-sock=/var/lib/mysql/mysql.sock \
    --with-pdo-mysql=/usr/local/mysql \
    --enable-fpm \
    --disable-fileinfo

    make
    make install
    阅读全文 »