最近在項目中用到Reids,為了簡化測試人員的工作,所以准備搭建phpRedisAdmin,環境是64的CentOS6.0。雖然我對linux了解的很少,但是本想搭建個LAMP環境跟裝個php網站應該so easy。但結果卻是花了我好幾天的時間,這中間的折騰就不說,好歹結果還是搞定了。跟大家分享一下中間遇到的一寫問題以及解決方法:剛開始是用源碼安裝的,遇到了一大堆問題最后還是沒搞定。最后LAMP是用yum安裝的,同樣遇到了一大堆問題。下面都是我邊弄邊寫所以寫的有點亂,也懶得整理了,直接貼出來了。
1.yum安裝apache
在centos6.0 上安裝apache因為種種原因先是通過yum安裝然后又通過源碼安裝,后來又因為種種原因又要卸載apache。這時候出問題了。源碼安裝的我是直接刪除安裝目錄 /usr/local/apache2。然后通過yum remove httpd來刪除yum安裝的。提示刪除成功,但是我再用yum install httpd想驗證下我有沒有真的刪除掉的時候,系統又總是提示我已經安裝過apache。因為yum安裝不足就是我不知道到底安裝量哪些文件,安裝的文件在哪個目錄,所以一個個刪除文件不顯示。
最后網上查到可以用rpm -qa|grep httpd查看安裝了哪些apache依賴的rpm包輸入如下:
httpd-tools-2.2.15-15.el6.centos.1.x86_64 httpd-2.2.15-15.el6.centos.1.x86_64
然后用rpm -e來刪除這些依賴項,但這時候又出現問題了,系統出錯提示如下:
error reading information on service httpd: No such file or directory
error: %preun(httpd-2.2.15-15.el6.centos.1.x86_64) scriptlet failed, exit status 1
最后沒辦法又的求助於谷哥哥,度娘娘,終於又查得一個rpm的一個參數 --noscripts:
最后終於通過rpm -e --noscripts刪除掉了上面的兩個包。
再次yum install httpd驗證,ok,搞定了。
哎,對linux了解甚少,剛開始圖容易,通過yum安裝,以后還是手動源碼自己編譯安裝,雖然復雜了點,但是定制性強。
2.yum安裝mysql
首先來進行 MySQL 的安裝。打開超級終端,輸入:
[root@localhost ~]# yum install mysql mysql-server 安裝完畢,讓 MySQL 能夠隨系統自動啟動: [root@localhost ~]# chkconfig --levels 235 mysqld on [root@localhost ~]# /etc/init.d/mysqld start 設置 MySQL 數據 root 賬戶的密碼: [root@localhost ~]# mysql_secure_installation
但是這時候卻出現了Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)的錯誤
最后發現原來我的/tmp下有mysql.sock但是啟動查找的目錄是/var/lib/mysql,這個目錄下並沒有mysql.sock,於是做了一個鏈接ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock解決了問題。但是還是疑惑為什么yum安裝mysql啟動時候到/var/lib/mysql下查找mysql.sock但是配置文件my.cnf里配的路徑卻是/tmp/mysql.sock
3.yum安裝apache
[root@localhost ~]# yum install httpd
同樣配置系統讓 Apache 隨系統啟動:
[root@localhost ~]# chkconfig --levels 235 httpd on
配置完畢,啟動 Apache:
[root@localhost ~]# /etc/init.d/httpd start
這時候又遇到問題了:
Starting httpd: httpd: Could not reliably determine the server's fully qualified domain name, using 192.168.33.225 for ServerName
(98)Address already in use: make_sock: could not bind to address [::]:80
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
重啟系統,如果重啟不行的話
可以用netstat -lnp|grep 80看哪些進程占用了80端口
可以利用ps pid的方法查看具體某個進程。
然后用他kill -9 pid將占用80端口的進程殺掉
4.源碼安裝phpredis
因為要安裝phpRedisAdmin所以要裝php的Redis擴展phpredis,但是通過yum安裝phphou就是找不到phpize,phpzie是用來安裝php擴展的,找不到它自然無法安裝phpRedis.最后發現原來phpize是屬於php-devel的。yum install php-devel后發現phpize出現在/usr/bin目錄下了。
在裝好phpize后,開始裝phpredis:
下載好phpredis的tar包解壓,開始安裝:
[root@junlings /]# cd /usr/local/src [root@junlings src]# cd phpredis/ [root@junlings phpredis]# cd owlient-phpredis-90ecd17/ [root@junlings owlient-phpredis-90ecd17]# /usr/bin/phpize Configuring for: PHP Api Version: 20090626 Zend Module Api No: 20090626 Zend Extension Api No: 220090626 [root@junlings owlient-phpredis-90ecd17]# ./configure -with-php-config=/etc
這時候又出現問題了,說:configure: error: Cannot find php-config. Please use --with-php-config=PATH
但是我從phpinfo()打出來的信息可以看到php的配置文件就在/etc目錄下。但是cd到/etc目錄下卻沒有發現php.ini這個文件。通過find也沒找到系統中有php.ini這個文件。
於是嘗試直接./configure然后直接make & make install然后提示redis.so被安裝到了/usr/lib64/php/modules/。但是這樣刷新重啟apache后再phpinfo頁面還是沒看到支持redis的信息。/etc下不是沒有php.ini,於是手動建了一個添上一行 extension="redis.so",在重啟apache,刷新頁面,OK終於看到了redis……寫一個redis的測試頁面:
<?php $redis=new Redis(); $redis->connect('192.168.32.13',6379); $redis->set('test','Hello Redis Word!'); echo $redis->get('test'); ?>
瀏覽看到“Hello Redis Word!”說明redis擴展安裝成功。
之后就是安裝phpRedisAdmin,那就很簡單了。回頭一想,雖然很不順利,但是經過這么一折騰linux的基本命令都弄的差不對了,感謝不順啊~