天天看点

ubunutu 源码lamp mysql5.5 PHP5.4 +swsc中文分词

1.准备环境

sudo apt-get install gcc g++ cpp libncurses5-dev make libssl-dev sysv-rc-conf bison libbz2-dev libcurl3-openssl-dev libjpeg62-dev libpng12-dev libxpm-dev libt1-dev libfreetype6-dev libgmp3-dev libmcrypt-dev libmhash-dev libpspell-dev libsnmp9-dev libmm-dev libtidy-dev libxml2-dev

1.2关闭sudo /etc/init.d/apache2 stop ;telnet 0 80;sudo /etc/init.d/mysql stop;telnet 0 3306 ;

1.3sudo dpkg --get-selections|grep 软件名称

下载软件包

httpd-2.4.10-deps.tar.bz2  httpd-2.4.10.tar.gz  mysql-5.5.41.tar.gz  pcre-8.31.tar.bz2  php-5.4.35.tar.bz2

apche2 下载地址:http://httpd.apache.org/download.cgi

php5 下载地址:http://www.php.net

mysql 下载地址:http://dev.mysql.com/downloads/

安装httpd环境

tar -jxfv httpd-2.4.10-deps.tar.bz2

./configure --prefix=/usr/local/apr

./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr

tar hxfv pcre-8.31.tar.bz2 

  cd pcre-8.31/

/configure --prefix=/usr/local/pcre

4.安装apache

./configure --prefix=/usr/local/apache2 --sysconfdir=/home/service/web/config/apache/conf --enable-so --enable-ssl --enable-rewrite --with-mpm=worker --enable-dav --enable-maintainer-mode --enable-cgi --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre

或者

   sudo ./configure  \   //执行当前目录下软件自代的配置命令

> --prefix=/usr/local/apache2 \       //指定apache软件安装的位置

> --sysconfdir=/etc/httpd  \     //指定apache服务器的配置文件存放位置

> --with-z=/usr/local/zlib/ \                //指定zlib库文件的位置

> --with-included-apr  \                 //使用捆绑apr/apr-util的副本

> --enable-so \                          //以动态共享对象(dso)编译

> --enable-deflate=shared \               //缩小传输编码的支持

> --enable-expires=shared \               //期满头控制

> --enable-rewrite=shared \               //基于规则的url操控

> --enable-static-support                 //建立一个静态链接版本的支持 

sudo make

sudo make install 

注意:apache安装完成后,/usr/local/apache2即为apache的根目录,而/etc/httpd/为apache的配置目录

检查安装目录

检查配置文件目录

sudo vi /etc/httpd/httpd.conf

在文件的上方空白处添加:

servername localhost:80  //监听本机的80端口

sudo /usr/local/apache2/bin/apachectl start    

 //启动apache 

最后在浏览器输入http://localhost

若出现it works!恭喜你,安装成功

sudo /usr/local/apache2/bin/apachectl stop    

//关闭apache 

# netstat -tnl|grep 80     //查看80端口是否开启 

http://localhost/去访问apache服务器 

sudo echo "/usr/local/apache2/bin/apachectl start" >> /etc/rc.local    //添加自启动

注意:若此启动无法写进文件,请用vi编辑器直接编辑,写在该文件的代码段 'exit 0'  之前即可

 5.安装maysql数据库

        1.解压mysql源码安装包

   tar -zxvf mysql-5.5.37.tar.gz

        2.安装一些编译需要的组件     

            安装cmake组件

    sudo apt-get install cmake

            安装libncurses5-dev组件

            sudo apt-get install libncurses5-dev

            安装gcc-c++组件

            sudo apt-get install build-essential

            安装bison组件

            sudo apt-get install bison

        3.编译安装

            设置用户组

sudo useradd -r -gmysql mysql

下载 mysql源码包 

问题:cmake error: the source directory  *** does not appear to contain cmakelists.txt.

问题原因:是软件包下载错误了

下载类型:source code  源代码包

sudo cmake -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/mysql -ddefault_charset=utf8 -ddefault_collation=utf8_general_ci -dextra_charsets=all -dwith_myisam_storage_engine=1 -dwith_innobase_storage_engine=1 -denabled_local_infile=1

