当前位置: 操作系统/服务器>linux
本页文章导读:
▪apache下.htaccess的功能及写法
- .htaccess 文件(或者”分布式配置文件”提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,.........
▪Centos搭建GTK+Codeblock完整版
一、所需的源码包 1. GNU make 工具 2. GNU gettext 软件包(当系统上没有 gettext() 函数的时候需要) 3. GNU libiconv 库(当系统上没有 iconv() 函数的时候需要) 4. fontconfig库 fontconfig 是提供系统范围.........
▪使用htaccess规范化网址的配置
本文解决两个问题: 第一是:如果访问的网址不加www则自动加上www 第二:如果访问的网址是别名指向的,则自动转化为主域名 第一个问题解决方法: rewriteEngine on rewriteCond %{http_host} ^ [NC] r.........
[1]apache下.htaccess的功能及写法
来源: 互联网 发布时间: 2013-12-24
- .htaccess 文件(或者”分布式配置文件”提供了针对目录改变配置的方法, 即,在一个特定的文档目录中放置一个包含一个或多个指令的文件, 以作用于此目录及其所有子目录。作为用户,所能使用的命令受到限制。管理员可以通过Apache的AllowOverride指令来设置。
- 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。
- .htaccess必须以ASCII模式上传,最好将其权限设置为644。
错误文档的定位
常用的客户端请求错误返回代码:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
常见的服务器错误返回代码:
500 Internal Server Error
用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下,人们可以专门设立一个目录,例如errors放置这些页面。然后再.htaccess中,加入如下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:
ErrorDocument 错误代码 /目录名/文件名.扩展名
如果所需要提示的信息很少的话,不必专门制作页面,直接在指令中使用HTML号了,例如下面这个例子:
ErrorDocument 401 “<body bgcolor=#ffffff><h1>你没有权限访问该页面,请放弃!</h1></body>”
文档访问的密码保护
要利用.htaccess对某个目录下的文档设定访问用户和对应的密码,首先要做的是生成一个.htpasswd的文本文档,例如:
zheng:y4E7Ep8e7EYV
这里密码经过加密,用户可以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下,建议放在www根目录文档之外,这样更为安全些。
有了授权用户文档,可以在.htaccess中加入如下指令了:
AuthUserFile .htpasswd的服务器目录
AuthGroupFile /dev/null (需要授权访问的目录)
AuthName EnterPassword
AuthType Basic (授权类型)
require user wsabstract (允许访问的用户,如果希望表中所有用户都允许,可以使用 require valid-user)
注,括号部分为学习时候自己添加的注释
拒绝来自某个IP的访问
如果我不想某个政府部门访问到我的站点的内容,那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。
例如:
order allow,deny
deny from 210.21.112.43
deny from 219.146.95
allow from all
第二行拒绝某个IP,第三行拒绝某个IP段,也就是219.146.95.0~219.146.95.255
想要拒绝所有人?用deny from all好了。不止用IP,也可以用域名来设定。
保护.htaccess文档
在使用.htaccess来设置目录的密码保护时,它包含了密码文件的路径。从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容。虽然可以用其他方式做到这点,比如文档的权限。不过,.htaccess本身也能做到,只需加入如下的指令:
<Files .htaccess>
order allow,deny
deny from all
</Files>
URL转向
我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:
Redirect /旧目录/旧文档名 新文档的地址
或者整个目录的转向:
Redirect 旧目录 新目录
改变缺省的首页文件
一般情况下缺省的首页文件名有default、index等。不过,有些时候目录中没有缺省文件,而是某个特定的文件名,比如在pmwiki中是pmwiki.php。这种情况下,要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名:
DirectoryIndex 新的缺省文件名
也可以列出多个,顺序表明它们之间的优先级别,例如:
DirectoryIndex filename.html index.cgi index.pl default.htm
防止盗链
如果不喜欢别人在他们的网页上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。
所需要的指令如下:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www.)?phpv.net/.*$ [NC]
RewriteRule .(gif|jpg)$ – [F]
如果觉得让别人的页面开个天窗不好看,那可以用一张图片来代替:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(gif|jpg)$ http://www./img_PageNotFound.gif [R,L]
- 子目录中的指令会覆盖更高级目录或者主服务器配置文件中的指令。
- .htaccess必须以ASCII模式上传,最好将其权限设置为644。
错误文档的定位
常用的客户端请求错误返回代码:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type
常见的服务器错误返回代码:
500 Internal Server Error
用户可以利用.htaccess指定自己事先制作好的错误提醒页面。一般情况下,人们可以专门设立一个目录,例如errors放置这些页面。然后再.htaccess中,加入如下的指令:
ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html
一条指令一行。上述第一条指令的意思是对于404,也就是没有找到所需要的文档的时候得显示页面为/errors目录下的notfound.html页面。不难看出语法格式为:
ErrorDocument 错误代码 /目录名/文件名.扩展名
如果所需要提示的信息很少的话,不必专门制作页面,直接在指令中使用HTML号了,例如下面这个例子:
ErrorDocument 401 “<body bgcolor=#ffffff><h1>你没有权限访问该页面,请放弃!</h1></body>”
文档访问的密码保护
要利用.htaccess对某个目录下的文档设定访问用户和对应的密码,首先要做的是生成一个.htpasswd的文本文档,例如:
zheng:y4E7Ep8e7EYV
这里密码经过加密,用户可以自己找些工具将密码加密成.htaccess支持的编码。该文档最好不要放在www目录下,建议放在www根目录文档之外,这样更为安全些。
有了授权用户文档,可以在.htaccess中加入如下指令了:
AuthUserFile .htpasswd的服务器目录
AuthGroupFile /dev/null (需要授权访问的目录)
AuthName EnterPassword
AuthType Basic (授权类型)
require user wsabstract (允许访问的用户,如果希望表中所有用户都允许,可以使用 require valid-user)
注,括号部分为学习时候自己添加的注释
拒绝来自某个IP的访问
如果我不想某个政府部门访问到我的站点的内容,那可以通过.htaccess中加入该部门的IP而将它们拒绝在外。
例如:
order allow,deny
deny from 210.21.112.43
deny from 219.146.95
allow from all
第二行拒绝某个IP,第三行拒绝某个IP段,也就是219.146.95.0~219.146.95.255
想要拒绝所有人?用deny from all好了。不止用IP,也可以用域名来设定。
保护.htaccess文档
在使用.htaccess来设置目录的密码保护时,它包含了密码文件的路径。从安全考虑,有必要把.htaccess也保护起来,不让别人看到其中的内容。虽然可以用其他方式做到这点,比如文档的权限。不过,.htaccess本身也能做到,只需加入如下的指令:
代码如下:
<Files .htaccess>
order allow,deny
deny from all
</Files>
URL转向
我们可能对网站进行重新规划,将文档进行了迁移,或者更改了目录。这时候,来自搜索引擎或者其他网站链接过来的访问就可能出错。这种情况下,可以通过如下指令来完成旧的URL自动转向到新的地址:
Redirect /旧目录/旧文档名 新文档的地址
或者整个目录的转向:
Redirect 旧目录 新目录
改变缺省的首页文件
一般情况下缺省的首页文件名有default、index等。不过,有些时候目录中没有缺省文件,而是某个特定的文件名,比如在pmwiki中是pmwiki.php。这种情况下,要用户记住文件名来访问很麻烦。在.htaccess中可以轻易的设置新的缺省文件名:
DirectoryIndex 新的缺省文件名
也可以列出多个,顺序表明它们之间的优先级别,例如:
DirectoryIndex filename.html index.cgi index.pl default.htm
防止盗链
如果不喜欢别人在他们的网页上连接自己的图片、文档的话,也可以通过htaccess的指令来做到。
所需要的指令如下:
代码如下:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www.)?phpv.net/.*$ [NC]
RewriteRule .(gif|jpg)$ – [F]
如果觉得让别人的页面开个天窗不好看,那可以用一张图片来代替:
代码如下:
RewriteEngine on
RewriteCond % !^$
RewriteCond % !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(gif|jpg)$ http://www./img_PageNotFound.gif [R,L]
[2]Centos搭建GTK+Codeblock完整版
来源: 互联网 发布时间: 2013-12-24
一、所需的源码包
1. GNU make 工具
2. GNU gettext 软件包(当系统上没有 gettext() 函数的时候需要)
3. GNU libiconv 库(当系统上没有 iconv() 函数的时候需要)
4. fontconfig库
fontconfig 是提供系统范围内字体设置,定制和允许应用程序访问的函数库。
5. FreeType库
GTK+(基于DirectFB)的字体绘制是通过pango+freetype+fontconfig三者协作来完成的,其中, fontconfig负责字体的管理和配置,freetype负责单个字符的绘制,pango则完成对文字的排版布局。Freetype是一个操作字体的 函数库,它不但可以处理点阵字体,也可以处理多种矢量字体,包括truetype字体,为上层应用程序提供了一个统一的调用接口。
6. libpng库
libpng软件包包含 libpng 库,这些库被其他程序用于读写png文件。PNG 库是用来创立和操作PNG 格式的图形文件.PNG 格式是设计来替代GIF,它对于更小范围的TIFF(标记图象文件格式)来说, 有了很多的进步和拓展并且减少了关于专利权的麻烦.
7. jpegsrc库
能够使用JPEG算法压缩文件。
8. tiff库
tiff库被很多程序用于读写tiff文件。
9.pkg-config 工具
pkgconfig 包括 pkg-config 程序,用来在编译脚本中向编译器传递头文件包含路径或库文件路径。
对于支持 pkg-config 工具的 GTK+ 及其依赖库来说,库的头文件的搜索路径的设置变成了对 .pc 文件搜索路径的设置。.pc 文件的搜索路径是通过环境变量 PKG_CONFIG_PATH 来设置的,pkg-config 将按照设置路径的先后顺序进行搜索,直到找到指定的 .pc 文件为止。
10. GLib 库
GLib是GTK+和GNOME工程的基础底层核心程序库,创建 GDK 和 GTK 应用程序时该库可提供许多有用的定义和函数,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用 的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。
11. ATK 库
ATK 包包含了 ATK 库。ATK是可访问性工具箱(Accessibility Toolkit)的简称。ATK 为所有的GTK2程序提供了解决 Accessibility 需求的框架。
12. Cairo 库
Cairo,是一个跨平台的开放源代码的矢量图形函数库,可以提供高质量的显示和打印输出。Cairo提供一个稳定的用户层API,它可以提供现代 化的图形处理管理能力,如绘制和填充,映射转换,合成(注意,是合成)与改变alpha半透明图像,高真文本显示等等。能够在不同的媒体上实现相同的输 出。
13. Pango 库
Pango 库提供了底层的文本编排绘制生成函数, 一套生成整段文本布局的高层函数和帮助编辑多国文本的函数。
14. GTK+ 库
其中前五项一般比较新的Linux版本中,系统都会自带。需要注意的一个问题是如果GTK的安装路径为/opt/gtk时,在 PKG_CONFIG_PATH中除了要添加/opt/gtk/lib/pkgconfig之外,还有加上/usr/lib/pkgconfig。因为安 装在系统的库其.pc文件都在/usr/lib/pkgconfig中,想要在安装GTK时用到这些系统自带的库时,必须把路径设置清楚。
在收集安装GTK所需的源码包时最重要,也是最容易忽略的一个问题就是各个包之间版本的匹配问题。我在安装GTK就忽略了这个问题,结果走了很多弯 路。解决这个问题最简单的办法就是登陆GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk,在上面下载各种源码包。在这个站点上,每个GTK版本兼容的源码包都放在一个文件夹下。 例如我选择安装GTK v2.6,只要在ftp://ftp.gtk.org/pub/gtk/v2.6中下载各个包即可。不过选择V2.6的朋友要严重注意一个问题,支持GTK V2.6的pango包有两个版本-1.8.0、1.8.1,1.8.0是一个失败的版本,如果选择它,在安装GTK时就会死活找不到pango库。我当 时就是这个版本的受害者,花了很长时间也无法在安装GTK时连接pango库,后来在网上看到一个老外说这个版本有bug,只能使用1.8.1版本。妈 的!这不坑人吗!
根据依赖关系的要求,库的安装要按照这样的先后顺序进行:GLib、Atk、Cairo、Pango、Gtk+。
二、设置
主要包括对LD_LIBRARY_PATH和PKG_CONFIG_PATH的设置,具体如下:
> export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
> export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH
注意,如果想要使用系统中已有的fontconfig、FreeType等库,需要加上系统原有的库:
> export LD_LIBRARY_PATH=/usr/lib
> export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
> export PKG_CONFIG_PATH=/usr/lib/pkgconfig
> export PKG_CONFIG_PATH=/usr/X11R6 /lib/pkgconfig:$PKG_CONFIG_PATH
> export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH
容易被人忽略的一点是LD_LIBRARY_PATH和PKG_CONFIG_PATH这两个环境变量只对当前的终端窗口有效。如果到了没有进行上述设置的终端窗口中,pkg-config 将找不到新安装库的.pc 文件、从而可能使后面进行的安装无法进行。(自己犯的一个简单却造成严重后果的错误,吐血提醒大家哦)
三、源码包的安装
我安装的GTK版本为v2.6,用到的源码包包括:jpegsrc.v6b.tar.gz、libpng-1.2.8.tar.bz2、tiff- v3.6.1.tar.gz、pkgconfig-0.15.0.tar.gz、glib-2.6.6.tar.bz2、atk- 1.9.0.tar.bz2、cairo-1.2.4.tar.gz、pango-1.8.1.tar.bz2、gtk+-2.6.9.tar.bz2。 把它们都放在root的主目录下。
将 GTK+ 及其依赖库设置安装到同一个目录/opt/gtk下、而不是每一个库占用一个不同的目录,可以给以后的库的设置带来方便。而且,在将来不再需要这个版本的 GTK+ 及其依赖库的时候可以通过删除这个目录将它们简单地去除。
1.安装pkgconfig
> tar zxvf pkgconfig-0.15.0.tar.gz
> cd /root/pkgconfig-0.15.0
> ./configure
> make
> make install
每个过程结束后,都可以用用 echo $? 检查是否执行安装成功。如果输出是 0,说明配置成功;0 之外的数字说明配置失败。在 Linux 系统上,可以用这个方法检查一个命令或程序在其结束后返回给系统的值是多少。一般 0 代表成功,非 0 表示程序异常退出。
2.安装glib
> tar zjvf glib-2.6.6.tar.bz2
> cd /root/ glib-2.6.6
>./configure --prefix=/opt/gtk
>make
>make install
3.安装atk
> tar zjvf atk-1.9.0.tar.bz2
> cd /root/ atk-1.9.0
>./configure --prefix=/opt/gtk
>make
>make install
4.安装cairo
> tar zxvf cairo-1.2.4.tar.gz
> cd /root/ cairo-1.2.4
>./configure --prefix=/opt/gtk --with-x --enable-win32=no
>make
>make install
5.安装Pango
> tar zxvf cairo-1.2.4.tar.gz
> cd /root/ cairo-1.2.4
>./configure --prefix=/opt/gtk --libdir=/opt/gtk/lib --with-x
>make
>make install
6.安装libpng
> tar zjvf libpng-1.2.8.tar.bz2
> cd /root/ libpng-1.2.8
> make prefix=/opt/gtk \ZLIBINC=/opt/gtk/include ZLIBLIB=/opt/gtk/lib -f scripts/makefile.linux
>make prefix=/opt/gtk install -f scripts/makefile.linux
7.安装libtiff(就是tiff)
> tar zxvf tiff-v3.6.1.tar.gz
> cd /root/ tiff-v3.6.1
> ./configure --prefix=/opt/gtk --noninteractive \ --with-DIR_MAN=/opt/gtk/share/man
> make
> make install
8.安装libjpeg(就是jpegsrv)
> tar zxvf jpegsrc.v6b.tar.gz
> cd /root/jpeg-6b
> ./configure --enable-static --enable-shared --prefix=/opt/gtk
> make
> make install
注:jpeg默认不share library,因此要手工指定--enable-shared,一般安装lib时这一点都是要注意的。
10.安装gtk
> tar zjvf gtk+-2.6.9.tar.bz2
> cd /root/ gtk+-2.6.9
> ./configure --prefix=/opt/gtk --with-x --without-libjpeg
> make
> make install
四、检验是否正确安装GTK
为了检验是否正确安装GTK,利用GTK编写一个简单的程序,这个程序创建 200x200 大小的窗口
五:linux平台下编译安装wxGTK(以wxGTK-2.6.2 为例)
下载wxGTK-2.6.2.tar.gz,所在位置http://www.wxwidgets.org。
下载后,输入如下命令进行安装:
tar zxvf wxGTK-2.6.2.tar.gz
cd wxGTK-2.6.2
./configure --enable-xrc --enable-monolithic --enable-unicode
make
make install
如果没有错误提示,说明安装比较顺利,在编译过程比较慢。
3、库文件路径指向正确
因为,我们在安装wxGTK时没有指定路径,因此,wxGTK被装到了/usr/local/lib下,当然如果指向了路径,
即加入“-prefix=/usr”这个参数后,可以省略这一步。
库文件路径指向方法:
vi /etc/ld.so.conf
在文件最后输入:
/usr/local/lib
加入后,运行:
/sbin/ldconfig
4、安装验证
可以通过以下操作的输出检查安装是否正确:
wx-config --prefix
wx-config --libs
which wx-config
5.下载Code::Block
在http://www.codeblocks.org/downloads/下载
下载地址:http://ncu.dl.sourceforge.net/sourceforge/codeblocks/codeblocks-8.02-src.tar.bz2
下载后输入如下命令进行安装:
tar jxf codeblocks-8.02-src.tar.bz2
cd codeblocks-8.02
./configure –prefix=/usr
make
make install
如果没有错误提示,说明安装比较顺利,在编译过程比较慢。
6、启动并创建快捷方式
在桌面上点鼠标右键,选择“创建启动器”,并输入如下路径:
/usr/bin/codeblocks
注:搭建完成后,如不能运行codeblocks,请把selinux关闭重新启动然后再试下.
本文出自 “自由之家” 博客,
出处http://yuliang.blog.51cto.com/626833/276195
1. GNU make 工具
2. GNU gettext 软件包(当系统上没有 gettext() 函数的时候需要)
3. GNU libiconv 库(当系统上没有 iconv() 函数的时候需要)
4. fontconfig库
fontconfig 是提供系统范围内字体设置,定制和允许应用程序访问的函数库。
5. FreeType库
GTK+(基于DirectFB)的字体绘制是通过pango+freetype+fontconfig三者协作来完成的,其中, fontconfig负责字体的管理和配置,freetype负责单个字符的绘制,pango则完成对文字的排版布局。Freetype是一个操作字体的 函数库,它不但可以处理点阵字体,也可以处理多种矢量字体,包括truetype字体,为上层应用程序提供了一个统一的调用接口。
6. libpng库
libpng软件包包含 libpng 库,这些库被其他程序用于读写png文件。PNG 库是用来创立和操作PNG 格式的图形文件.PNG 格式是设计来替代GIF,它对于更小范围的TIFF(标记图象文件格式)来说, 有了很多的进步和拓展并且减少了关于专利权的麻烦.
7. jpegsrc库
能够使用JPEG算法压缩文件。
8. tiff库
tiff库被很多程序用于读写tiff文件。
9.pkg-config 工具
pkgconfig 包括 pkg-config 程序,用来在编译脚本中向编译器传递头文件包含路径或库文件路径。
对于支持 pkg-config 工具的 GTK+ 及其依赖库来说,库的头文件的搜索路径的设置变成了对 .pc 文件搜索路径的设置。.pc 文件的搜索路径是通过环境变量 PKG_CONFIG_PATH 来设置的,pkg-config 将按照设置路径的先后顺序进行搜索,直到找到指定的 .pc 文件为止。
10. GLib 库
GLib是GTK+和GNOME工程的基础底层核心程序库,创建 GDK 和 GTK 应用程序时该库可提供许多有用的定义和函数,是一个综合用途的实用的轻量级的C程序库,它提供C语言的常用的数据结构的定义、相关的处理函数,有趣而实用 的宏,可移植的封装和一些运行时机能,如事件循环、线程、动态调用、对象系统等的API。
11. ATK 库
ATK 包包含了 ATK 库。ATK是可访问性工具箱(Accessibility Toolkit)的简称。ATK 为所有的GTK2程序提供了解决 Accessibility 需求的框架。
12. Cairo 库
Cairo,是一个跨平台的开放源代码的矢量图形函数库,可以提供高质量的显示和打印输出。Cairo提供一个稳定的用户层API,它可以提供现代 化的图形处理管理能力,如绘制和填充,映射转换,合成(注意,是合成)与改变alpha半透明图像,高真文本显示等等。能够在不同的媒体上实现相同的输 出。
13. Pango 库
Pango 库提供了底层的文本编排绘制生成函数, 一套生成整段文本布局的高层函数和帮助编辑多国文本的函数。
14. GTK+ 库
其中前五项一般比较新的Linux版本中,系统都会自带。需要注意的一个问题是如果GTK的安装路径为/opt/gtk时,在 PKG_CONFIG_PATH中除了要添加/opt/gtk/lib/pkgconfig之外,还有加上/usr/lib/pkgconfig。因为安 装在系统的库其.pc文件都在/usr/lib/pkgconfig中,想要在安装GTK时用到这些系统自带的库时,必须把路径设置清楚。
在收集安装GTK所需的源码包时最重要,也是最容易忽略的一个问题就是各个包之间版本的匹配问题。我在安装GTK就忽略了这个问题,结果走了很多弯 路。解决这个问题最简单的办法就是登陆GTK+ 的网站":ftp://ftp.gtk.org/pub/gtk,在上面下载各种源码包。在这个站点上,每个GTK版本兼容的源码包都放在一个文件夹下。 例如我选择安装GTK v2.6,只要在ftp://ftp.gtk.org/pub/gtk/v2.6中下载各个包即可。不过选择V2.6的朋友要严重注意一个问题,支持GTK V2.6的pango包有两个版本-1.8.0、1.8.1,1.8.0是一个失败的版本,如果选择它,在安装GTK时就会死活找不到pango库。我当 时就是这个版本的受害者,花了很长时间也无法在安装GTK时连接pango库,后来在网上看到一个老外说这个版本有bug,只能使用1.8.1版本。妈 的!这不坑人吗!
根据依赖关系的要求,库的安装要按照这样的先后顺序进行:GLib、Atk、Cairo、Pango、Gtk+。
二、设置
主要包括对LD_LIBRARY_PATH和PKG_CONFIG_PATH的设置,具体如下:
> export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
> export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH
注意,如果想要使用系统中已有的fontconfig、FreeType等库,需要加上系统原有的库:
> export LD_LIBRARY_PATH=/usr/lib
> export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH
> export PKG_CONFIG_PATH=/usr/lib/pkgconfig
> export PKG_CONFIG_PATH=/usr/X11R6 /lib/pkgconfig:$PKG_CONFIG_PATH
> export PKG_CONFIG_PATH=/opt/gtk/lib/pkgconfig:$PKG_CONFIG_PATH
容易被人忽略的一点是LD_LIBRARY_PATH和PKG_CONFIG_PATH这两个环境变量只对当前的终端窗口有效。如果到了没有进行上述设置的终端窗口中,pkg-config 将找不到新安装库的.pc 文件、从而可能使后面进行的安装无法进行。(自己犯的一个简单却造成严重后果的错误,吐血提醒大家哦)
三、源码包的安装
我安装的GTK版本为v2.6,用到的源码包包括:jpegsrc.v6b.tar.gz、libpng-1.2.8.tar.bz2、tiff- v3.6.1.tar.gz、pkgconfig-0.15.0.tar.gz、glib-2.6.6.tar.bz2、atk- 1.9.0.tar.bz2、cairo-1.2.4.tar.gz、pango-1.8.1.tar.bz2、gtk+-2.6.9.tar.bz2。 把它们都放在root的主目录下。
将 GTK+ 及其依赖库设置安装到同一个目录/opt/gtk下、而不是每一个库占用一个不同的目录,可以给以后的库的设置带来方便。而且,在将来不再需要这个版本的 GTK+ 及其依赖库的时候可以通过删除这个目录将它们简单地去除。
1.安装pkgconfig
> tar zxvf pkgconfig-0.15.0.tar.gz
> cd /root/pkgconfig-0.15.0
> ./configure
> make
> make install
每个过程结束后,都可以用用 echo $? 检查是否执行安装成功。如果输出是 0,说明配置成功;0 之外的数字说明配置失败。在 Linux 系统上,可以用这个方法检查一个命令或程序在其结束后返回给系统的值是多少。一般 0 代表成功,非 0 表示程序异常退出。
2.安装glib
> tar zjvf glib-2.6.6.tar.bz2
> cd /root/ glib-2.6.6
>./configure --prefix=/opt/gtk
>make
>make install
3.安装atk
> tar zjvf atk-1.9.0.tar.bz2
> cd /root/ atk-1.9.0
>./configure --prefix=/opt/gtk
>make
>make install
4.安装cairo
> tar zxvf cairo-1.2.4.tar.gz
> cd /root/ cairo-1.2.4
>./configure --prefix=/opt/gtk --with-x --enable-win32=no
>make
>make install
5.安装Pango
> tar zxvf cairo-1.2.4.tar.gz
> cd /root/ cairo-1.2.4
>./configure --prefix=/opt/gtk --libdir=/opt/gtk/lib --with-x
>make
>make install
6.安装libpng
> tar zjvf libpng-1.2.8.tar.bz2
> cd /root/ libpng-1.2.8
> make prefix=/opt/gtk \ZLIBINC=/opt/gtk/include ZLIBLIB=/opt/gtk/lib -f scripts/makefile.linux
>make prefix=/opt/gtk install -f scripts/makefile.linux
7.安装libtiff(就是tiff)
> tar zxvf tiff-v3.6.1.tar.gz
> cd /root/ tiff-v3.6.1
> ./configure --prefix=/opt/gtk --noninteractive \ --with-DIR_MAN=/opt/gtk/share/man
> make
> make install
8.安装libjpeg(就是jpegsrv)
> tar zxvf jpegsrc.v6b.tar.gz
> cd /root/jpeg-6b
> ./configure --enable-static --enable-shared --prefix=/opt/gtk
> make
> make install
注:jpeg默认不share library,因此要手工指定--enable-shared,一般安装lib时这一点都是要注意的。
10.安装gtk
> tar zjvf gtk+-2.6.9.tar.bz2
> cd /root/ gtk+-2.6.9
> ./configure --prefix=/opt/gtk --with-x --without-libjpeg
> make
> make install
四、检验是否正确安装GTK
为了检验是否正确安装GTK,利用GTK编写一个简单的程序,这个程序创建 200x200 大小的窗口
五:linux平台下编译安装wxGTK(以wxGTK-2.6.2 为例)
下载wxGTK-2.6.2.tar.gz,所在位置http://www.wxwidgets.org。
下载后,输入如下命令进行安装:
tar zxvf wxGTK-2.6.2.tar.gz
cd wxGTK-2.6.2
./configure --enable-xrc --enable-monolithic --enable-unicode
make
make install
如果没有错误提示,说明安装比较顺利,在编译过程比较慢。
3、库文件路径指向正确
因为,我们在安装wxGTK时没有指定路径,因此,wxGTK被装到了/usr/local/lib下,当然如果指向了路径,
即加入“-prefix=/usr”这个参数后,可以省略这一步。
库文件路径指向方法:
vi /etc/ld.so.conf
在文件最后输入:
/usr/local/lib
加入后,运行:
/sbin/ldconfig
4、安装验证
可以通过以下操作的输出检查安装是否正确:
wx-config --prefix
wx-config --libs
which wx-config
5.下载Code::Block
在http://www.codeblocks.org/downloads/下载
下载地址:http://ncu.dl.sourceforge.net/sourceforge/codeblocks/codeblocks-8.02-src.tar.bz2
下载后输入如下命令进行安装:
tar jxf codeblocks-8.02-src.tar.bz2
cd codeblocks-8.02
./configure –prefix=/usr
make
make install
如果没有错误提示,说明安装比较顺利,在编译过程比较慢。
6、启动并创建快捷方式
在桌面上点鼠标右键,选择“创建启动器”,并输入如下路径:
/usr/bin/codeblocks
注:搭建完成后,如不能运行codeblocks,请把selinux关闭重新启动然后再试下.
本文出自 “自由之家” 博客,
出处http://yuliang.blog.51cto.com/626833/276195
[3]使用htaccess规范化网址的配置
来源: 互联网 发布时间: 2013-12-24
本文解决两个问题:
第一是:如果访问的网址不加www则自动加上www
第二:如果访问的网址是别名指向的,则自动转化为主域名
第一个问题解决方法:
rewriteEngine on
rewriteCond %{http_host} ^ [NC]
rewriteRule ^(.*)$ http://www./$1 [R=301,L]
第二个问题解决:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^$ [OR]
RewriteCond %{HTTP_HOST} ^www.$
RewriteRule ^(.*)$ http://www./$1 [R=301,L]
如上,我是把所有来自和www.的域名转化为
第一是:如果访问的网址不加www则自动加上www
第二:如果访问的网址是别名指向的,则自动转化为主域名
第一个问题解决方法:
rewriteEngine on
rewriteCond %{http_host} ^ [NC]
rewriteRule ^(.*)$ http://www./$1 [R=301,L]
第二个问题解决:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^$ [OR]
RewriteCond %{HTTP_HOST} ^www.$
RewriteRule ^(.*)$ http://www./$1 [R=301,L]
如上,我是把所有来自和www.的域名转化为
最新技术文章: