配置sphinx+mysql+php+python+memcache环境

安装php5
直接在终端sudo apt-get install php5
安装memcache
直接在中终端sudo apt-get install php5-memcache php5-memcached memcached(是三个文件)
安装mysql
1.下载解压。(官网MySQL Community Server 5.5的包,我装的时候总缺一个文件,所以下的MySQL Community Server 5.1)
   http://dev.mysql.com/downloads/mysql/5.1.html
  文件名:Generic Linux (glibc 2.3) (x86, 32-bit), Compressed TAR

2.安装。(参考 http://dev.mysql.com/doc/refman/5.5/en/binary-installation.html

安装命令顺序(涉及权限问题用sudo):

shell> groupadd mysql                       (建立一个账户用于mysql运行)
shell> useradd -r -g mysql mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz  (解压安装包,文件名路径要换自己的)
shell> ln -s full-path-to-mysql-VERSION-OS mysql  (连接成mysql文件夹)
shell> cd mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> scripts/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql data

# Next command is optional (可选的,建议设置,将配置文件拷贝到正确位置)
shell> cp support-files/my-medium.cnf /etc/my.cnf
shell> bin/mysqld_safe --user=mysql &     (启动mysql命令)

# Next command is optional  (可选的,建议设置,设置开机自动启动mysql)
shell> cd /etc/init.d
shell> cp /usr/local/mysql/suppor-files/mysql.server mysql
shell> chmod +x /etc/init.d/mysql
shell> cd /etc/rc2.d
ln -s /etc/init.d/mysql /etc/rc2.d/S20mysql     (重启生效)

3.添加mysql初始密码。(参考 http://www.linuxidc.com/Linux/2008-02/11137.htm
    进入mysql,输入如下命令
  mysql> use mysql;
  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';
mysql> FLUSH PRIVILEGES;

4.修改mysql中汉字乱码问题。
  可以使用mysql> show variables like 'char%';来查看数据库各个级别默认的字符集.可以使用set命令修改默认的字符集,但好像只是一次性的,也可以修改配置文件来修改字符集(永久的)
    我的mysql配置文件目录在:/etc/my.conf下,用vim打开文件,在[client]与[mysqld]下都加入下面语句default-character-set=utf8(我设置的字符集为utf8),保存,重启mysql.


安装mysql其他参考: http://hi.baidu.com/cq188/blog/item/9a5febcdd6dc1b5d0eb34563.html

安装sphinx
1.    下载。
官网Sphinx 2.0.2-beta downloads  ( http://sphinxsearch.com/downloads/beta/

2.    安装

命令顺序如下:(参考 http://blog.csdn.net/siren0203/article/details/6183832 )(有时需sudo)
             (官网参考  http://sphinxsearch.com/docs/2.0.2/installing.html

 shell> tar xzvf sphinx-2.0.2-beta.tar.gz
 shell> cd sphinx
 shell>./configure [options] 

( 
 [options] 有一些参数可以在配置的时候指定,主要如下:
        --prefix, 指定sphinx 安装到系统的那个位置; 例如 --prefix=/usr/local/sphinx
        --with-mysql, mysql的安装目录,指定如果自动侦查mysql的相关库文件失败后到哪个目录查找
        --with-pgsql, 同上,只是用于pgsql的
完整的配置命令如下:shell>./configure --prefix=/usr/local/sphinx --with-mysql=/usr/local/mysql


 shell> make
 shell> make install

3.    运行测试(官网参考  http://sphinxsearch.com/docs/2.0.2/quick-tour.html
        (参考 http://www.cnblogs.com/chenzehe/archive/2010/11/04/1869388.html

shell>cd /usr/local/sphinx/etc 
shell> cp sphinx.conf.dist sphinx.conf (将/sphinx/etc下面的 sphinx.conf.dist重命名为sphinx.conf(配置文件))
shell> vi sphinx.conf(修改sphinx.conf其中的配置,主要是修改你服务器上面的mysql的用户名、密码、使用的数据库(sock路径一般也需要修改,我的就修改了)等。修改的位置 是sphinx.conf的source src1下面几行)
shell> mysql –u root -p test < /usr/local/sphinx/etc/example.sql (导入sphinx准备的测试数据)
shell> cd /usr/local/sphinx/etc
shell> /usr/local/sphinx/bin/indexer –all(这个命令是建立索引,当然数据基础是刚刚导入的 example.sql的数据,如果这里出错,最大的可能是你的sphinx.conf中的数据库配置错了,你需要回去检查并修正。但是,还有可能出现 sphinx必须的库文件无法找到,例如出现以下两种错误:
/usr/local/sphinx/bin/indexer: error while loading shared libraries: libmysqlclient.so.15: cannot open shared object file: No such file or directory
/usr/local/sphinx/bin/indexer: error while loading shared libraries: libiconv.so.2: cannot open shared object file: No such file or directory
这主要是因为你安装了一些库后,没有能够配置相应的环境变量。你可以通过建立连接 的方式修正这个问题,运行如下命令:
ln -s /usr/local/mysql/lib/libmysqlclient.so.16 /usr/lib/libmysqlclient.so.16
ln -s /usr/local/lib/libiconv.so.2 /usr/lib/libiconv.so.2)
shell> cd /usr/local/sphinx/etc
shell> /usr/local/sphinx/bin/search test(命令是搜索测试,测试的关键词就是 test 了,如果成功的话,你应该看到搜到的结果,出现字串“index 'test1': query 'test ': returned 3 matches of 3 total in 0.000 sec”,后面跟的是结果表示成功了)

# Next command is optional  (可选的)
shell> cd /usr/local/sphinx/etc
shell> /usr/local/sphinx/bin/searchd(启动了sphinx进程了,如果没什么错误,可以通过ps -aux|grep '3312' 找到sphinx进程了。成功测试)

安装MySQL-python
参考:    (1)( http://blog.csdn.net/dqatsh/article/details/2418663
         (2)( http://blog.csdn.net/houlaizhe221/article/details/5967197
        (3)( http://blog.donews.com/maverick/archive/2006/06/20/922178.aspx

前提:安装了mysql.(根据本文中安装mysql的方法,目录在/usr/local/mysql中)

1. 首先确认python的版本为2.3.4以上,如果不是需要升级python的版本
     python -V   检查python版本

2. 下载 MySQL-python-1.2.2.tar.gz
    地址 ( https://sourceforge.net/projects/mysql-python/

3. 安装 MySQl-python
    shell> tar xvzf MySQL-python-1.2.2.tar.gz
    shell> cd MySQL-python-1.2.2
    shell>vi site.cfg
    (在配置文件中把mysql_config = /usr/local/mysql/bin/mysql_config 这一行前的#去掉,并且把mysql_config的路径设置正确。   ( 注:这里很有可能会出现一个问题就是找不到mysql_config,原来我们用apt-get安装的mysql不是开发板,并没有包含mysql_config 我们需要安装libmysqld-dev:desktop:/usr/local/src$ sudo apt-get install libmysqld-dev然后可以找到mysql_config,我的路径为/etc/bin/mysql_config. ))

4、还要安装以下三个工具
shell>sudo apt-get install python-setuptools
shell> sudo apt-get install build-essential
shell>sudo apt-get install python-dev

5、安装mysql_python
desktop:/usr/local/src/MySQL-python-1.2.3c1$ sudo python setup.py build
desktop:/usr/local/src/MySQL-python-1.2.3c1$ sudo python setup.py install
安装结束

6. 测试
    运行: python
    import MySQLdb
如果没有报错,说明安装好了。

    (比较诡异的是,有时即使安装完成,在python中执行import MySQLdb 仍然可能出错:libmysqlclient.so.12: cannot open shared object file: No such file or directory遇到这种问题,需要在/usr/lib/下为libmysqlclient.so.12设置一个符号链接(这里假设mysql安装在/usr/local/mysql下)ln -s /usr/lib/mysql/lib/libmysqlclient.so /usr/lib/libmysqlclient.so.12(这个文件因人而异) 再次执行 import MySQLdb   成功。)

安装php5-mysql(使php能连接到数据库)
1.    终端输入:shell>sudo apt-get install php5-mysql
(注意:执行这个命令会依赖安装两个文件mysql-common与libmysqlclient16.这样会将我们自己编译安装mysql时的配置文件覆盖掉或者替换等。我的方法是把/usr/local/mysql/support-files/my-medium.cnf替换掉/etc/mysql/my.cnf。并改名为my.cnf)

2.修改php的配置文件。
shell> cd /etc/php5/apache2/
shell> sudo vim php.ini    (打开php配置文件)

修改[MySQL]字段下面:
mysql.default_socket = /tmp/mysql.sock(这是我的sock文件目录,编译安装的一般在这里)
修改[MySQLi]字段下面
mysqli.default_socket =/tmp/mysql.sock(这是我的sock文件目录,编译安装的一般在这里)

3.重启后应该就能连接到数据库了。
用编译源码安装mysql时最需注意的事情
提要:mysql.sock文件是mysql客户端与mysql服务器连接的套接字,它的路径错误很可能导致不能启动mysql。

因为源码编译安装的mysql的.sock文件在tmp目录下 路径为:/tmp/mysql.sock(只有你启动mysql的时候才会看到mysql.sock)
而系统默认的路径是:/var/run/mysqld/mysqld.sock   

所以在用php或者是sphinx连接mysql时都可能要更改配置文件里.sock的路径!
比如sphinx中就可能要修改sphinx.conf来正确连接数据库。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

陈善

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值