警告dwith_myisam_storage_engine  忽略 不影响结果

 sudo make install

    配置相应的文件

        进入/usr/local/mysql 下

        sudo chown -r mysql .

        sudo chgrp -r mysql .

        sudo ./scripts/mysql_install_db 

        --user=mysql --basedir=/usr/local/mysql 

        --datadir=/usr/local/mysql/data 

        --no-defaults

   配置完成后修改权限

            sudo chown -r root .

            sudo chown -r mysql data

   复制配置文件

            sudo cp ./support-files/my-medium.cnf /etc/my.cnf

   配置my.cnf信息,找到[mysqld],然后追加进去

            [mysqld]

            user = mysql

            basedir = /usr/local/mysql

            datadir  = /usr/local/mysql/data

            character-set-server = utf8

   将mysql.server拷贝/etc/init.d下:

   sudo cp ./support-files/mysql.server /etc/init.d/mysql  

sudo chown -r root.mysql .

sudo chown -r mysql data

避免pid文件没有写权限

   启动mysql

   sudo /etc/init.d/mysql start

        遇到启动失败“starting mysql * couldn't find mysql server (/usr/bin/mysqld_safe)”时

        sudo rm /etc/mysql/my.cnf

   确认mysql是否安装成功

   sudo /usr/local/mysql/bin/mysqladmin version

sudo mysqladmin -uroot password 'new_password'

mysql> grant all privileges on *.* to 'root'@'%' identified by password 'weloment';

error 1372 (hy000): password hash should be a 41-digit hexadecimal number

mysql> select password('weloment');

+-------------------------------------------+

| password('weloment')                      |

| *ce9889f691ecde87de56bb2bc9a7e1e95429a221 |

1 row in set (0.02 sec)

mysql> grant all privileges on *.* to 'root'@'%' identified by password '*ce9889f691ecde87de56bb2bc9a7e1e95429a221';

query ok, 0 rows affected (0.02 sec)

 ./scripts/mysql_install_db --user=mysqld --basedir=/usr/local/mysql --no-defaults

installing mysql system tables...

141202 22:27:59 [error] /usr/local/mysql/bin/mysqld: can't find file: './mysql/db.frm' (errno: 13)

error: 1017  can't find file: './mysql/db.frm' (errno: 13)

141202 22:27:59 [error] aborting

141202 22:27:59 [note] /usr/local/mysql/bin/mysqld: shutdown complete

程序用户没有写权限(程序用户在/my.cnf中定义)

 ls -l  ./data/mysql/db.frm 

-rw-rw---- 1 root root 9582 dec  2 22:27 ./data/mysql/db.frm

 chown -r mysqld.mysqld 

安装成功

 6. 安装php

    这里使用了简易的安装,之后的扩展另外安装(其实是我总是遇到错误解决太麻烦了,安装了n次之后感觉这个方法最好,基本是不会出错的)

    一些扩展我会在下面进行另外的安装,我感觉这样比较清晰。

    这里安装的php仅仅关联了apache,mysql

    之后会在扩展中安装:pdo_mysql,

    sudo ./configure 

    --prefix=/usr/local/php 

    --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql=/usr/local/mysql/ 

    --enable-mbstring 

    --enable-xml 

    --enable-sockets

打开apache配置文件 

    sudo gvim /etc/httpd/httpd.conf

    在后边加上 

 <ifmodule php5_module>

phpinidir /usr/local/php/lib/php.ini

addtype application/x-httpd-php .php

#addtype application/x-httpd-php-source  .phps

</ifmodule>

找到 directoryindex 添加 index.php

<ifmodule dir_module>

    directoryindex index.html index.php

确定php5模块开启,并在apache2 modules/libphp5.so可以读取库文件

loadmodule php5_module        modules/libphp5.so

   重启apache 在apache的工作目录中写一个phpinfo的文件,然后进入localhost看看

    <?php

        phpinfo();

    ?>

访问测试:

http://ip

效果如下

7.添加scws中分分词扩展

手下下载scws×××

tar jxfv scws-1.2.2.tar.bz2

./configure--prefix=/usr/local/scws

make

make install

cd /usr/local/scws/bin

./scws -i ../etc/test.txt -o ../etc/out.txt -r ../etc/rules.utf8.ini -d ../etc/dict.utf8.xdb -c utf8

sudo cp -rp phpext /usr/local/scws

cd /usr/local/scws/phpext

phpize

./configure --with-php-config=php_home/bin/php-config

编辑php.ini

