centos php mssql,centos哪个版本建站好
Linux 下用 Python 连接 MSSql Server 2008
缘起
因为客户要求在应用上部署 mssql server 2008,而我们习惯了开发 Linux下的服务器程序,所以就有了在 linux下用 python连接 mssql server 2008的需求。这个需求非常折腾人,我们花了许多时间在上面,仍然没有搞定。后来是请了 python-cn列表的 vcc出手,通过 ssh直接上机操作才搞定的;相信以后搞不定的人还会不少,所以就把其中的经验写出来,方便后来者,也方便自己日后发布应用程序时能够有一个指导性的文档。
写作本文时我们用的实验机器安装的是 ubuntu 8.04,使用其它 linux发行版的朋友请相应地更改 shell命令。
安装unixODBC
unixODBC是 linux下的 ODBC驱动管理器,官网:。先确保你已经装上了它。如果你在 ubuntu/debian下,直接执行:
sudo apt-get install unixODBC unixODBC-bin
就可以把 unixODBC装上了,附带装上了图形化的 ODBC管理器 ODBCConfig,它的样子大概是这样的:
如果你确定会在命令行下工作,就不安装 unicODBC-bin也可以。而且后文的相关操作也是通过命令行来完成的,不会使用 ODBCConfig,提到这个只为方便 GUI爱好者。
安装Freetds
Freetds是应用最为广泛的 Linux下的 ODBC驱动,官网:。因为我们用的版本是 0.82版,而 ubuntu的更新源里仍然是 0.63版本,我这边建议你执行 sudo apt-get remove freetds freetds-dev来把以前装的版本删除掉,然后下载 0.82或更新的版本。
编译 freetds的时候一定要注意 configure的参数,我估计当时我编译的时候参数没有设置正确,所以一直没有能够连上 mssql server。Vcc分享了他的编译参数,如下:
./configure/
--prefix=/etc/freetds/
--with-tdsver=8.0--enable-msdblib/
--enable-dbmfix/
--with-gnu-ld/
--enable-shared/
--enable-static
执行 configure之后再 sudo make,sudo make install,耐心等候安装完成就可以了。
安装完成后,该用 tsql测试一下,测试的方式是执行:
tsql–H mssql-server-ip–U username–P password
出现 1提示符就是成功啦。
配置 freetds
Freetds的配置文件位置在/etc/freetds/freetds.conf里,打开后在最后面增加如下一个 section:
138 [db4]
139 host= 192.168.18.4
140 port= 1433
141 tds version= 7.0
其中 host是 mssql server的地址,tds version是指定使用哪个 tds版本,据 vcc说,用 7.0的兼容性比较好,我小试了一下,8.0也是可以的。
完成以后,应该用 tsql测试一下,测试的方式是执行:
tsql–S db4–U username–P password
看到 1标识符就是成功啦。
配置 ODBC驱动
接下来我们要配置一个 ODBC驱动,驱动存储在/etc/odbcinst.ini文件中,用 vi打开后,写入下面的内容:
1 [SQL Server]
2 Description = MS-SQLServer
3 Driver =/usr/local/freetds/lib/libtdsodbc.so
4 Driver64 =/usr/local/freetds/lib/libtdsodbc.so
5 Setup =/usr/lib/odbc/libtdsS.so
6 Setup64 =/usr/lib/odbc/libtdsS.so
7 UsageCount = 1
8 CPTimeout =
9 CPReuse =
10 FileUsage = 1
这样我们就配置好一个名为 SQL Server的驱动了。如果你的 odbcinst.ini之前是空的,可能还需要这样一个 section:
12 [ODBC]
13 Trace = Yes
14 TraceFile =/tmp/sql.log
15 ForceTrace = No
16 Pooling = Yes
其中 Trace是指定要不要写 log,写 log会降低程序性能,发布版记得把 Trace的值改为 No。
配置 ODBC数据源
现在该到配置数据源的时候了,ODBC数据源存放在/etc/odbc.ini文件中,我们用 vi打开,然后加入如下内容:
8 [mssql2k8]
9 Description = link to 18.4
10 Driver = SQL Server
12 Servername= db4
14 Database = tempdb
可以看到这个名为 mssql2k8的数据中,使用了前面在 odbcinst.ini中定义的驱动“SQL Server”,在 freetds.conf中定义的 db4数据库服务器,前面的工作必不可少哇。
配置完成后可以使用 isql测试一下,测试方式是执行:
isql mssql2k8 username password
在 isql中你可以执行相应的 sql语句,比如 select* from table,看看是不是真的已经能够从 mssql server 2008中取得数据了。
安装 pyodbc
无疑,这一步是最容易的了。先到这里()下载 pyodbc源码包,然后解压到相应的目录,再执行:
sudo python setup.py build
sudo python setup.py install
即可。
最后仍然是测试,可以参考的代码。
参考资料
CentOs下php连mssql并配置unixODBC
PyODBC, UnixODBC, FreeTDS– config
unixODBC教?W
“有”情社区
python-cn
如何在CentOS6下实现Apache+PHP+MySQL的快速安装
LAMP是一个免费、开源的解决方案,代表了Linux、Apache、MySQL、PHP,主要用作建立可行的通用的web服务器。那么如何在CentOS6下实现安装Apache+php+Mysql的快速安装?其具体安装配置步骤可以如下进行:
1.准备工作
使用yum进行安装,为了提高速度,最好先是修改为中国CentOS镜像服务器。目前国内有三个镜像可以选择,分别是:中国科学技术大学、163和Sohu的镜像,建议教育网用户选择中科大,电信用户选择163
下面命令是备份CentOS-Base.repo文件,并修改使用163镜像作为yum源:
mv/etc/yum.repos.d/CentOS-Base.repo/etc/yum.repos.d/CentOS-Base.repo.save
wget
mv CentOS6-Base-163.repo/etc/yum.repos.d/CentOS-Base.repo
2.更新系统内核
yum-y update
3.安装Apahce、Mysql、PHP
yum-y install httpd php mysql mysql-server
默认情况下,mysql数据目录位于/var/lib/mysql
4.安装相关组件:
yum install php-mysql php-gd php-imap php-ldap php-odbc
php-pear php-xml php-xmlrpc
5.安装MySQL管理工具phpMyAdmin
yum-y install phpMyAdmin
6.配置Apache随系统启动
chkconfig--levels 235 httpd on
/etc/init.d/httpd start
7.配置MySQL随系统启动
chkconfig--levels 235 mysqld on
/etc/init.d/mysqld start
8.设置数据库root密码
/usr/bin/mysqladmin-u root password'New+Password#www.yupengyan.com'
9.测试PHP是否安装成功
在 CentOS中 Apache的默认根目录是/var/www/html,配置文件/etc/httpd/conf/httpd.conf。其他配置存储在/etc/httpd/conf.d/目录。
centos系统编译安装nginx+php环境另加独立mysql教程
前端(nginx+php)ip:192.168.10.8
后端(独立mysql)ip:192.168.10.5
软件版本:libiconv-1.14.tar.gz mysql-5.1.63.tar.gz php-5.2.17.tar.gz php-5.2.17-fpm-0.5.14.diff.gz php-5.2.17-max-input-vars.patch
1.先在后端安装mysql
在192.168.10.5上只安装mysql.方法可以去看centos编译安装nginx+php-fpm+mysql里的mysql安装.
2.在前端安装php-fpm nginx和mysql-client
这里只说下安装mysql-client和php的编译安装.
代码如下 tar zxf mysql-5.1.63.tar.gz cd mysql-5.1.63
./configure--prefix=/usr/local/mysql--without-server
这里只需要加上--without-server就可以让mysql变成客户端了.
如果出现/bin/rm: cannot remove `libtoolt': No such file or directory,可以去看这篇文章Mysql安装:/bin/rm: cannot remove `libtoolt': No such file or directory.
没有问题后,执行命令:
代码如下 make make install
编译php的时候只需要加上--with-mysql=mysql客户端安装目录就可以了.这里我给出编译参数:
代码如下 ./configure--prefix=/usr/local/php--enable-fastcgi--enable-fpm--with-fpm-log=/var/log/php-fpm.log\
--with-fpm-conf=/etc/php-fpm.conf--with-fpm-pid=/var/run/php-fpm.pid--with-config-file-path=/etc\
--with-config-file-scan-dir=/etc/php.d--with-openssl--with-zlib--enable-bcmath--with-bz2--with-curl\
--enable-ftp--with-gd--enable-gd-native-ttf--with-jpeg-dir--with-png-dir--with-gettext--with-mhash\
--enable-mbstring--with-mcrypt--enable-soap--enable-zip--with-iconv=/usr/local/libiconv\
--with-mysql=/usr/local/mysql--with-mysqli=/usr/local/mysql/bin/mysql_config--without-pear
nginx的编译没有什么好说的了,我前面centos编译安装nginx+php-fpm+mysql这篇文章里已经有讲过了.
3.进行测试验证
当上面的一切都安装好之后,在后端的mysql里给出远程权限,如下:
代码如下 GRANT ALL PRIVILEGES ON*.* TO'root'@'%' IDENTIFIED BY'123456';
然后iptables上只允许192.168.10.8访问mysql端口,其他都拒绝.如:
代码如下 iptables-A RH-Firewall-1-INPUT-s 192.168.10.8-p tcp-m tcp--dport 3306-j ACCEPT
iptables-A RH-Firewall-1-INPUT-p tcp--dport 3306-j DROP
services iptables save
services iptables restart
然后在192.168.10.8上进行测试,是否可以远程连上mysql
mysql-h 192.168.10.5-u root-p
如果可以连上,就继续下一步的操作,不能连上的话请检查上面是否有错误的地方.
现在我们加个php页面来测试php是否可以连上mysql,脚本如下:
代码如下 ?php
$link=mysql_connect("192.168.10.5","root","123456");
if(!$link) echo"bad!";
else echo"ok!";
mysql_close();
?
成功的话是ok!的输出,失败的话是bad!的输出,我这里是成功的
mysql 5.5.x的只安装客户端.
需要的软件:libiconv-1.14.tar.gz mysql-5.5.25a.tar.gz
1.安装前的准备
安装前的准备,可以去看这篇文章centos编译安装nginx+php-fpm+mysql
2.安装libiconv
代码如下 ./configure--prefix=/usr/local/libiconv
make make install
3.只安装mysql客户端
代码如下 cmake. make mysqlclient libmysql
make install
这样就只安装了mysql客户端,然后可以输入whereis mysql来查看mysql安装位置.
whereis mysql
好了,可以看到跟yum安装的差不多.
4.安装php
以前mysql是5.1的时候,只需要加上--with-mysql=mysql客户端安装目录就可以了,但在mysql 5.5.x这个参数就要改变下了,下面是php的编译参数:
代码如下 ./configure--prefix=/usr/local/php--enable-fastcgi--enable-fpm--with-fpm-log=/var/log/php-fpm.log--with-fpm-conf=/etc/php-fpm.conf\
--with-fpm-pid=/var/run/php-fpm.pid--with-config-file-path=/etc--with-config-file-scan-dir=/etc/php.d\
--with-openssl--with-zlib--enable-bcmath--with-bz2--with-curl--enable-ftp\
--with-gd--enable-gd-native-ttf--with-jpeg-dir--with-png-dir--with-gettext--with-mhash\
--enable-mbstring--with-mcrypt--enable-soap--enable-zip--with-iconv=/usr/local/libiconv\
--with-mysql=shared,/usr--with-mysqli=shared,/usr/bin/mysql_config
大家可以看最后一行,--with-mysql=shared,/usr--with-mysqli=shared,/usr/bin/mysql_config这就是跟以前不同的行.好了,剩下的就不写了