分类: LINUX
2008-05-11 22:59:37
作为一名网络管理员,尤其是中学的网络管理员,工作难度是相当大的。中学的校园网络说起来不大,再豪华大部分也超不过1000信息点,设备连接数能达到50%也就不错了。麻雀虽小可是也五脏俱全:
² 中心交换机也是带三层模块的,二级交换、三级交换都也是可网管的;
² 每间教室都有计算机,教室内的计算机至少有几十个老师要使用;
² 每个老师都有自己的工作计算机,既要安全又要个性化;
² 有不止一个的计算机机房,既要允许学生上网,还要限制学生上网;
² 电子阅览室也是有的,既要开放又要管理;
² 专业的或者DIY的服务器也有几台;
² 有一个以上的网站;
² 还有教学教务管理平台;
² 有钱的话资源库也会有的;
² 视频点播站也是需要的,要不然电子阅览室就少了一道风景;
² 时不时在可能的情况下还得改一改不合适的软件代码;
² ………
中学中的技术人员配置数量是极少的,以上这么多的重担全部就会押在三五个网管员身上,要求真高啊。
2006年因为要开发一些网络教学管理软件,想来想去还是决定把网络OS定为Linux,服务器为Apache,脚本语言为PHP,数据库为MS SQL Server(学校已有的系统全部运行在上面),花了四天时间才搞定了整个服务平台。
Apache服务器支持PHP、JSP、MYSQL、MS SQL Server。俗话说:好脑子不如烂笔头,赶紧把整个过程写了下来,于是有了这篇文章。
在linux下,PHP不能够直接访问MS SQL Server,需要一个中间件才能够正确访问。这个中间件就是Freetds。这个软件能够使Linux和Unix连接MS SQL Server和Sybase数据库。目前最新的版本是0.64,在本文中使用的是0.62.3版的源码包。
主页地址为:
下载地址为:
Apr是Apache可移植运行库,产生于保障服务器代码的多平台性。Apr的任务计划是编写并且维持一个可以提供可预期的和一致的接口给特殊的平台。其主要的目标是提供API给软件开发者可以编码而且确信代码不管在哪一个平台上都可以运行。
Apache源码包中自带位于srclib/apr下,需要手动安装。
Apache源码包中自带位于srclib/apr-util下,需要手动安装。
最流行的HTTP服务器软件之一。快速、可靠、可通过简单的API扩展,PHP/Perl/Python解释器可被编译到服务器中,完全免费,完全源代码开放。最新版本为
下载地址:.
MySql是一个多线程的,结构化查询语言(SQL)数据库服务器。SQL 在世界上是最流行的数据库语言。MySQL 的执行性能非常高,运行速度非常快,并非常容易使用。是一个非常棒的数据库。最高版本为:
[root@red]# tar –zxvf freetds-0.62.3.tar.gz
[root@red]# cd freetds-0.62.3
[root@red]# ./configure \
>--prefix=/usr/local/freetds \ {指定freetds的安装目录为/usr/local/freetds}
>--with-tdsver=8.0 \ {指定freetds运行版本为8.0支持Ms SQL Server 2000}
>--enable-msdblib {设定freetds支持Msdblib,好像可以不用}
[root@red]# make
[root@red]# make install
配置参看第三章Freetds配置。
[root@red]# tar –zxvf httpd-
[root@red] # cd httpd-
[root@red] # cd srclib
[root@red] # cd apr
[root@red] # ./configure –prefix=/usr/local/apr {指定Apr的安装目录为/usr/local/apr}
[root@red] # make
[root@red] # make install
不需要配置。
[root@red] # cd httpd-
[root@red] # cd srclib
[root@red] # cd apr-util
[root@red] # ./configure \
>--prifix=/usr/local/apr-util \ {指定Apr的安装目录为/usr/local/apr-util}
>--with-apr=/usr/local/apr {指定Apr的安装目录为/usr/local/apr}
[root@red] # make
[root@red] # make install
不用配置
[root@red] # cd httpd-
[root@red] # ./configure \
>--enable-so \ {指定Apr的安装目录为/usr/local/apr-util}
>--enable-ssl=share \ {指定Apr的安装目录为/usr/local/apr-util}
>--enable-rewrite=share \ {指定Apr的安装目录为/usr/local/apr-util}
>--enable-proxy=share \ {指定Apr的安装目录为/usr/local/apr-util}
>--enable-deflate=shate \ {指定Apr的安装目录为/usr/local/apr-util}
>--enable-dav=share \ {指定Apr的安装目录为/usr/local/apr-util}
>--enable-track-vars \ {指定Apr的安装目录为/usr/local/apr-util}
>--enable-proxy-ajp=share
>--prifix=/usr/local/apache2 \ {指定Apr的安装目录为/usr/local/apr-util}
>--with-mpm=worker \
>--with-apr=/usr/local/apr \
>--with-arp-util=/usr/local/apr-util \
[root@red] # make
[root@red] # make install
[root@red] # /usr/local/apache2/bin/apachectl start
在浏览器中地址中输入 如果看到It works! 证明Apache安装成功。
[root@red] # /usr/local/apache2/bin/apachectl stop
[root@red] # useradd mysql –s /sbin/nologin {可以不需要}
[root@red] # tar –zxvf mysql-
[root@red] # cd mysql-
[root@red] # ./configure \
>--with-prifix=/usr/local/mysql \
>--with-charset=GB2312 \ {如果使用UTF-8字符集,就可以不需要,建议不使用}
>--with-extra-charset=all \ {同上}
>--with-mysqld-user=mysql \ {可以不需要}
[root@red] # make
[root@red] # make install
[root@red] # cd /usr/local/mysql/share/mysql
[root@red] # cp my-medium.cnf /etc/my.cnf
[root@red] # cd /usr/local/mysql
[root@red] # ./mysql_install_db –user=mysql
[root@red] # chmod 1777 –R var
[root@red] # cd bin
[root@red] # mysqladmin –u root password 123456
[root@red] # cd /usr/local/mysql/share/mysql
[root@red] # ./mysql.server start
注:如果在安装之前创建了mysql用户,需要修改/usr/local/mysql目录的属性,因为英文的Mysql默认使用mysql用户启动服务,因此在启动服务之前必须修改:chomod –R mysql.mysql /usr/local/mysql
使用mysql –u root –p进入mysql运行命令:
grant select,insert,update,delete on 数据库.* to 用户◎localhost identified by “密码”
[root@red] # tar –zxvf php-
[root@red] # cd php-
[root@red] # ./configure \
>--prefix=/usr/local/php \
>--with-mysql=/usr/local/mysql \
>--with-mssql=/usr/local/freetds \
>--with-apxs2=/usr/local/apache2/bin/apxs \
>--with-config-file-path=/usr/local/php/etc \
>--enable-track-vars \
>--enable-force-cgi-redirect \
>--with-mhash {支持哈希算法,诸如MD5等}
[root@red] # make
[root@red] # make install
[root@red] # cp php.ini-dist /usr/local/php/etc/php.ini
[root@red] # chmod +X jdk1_5_06-linux-i586.bin
[root@red] # ./jdk1_5_06-linux-i586.bin
[root@red] # mv jdk1_5_06 /usr/java/jdk1_5_06
利用rpm –qa|grep ***命令查找以下程序包,如果安装,请使用rpm –e ***命令删除。{***为程序包名称}
gcc-java-* {*代表版本号}
libgcj-devel*
redhat-lsb*
gettext-*
libgcj*
[root@red] # tar –zxvf apache-taomcat-
[root@red] # mv apache-tmcat-
[root@red] # cd /usr/local/freetds/etc
[root@red] # vi freetds.conf
将
;[myServer2K]
; host = ntmachin.domain.com
; port = 1433
; tds Version = 8.0
去掉分号改为
[192.168.1.9]
host = 192.168.1.9 {192.168.1.9为MS SQL Server数据库的IP地址,当然域名也可以}
port = 1433
tds Version = 8.0
client charset = UTF-8 {因为freetds不支持GB2312字符集,要想正确显示中文只能使用UTF-8字符集。}
[root@red] # cd /usr/local/apache2/conf
[root@red] # vi httpd.conf
找到“LoadModule php4_module modules/libphp4.so”一行,在下面添加
“AddDefaultCharset UTF-8”
(因为freetds不支持GB2312字符集,要想正确显示中文只能使用UTF-8字符集。)
(如果没有找到这一行请检查/usr/local/apache2/modules下是否有libphp4.so文件,如果有请手动添加,如果没有请重新编译安装PHP。)
找到“
找到“# Virtual hosts”下面的“#Include conf/extra/httpd-vhosts.conf“去掉前面的#。
保存httpd.conf。
//如果要想PHP能够正确访问MySql数据库还需要修改一项:
[root@red] # cd extra
[root@red] # vi httpd-vhosts.conf
删除里面的两段
DirectoryIndex index.jsp
ProxyPass / ajp://localhost:8009/
ProxyPassReverse / ajp://localhost:8009/
ServerAdmin root@manager.sxdxfz.cn {设定服务器管理员}
ServerName manager.sxdxfz.cn {服务器名称,也可是IP地址}
ServerAlias www
ErrorLog logs/manager.sxdxfz.cn-error_log
CustomLog logs/manager.sxdxfz.cn-access_log common
[root@red] # cd /usr/local/php/etc
[root@red] # vi php.in
找到“;default_charset = "iso-8859-1"”一行,去掉分号改为default_charset = "UTF-8",保存退出。
(因为freetds不支持GB2312字符集,要想正确显示中文只能使用UTF-8字符集。)
[root@red] # cd
[root@red] # ls –l
[root@red] # vi .bash_profile
把其改为
JAVA_HOME=/usr/java/jdk
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar {设置Java类的默认目录}
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin {设置默认S搜索路径}
BASH_ENV=$HOME/.bashrc
TOMCAT_HOME=/usr/local/tomcat {设置Tomcat的默认路径}
USERNAME="root"
export USERNAME BASH_ENV PATH JAVA_HOME CLASSPATH TOMCAT_HOME
保存退出,使环境变量起作用
[root@red] # source ~/.bash_profile
[root@red] # cd /usr/local/tomcat/conf
[root@red] # vi web.xml
添加
到
[root@red] # cd /etc/rc.d
[root@red] # vi rc.local
添加以下项目:
/usr/local/tomcat/bin/startup.sh
/usr/local/apache2/bin/apachectl start
/usr/local/mysql/bin/mysqld_safe –user=mysql &
freetds安装配置完成后,运行/usr/local/freetds/bin/tsql –S 192.168.1.9 –U sa 后显示:
locale is "zh_CN.GB2312"
locale charset is "GB2312"
Password:
输入密码后显示
1>
哈,你已经连接上MS SQL Server数据库了。
[root@red] # cd /usr/local/mysql/share/mysql/mysql.server start
显示Starting MySQL. SUCCESS! 安装成功
[root@red] # cd /usr/local/apache/bin/apachectl start
如果没有提示任何错误,应该是正常运行了。如果你还没有配置完PHP,在浏览器的地址栏里输入http://服务器IP地址,会显示It’s Works!。如果你配置了PHP,输入http://服务器IP地址/测试php文件名称,就应该会显示你所希望看到的内容。
启动Apache,编写一个文件test.php,内容为,传到Apache的文档目录下,在浏览器的地址栏里输入http://服务器IP/test.php.
这时你应该能够看到Apache和PHP的配置信息,同时你还能看到PHP支持mssql的信息,显示如下:
[root@red] # java {不出错误即可}