ubuntu+nginx+php+mysql+sphinx安装

接到任务要对sphinx进行研究,所以在虚拟机上装了个ubutu折腾安装环境,记录如下

安装g++编译环境
apt-get install g++ gcc

安装python开发组件 非必要 视情况选择安装
apt-get install python python-dev

安装PHP运行及相关扩展
apt-get install php5 php5-dev php5-pear php5-cgi php5-mysql php5-curl php5-gd php5 php5-mcrypt php5-memcache

安装mysql 及开发库
apt-get install mysql-server mysql-client
apt-get install libmysqlclient15-dev

安装nginx 最新版需要通过下载源码编译安装
apt-get install nginx
安装成功后,启动nginx 输入如下命令:
sudo /etc/init.d/nginx start
可以看到nginx已经启动成功。
Starting nginx: nginx.
spawn-fcgi.c.197: child spawned successfully: PID: 9772
打开浏览器,输入127.0.0.1,可以看到nginx的欢迎欢迎画面,显示
Welcome to nginx!

安装spawn-fcgi
运行sudo apt-get install spawn-fcgi
配置Nginx和spawn-fcgi配合运行
(1).在/etc/nginx/fastcgi_params 文件最后,加入一行
sudo gedit /etc/nginx/fastcgi_params打开文件
加入此行:fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
(2).另外需要在PHP-CGI的配置文件(Ubuntu 上此配置文件位于/etc/php5/cgi/php.ini)中,找到cgi.fix_pathinfo选项,修改为:cgi.fix_pathinfo=1; (这个参数好像有问题,最近很火的那个漏洞)
这样php-cgi方能正常使用SCRIPT_FILENAME这个变量。
(3).打开/etc/nginx/sites-available/default文件

server {
listen 80;
server_name localhost;

下面添加
root /var/www/nginx-default
即root和server_name同级
这段即相当于apache的默认目录 如果没有这个的话,容易在执行php 文件的时候,会提示”No input file specified”。

然后修改
#location ~ \.php$ {
#fastcgi_pass 127.0.0.1:9000;
#fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_script_name;
#includefastcgi_params;
#}

修改成
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
#fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name; include /etc/nginx/fastcgi_params; #fastcgi的参数文件地址
}

重启nginx和php-cgi 的命令
nginx: sudo /etc/init.d/nginx restart 同样也可以有start,stop等参数
php-cgi: 先杀死进程
sudo killall -HUP php5-cgi
再启动
sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u yeyupl -g yeyupl -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid

参数含义如下

  • -f 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置
  • -a 绑定到地址addr
  • -p 绑定到端口port
  • -s 绑定到unix socket的路径path
  • -C 指定产生的FastCGI的进程数,默认为5(仅用于PHP)
  • -P

指定产生的进程的PID文件路径

  • -u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行

安装sphinx 通过下载最新版源码编译安装

wget  http://www.sphinxsearch.com/downloads/sphinx-0.9.9.tar.gz
tar zxvf sphinx-0.9.9.tar.gz
cd sphinx-0.9.9
./configure --prefix=/usr/local/sphinx --with-mysql
make && make install

创建配置文件
cd /usr/local/sphinx/etc
sudo cp sphinx.conf.dist sphinx.conf
sudo gedit sphinx.conf
修改配置里相应的数据库连接信息
在示例配置文件中,将试图对MySQL数据库test中的documents 表建立索引;
因此在这里还提供了example.sql 用于给测试表增加数据用于测试:
mysql -u yeyupl< /usr/local/sphinx/etc/example.sql

运行indexer 创建全文索引:
cd /usr/local/sphinx/etc
/usr/local/sphinx/bin/indexer

检索新创建的索引
可以使用search实用程序可以从命令行对索引进行检索:
cd /usr/local/sphinx/etc
/usr/local/sphinx/bin/search test

如果要从PHP脚本检索索引,需要:

  1. 运行守护进程searchd,PHP脚本需要连接到searchd上进行检索

cd /usr/local/sphinx/etc
/usr/local/sphinx/bin/searchd

  1. 运行PHP API 附带的test 脚本(运行之前请确认searchd守护进程已启动):

cd sphinx/api
php test.php test

  1. 将API文件(位于api/sphinxapi.php) 包含进自己的脚本,开始编程

至此基本的安装和简单测试完成,有待进一步测试研究

Tags: ubuntu, nginx, php, mysql, sphinx

« 上一篇 | 下一篇 »

信息推荐

只显示10条记录相关文章

PNP-PHP广州群聚会 (浏览: 3345, 评论: 2)
MySql 按时间段查询数据 (浏览: 2420, 评论: 0)
MYSQL常见出错代码mysql error number (浏览: 1885, 评论: 0)
多memcached 和 mysql 主从 环境下PHP开发: 代码详解 (浏览: 1614, 评论: 1)
远程文件本地化 (浏览: 1383, 评论: 0)
ubuntu+php+mysql+apache安装配置 (浏览: 1362, 评论: 2)
php+mysql无限级分类的代码 (浏览: 1337, 评论: 0)
PHP基本数据结构 (浏览: 1199, 评论: 0)
Ubuntu环境中安装LAMP (浏览: 1015, 评论: 0)
5-30 PNP-PHP广州街坊群聚会 (浏览: 932, 评论: 1)

发表评论