最近几天搭建了一个入侵防御系统,主要用到的软件有:
linux Apache Mysql PHP Snort Snortsam Base Barnyard
在安装的过程中,对于一些库,尽量选择安装在/usr/local目录下,对于安装在其它目录下的库或的软件进行修改/etc/ld.so.conf,然后执行ldconfig命令,必要时修改下PATH变量,如果权限有限制,那就用root或者sudo执行。
首先搭建LAMP系统
Linux+Apache+Mysql+PHP
参考资料:http://blog.youkuaiyun.com/dlutxie/article/details/8218078
我用的是ubuntu9.04的系统2.6.28的内核
Apache的安装
Apache有很多种服务器,在这里我要用的是httpd的服务,用的版本是httpd-2.4.3.tar.gz。
tar xvf httpd-2.4.3.tar.gz
cd httpd-2.4.3
./configure --prefix=/usr/local/apache/ --enable-rewrite--enable-so
make && make install
接下来就是对配置文件 /usr/local/apache/conf/httpd.conf进行配置
DocumentRoot那行填上你所希望的网站文件的目录。如:DocumentRoot "/var/www"。特别注意,www后面不要加“/”,当然用默认的也行。注意下紧接着的那一行<Directory"var/www">也是要改的。
/usr/local/apache/bin/apachectl start启动服务器之后就可以在浏览器中输入:http://127.0.0.1/来进行访问了(在默认的hdocs目录下是有一个测试html文件的),如果访问没有反应那就清空下缓存再试试。
如果访问的时候出现:Forbidden,就在配置文件里面紧跟着DomentRoot“/var/website”下面加入如下内容:
Option FollowSymLinks
AllowOverrideNone
Order allow,deny
Allow from all
安装的时候如果权限不够就用sudo或者root用户执行
对于configure对配置,具体的可以用./configure–help查看帮助。configure中基本参数的意义可以参考:http://blog.youkuaiyun.com/dlutxie/article/details/8191877
各个系统不一样,在安装httpd之前可能有其它一些软件包需要安装,如apr(apache运行时库),apr-util、pcre等,提到缺什么库用apt-get install 安装就行或者自己下载软件包安装,大部分情况下我是自己下载最新的软件包安装的,在安装这些库时,最好是选择默认的路径(一般都是/usr/local)或者自己用--prefix=/usr/local指定,需要强调的是最好不要设置成:--prefix=/usr/local/这个后面多了一个“/”符号,这有可能出错,我就在安装apr-util时因为把—prefix=/usr/local/apr-util/再安装httpd时出现如下的错误:
exports.c:3012: error: previous definitionof 'ap_hack_apu_version' was here
exports.c:3021: error: redefinition of'ap_hack_apu_version_string'
exports.c:3013: error: previous definitionof 'ap_hack_apu_version_string' was here
make[2]: *** [exports.lo] Error 1
make[2]: Leaving directory`/home/xgy/tmp/httpd-build/server'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory`/home/xgy/tmp/httpd-build/server'
make: *** [all-recursive] Error 1
我是另外建了一个httpd-build目录来编译的,打开/home/xgy/tmp/httpd-build/server/exports.c文件搜索ap_hack_apu_version_string字符串,发现注释部分有:/usr/local/apr-util//include/apr-1/apu_version.h,这个路径多了一个/,另一个定义没有这个/这就是错误的原因,重定义了,所以后来重新编译了这个库就好了。
如果安装的时候不是选择默认的/usr/local路径下,而是自己指定一个目录如/usr/local/apr-util,那么安装完后就要在/etc/ld.so.conf文件中加入一行:/usr/local/apr-util/lib
然后再执行下:ldconfig命令才能让刚安装的动态库立即加载到内存中,要不编译httpd时还是会说找不到相应的库或者相应的头文件,所以对于库的安装,最好还是安装在默认的路径下,这样就不用自己去设置库的查找路径和头文件的查找路径了。关于库还有头文件的查找可以参考:http://blog.youkuaiyun.com/dlutxie/article/details/6776936
接下来安装Mysql
开始自己也是打算自己通过源码编译,用的版本是mysql-5.1.66,自己几乎没有用过Mysql,更没有编译过,估计是有些问题没有处理好,总是编译出错,后来就直接用了预编译好的版本mysql-5.0.96-linux-i686-glibc23.tar.gz
将该文件解压在/usr/local目录下就行,如果是解压在其它目录下,而再复制到/usr/local/mysql目下时,记得用cp –a命令,要不一些链接文件会被源文件替代!!
安装命令如下:
cd /usr/local
tar xvf /tmp/mysql-5.0.96-linux-i686-glibc23.tar.gz
mv mysql-5.0.96 mysql
接下来是对mysql进行配置:
cd /usr/local/mysql
groupadd mysql #增加一个用户组
useradd -g mysql mysql #增加一个用户
chown -R mysql:mysql . #注意这块最后有个点,表示当前目录
scripts/mysql_install_db --user=mysql
执行完后在data目录下会生成mysql和test两个目录,即使上面的--user=snort也是这两个目录,这个命令是对用户进行授权,具体的我也还不懂。
chown -R root .
chown -R mysql var #这几个更改文件拥有者啥的,不会弄就先别弄吧,如果哪块有权限问题了,那就改用