天天看點

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%)