为什么采用源码编译配置服务器

1 月 18th, 2010 | Posted by | Filed under 操作系统

为什么我喜欢采用源码编译来配置服务器,张宴老师给出了很好的解释:

之所以编译安装,而不采用RPM包安装,有以下几个方面的原因:
1、编译安装的自由度很大,需要哪些功能模块,就编译哪些功能模块,用不到的可以不安装,需要哪些参数,就加上哪些差数,能够节省系统资源,充分发挥性能优势;
2、一些自行开发的模块,或对程序源码作出的修改,必须通过编译安装才能实现;
3、编译安装的程序配置起来很方便;
4、我编译安装都是用SecureCRT等SSH客户端软件连上服务器,直接往里面一次粘贴多行安装语句,然后干别的事,所花的时间也不长。
5、我编译安装软件的每一行步骤和整个流程,都会写入文档,交接起来很方便。

标签: ,

Linux下编译PHP的几种错误

1 月 18th, 2010 | Posted by | Filed under 操作系统

Forcing buildconf
buildconf: checking installation…
buildconf: autoconf version 2.65 (ok)
buildconf: Your version of autoconf likely contains buggy cache code.
Running vcsclean for you.
To avoid this, install autoconf-2.13.
Can’t figure out your VCS, not cleaning.
rebuilding configure
configure.in:492: warning: AC_CACHE_VAL(have_broken_glibc_fopen_append, …): suspicious cache-id, must contain _cv_ to be cached
autoconf/general.m4:2013: AC_CACHE_VAL is expanded from…
aclocal.m4:1736: PHP_BROKEN_GLIBC_FOPEN_APPEND is expanded from…
ext/mbstring/config.m4:356: warning: AC_CACHE_VAL(cv_php_mbstring_stdarg, …): suspicious cache-id, must contain _cv_ to be cached
autoconf/general.m4:2026: AC_CACHE_CHECK is expanded from…
ext/mbstring/config.m4:205: PHP_MBSTRING_SETUP_MBREGEX is expanded from…
ext/pdo_dblib/config.m4:71: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
aclocal.m4:2754: PHP_CHECK_PDO_INCLUDES is expanded from…
ext/pdo_firebird/config.m4:48: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
ext/pdo_mysql/config.m4:160: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
ext/pdo_oci/config.m4:211: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
ext/pdo_odbc/config.m4:59: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
ext/pdo_pgsql/config.m4:121: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
ext/pdo_sqlite/config.m4:31: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
ext/sqlite/config.m4:50: warning: AC_CACHE_VAL(pdo_inc_path, …): suspicious cache-id, must contain _cv_ to be cached
ext/standard/config.m4:235: warning: AC_CACHE_VAL(php_can_support_proc_open, …): suspicious cache-id, must contain _cv_ to be cached 阅读全文…

标签: , ,

从MySQL中删除指定类型索引的脚本

1 月 15th, 2010 | Posted by | Filed under 未分类

好久没写Perl了,今天遇到一个很机械化的问题,又写了一个脚本。

需求是这样的:因为要把一个库转成InnoDB,所以需要把InnoDB不支持的FULLTEXT索引删除,写了个脚本清掉。

 
#!/usr/bin/perl -w
# Delete A Type Of Index From DB

use DBI;
my $db = 'abc';
my $host = '127.0.0.1';
my $user = 'root';
my $passwd = '';
my $type = 'FULLTEXT';

my $dbh = DBI->connect("DBI:mysql:database=$db;host=$host", $user, $passwd, {'RaiseError' => 1});
my $query1 = $dbh->prepare("SHOW TABLES");
$query1->execute ();
while(my $t_name = $query1->fetchrow()) {
        my $query2 = $dbh->prepare("SHOW INDEX FROM $t_name");
        $query2->execute();
        while(my $i_name = $query2->fetchrow_hashref()) {
                #print("$t_name,$i_name->{'Key_name'},$i_name->{'Index_type'}\n");
                if ($i_name->{'Index_type'} eq $type) {
                        #print("$t_name,$i_name->{'Key_name'}\n");
                        drop_index($t_name,$i_name->{'Key_name'});
                }
        }
}
$dbh->disconnect;

sub drop_index {
        local($t);
        local($i);
        $t = $_[0];
        $i = $_[1];
        my $q = $dbh->prepare("ALTER TABLE $t DROP INDEX $i");
        $q->execute();
        print("DROP $t\t$i Success\n\n");
}
标签: , ,

XtraDB 1.0.6-9编译错误的解决

1 月 14th, 2010 | Posted by | Filed under 未分类

今天 XtraDB Release 9 发布了,不过,竟然有编译错误,真是个杯具哇,不过还好,不是什么难解决的错误。

我下载的是 MySQL 5.1.42 和 XtraDB 1.0.6-9,把xtradb的解压文件覆盖mysql的storage/innobase,很Happy的去编译,想很快就能完成,结果一个Error让我郁闷了:
handler/i_s.cc: In function ‘int i_s_innodb_admin_command_fill(THD*,
TABLE_LIST*, COND*)’:
handler/i_s.cc:2995: warning: deprecated conversion from string
constant to ‘char*’
handler/i_s.cc:2991: warning: unused variable ‘cs’
handler/i_s.cc: At global scope:
handler/i_s.cc:2984: warning: unused parameter ‘cond’
make[2]: *** [libinnobase_a-i_s.o] Error 1
make[2]: Leaving directory `/home/plx/Downloads/mysql-5.1.42/storage/
innobase’
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/plx/Downloads/mysql-5.1.42/storage’
make: *** [all-recursive] Error 1 阅读全文…

LAMP架构下的安全注意要点

1 月 10th, 2010 | Posted by | Filed under 操作系统

我对安全方面也不是了解很多,最近遇到了安全方面的问题,查了一些资料,亲自试了试,选出一些比较重要的记录一下。

安全方面即将加入阿里云的@Natural__Light大牛给我演示过不少入侵的方法,算“资深”了,从在中学开始入侵学校网络,咱们大学里的那些破网站,@Natural__Light大牛玩一样进后台。

  1. 如果要考虑安全问题,就必须有一个假设:一切用户输入的内容都是不安全的,一切参数的传递都是不安全的。入侵者可能利用每一个我们假设是安全的地方。
  2. Linux方面
    • 限制用户账号,开发和运维分开。
    • SSH登陆必须限制主机来源,切忌允许全部IP登陆,最好port也要修改。
    • 使用iptables限制端口出入和IP,内部系统只能允许内部IP
    • 注意为不同的用户甚至不同的功能区分不同的账号和用户组。
    • 为关键文件和目录一定要设置好权限,千万不能777,配合用户和分组保证只有需要的人有需要的权限,尤其是/etc下的。 阅读全文…
标签: ,