[scws] 

extension = /usr/local/scws/phpext/modules/scws.so 

scws.default.charset = utf8 

scws.default.fpath   = /usr/local/scws/etc

php scws_test.php 

输出如下

pengzhihang@ubuntu:/usr/local/scws/phpext$ php scws_test.php 

PHP Warning:  SimpleCWS::set_dict(): Failed to set the dict file in /usr/local/scws/phpext/scws_test.php on line 75

Warning: SimpleCWS::set_dict(): Failed to set the dict file in /usr/local/scws/phpext/scws_test.php on line 75

Test [1] ... FAILURE!

----------------------------------------

ORGINAL TEXT: 大家好,我是马明练

EXPECTED RESULT: 大家 好 , 我 是 马明练

ACTUAL RESULT: 大 家 好 , 我 是 马明练

========================================

Test [2] ... FAILURE!

ORGINAL TEXT: 结合成分子时

EXPECTED RESULT: 结合 成 分子 时

ACTUAL RESULT: 结 合 成分子 时

Test [3] ... FAILURE!

ORGINAL TEXT: 提高人民生活水平

EXPECTED RESULT: 提高 人民 生活 水平

ACTUAL RESULT: 提 高人民 生 活 水 平

Test [4] ... FAILURE!

ORGINAL TEXT: 奥巴马上台后中美关系如何变革

EXPECTED RESULT: 奥巴马 上台 后 中美关系 如何 变革

ACTUAL RESULT: 奥巴马 上 台 后 中 美 关系如 何变革

Test [5] ... FAILURE!

ORGINAL TEXT: 一九四九年,新中国成立了

EXPECTED RESULT: 一九四九年 , 新中国 成立 了

ACTUAL RESULT: 一九四九年 , 新 中 国 成立 了

Test [6] ... FAILURE!

ORGINAL TEXT: 哪个人生下来就会算算术呢

EXPECTED RESULT: 哪个 人 生下 来 就 会 算 算术 呢

ACTUAL RESULT: 哪 个 人 生 下 来 就 会 算 算 术 呢

Test [7] ... FAILURE!

ORGINAL TEXT: 2008年中国网络游戏的实际销售收入达183.8亿元人民币,比2007年增长了76.6%

EXPECTED RESULT: 2008 年 中国 网络游戏 的 实际 销售 收入 达 183.8 亿 元 人民币 , 比 2007 年 增长 了 76.6%

ACTUAL RESULT: 2008 年 中 国 网 络 游戏 的 实 际 销 售 收 入 达 183.8 亿 元 人 民 币 , 比 2007 年 增 长 了 76.6%

Test [8] ... FAILURE!

ORGINAL TEXT: 你说的确实在理

EXPECTED RESULT: 你 说 的 确实 在理

ACTUAL RESULT: 你 说 的 确 实 在 理

Test [9] ... FAILURE!

ORGINAL TEXT: 圆周率的近似值为3.14!

EXPECTED RESULT: 圆周率 的 近似值 为 3.14

ACTUAL RESULT: 周率 3.14

Test [10] ... FAILURE!

ORGINAL TEXT: 中国的全称是×××

EXPECTED RESULT: 中国 国 的 全称 称 是 ××× 中华 人民 共和国 华 人 民 国

ACTUAL RESULT: 中 国 的 全 称 是 中 华人民 共 和 国

Test [11] ... FAILURE!

ORGINAL TEXT: 读到第三章,我也不知该说什么好了

EXPECTED RESULT: 读到 到 第三章 我也 也 不知 该 该说 说 什么 好 好了

ACTUAL RESULT: 第三章

Test [12] ... FAILURE!

ORGINAL TEXT: 我家的IP是192.168.1.100,4年前就用了,型号是386AC90F

EXPECTED RESULT: 我家 的 IP 是 192 . 168 . 1 . 100 , 4 年前 就 用 了 , 型号 是 386 AC 90 90F

ACTUAL RESULT: 我 家 的 IP 是 192 . 168 . 1 . 100 , 4 年 前 就 用 了 , 型 号 是 386 AC 90 90F

Test [13] ... FAILURE!

// -------------------------------------

// TEST result report

// SCWS (Module version:0.2.2, Library version:1.2.2) - by hightman

// Total test: 15

// Passed Num: 1 (6.67%)

// Failed Num: 14 (93.33%)