2012年1月31日 星期二

Centos上安裝phpmyadmin


1. 參照鳥哥, 打入以下命令
[root@linux ~]# yum install httpd mysql-server php php-devel php-mysql

2.由於yum安裝的php版本關係(5.1.6), phpmyadmin首頁下載 phpMyAdmin-2.11.9.6-all-languages-utf-8-only.tar

3.解壓縮後, 放至 /var/www/html 並建議更名為phpmyadmin

4. phpmyadmin目錄下, 下這行指令
   cp config.sample.inc.php config.inc.php

5. 編輯config.inc.php, 並存檔
   /* Authentication type */
   $cfg['Servers'][$i]['auth_type'] = 'http';

6. 確定是否 關閉SELinux:
   修改/etc/selinux/config文件中的SELINUX="" disabled
   ...
   SELINUX=disabled
   ...
   然後重新開機

7. 記得更改目錄權限
   chmod -R 755  /var/www/html/phpmyadmin 記得別用777!!!

8.打開phpmyadmin之後, 如果看到以下訊息:
  找不到 PHP 內的 mbstring 編碼模組, 沒有這個模組, phpMyAdmin 無法準確地分割雙字元文字, 而可能產生問題.
  請在安裝 php-mbstring , :
  yum install php-mbstring  就可以了

2012年1月30日 星期一

php與mysql降級過程

php與mysql降級過程:

 
1.移除php-->yum remove php

2.移除mysql-->yum remove mysql

3.移除被remi更新的相關套件-->yum remove *remi

4.檢查有無之前更新的remi安裝的套件(rpm -qa|grep remi),若有記得利用(yum remove *remi)移除,或是用(rpm -e)手動移除。

5.移除epel與remi:
yum remove epel-release-5-3  -->  會將相關套件 remi-release-5-7 一起移除。

6.利用yum install 裝回php與mysql
yum install php
yum install mysql

7.檢查設定檔與相關的套件

8.重新啟動Apache與mysql

2012年1月29日 星期日

備份 mysql 和 drupal

基本上我們只要備份 /var/www/html 和 /var/lib/mysql 目錄即可.方法有兩種
1.利用 Linux 的 bash script 加上 cron 來自動備份.
2.利用 backup module 手動來備份
1.利用 Linux 的 bash script 加上 cron 來自動備份.
Backup
備份 web
[root@benjr ~]# mkdir -p /backup/`date +%F`
[root@benjr ~]# cd /backup/`date +%F`
[root@benjr 2007-12-26]# tar zcvf drupal.tar.gz /var/www/html
接下來備份資料庫
[root@benjr 2007-12-26]# mysqldump -u root -p database.name > mysql.sqlEnter password:
#其中的 database 請依你實際的 database 名稱,我的 database 名稱為 drupal.
[root@benjr 2007-12-26]# tar zcvf mysql.tar.gz mysql.sql
[root@benjr 2007-12-26]# rm mysql.sql
你還可以透過 bash script 加上 cron 讓他每天執行一次
shell script-Full Backup 程式
[root@benjr ~]# vi /root/backup.sh
#! /bin/bash
mkdir -p /backup/`date +%F`
cd /backup/`date +%F`
tar zcvf drupal.tar.gz /var/www/html
mysqldump -u root -p[yourpassword] database > mysql.sql
tar zcvf mysql.sql.tar.gz mysql.sql
rm mysql.sql

#-p[yourpassword] -p 和 [yourpassword] 中間沒有空格.
記得權限要改成可執行,當然沒有人要自己手動備份這些東西,最好是系統能自己備份,所以可以用 crontab 來幫我們.
[root@benjr ~]# chmod a+x backup.sh
[root@benjr ~]# crontab -e
0 2 * * * /root/backup.sh
我們的備份策略為每天晚上兩點做一次 full backup
Restore
還原 web
[root@benjr /]# cd /
[root@benjr /]# cp /backup/`date %F`/* ./
[root@benjr /]# tar zxvf drupal.tar.gz
還原資料庫
[root@benjr html]# cd /backup/`date %F`/
[root@benjr 2007-12-26]# tar zxvf mysql.sql.tar.gz
[root@benjr 2007-12-26]# mysql -u root -p
Enter password:
mysql > create database drupal;
mysql> grant all privileges on drupal.* to drupaluser@localhost identified by 'your.password' ;
mysql > exit;
[root@benjr 2007-12-26]# mysql -u root -p drupal < mysql.sql
Enter password:
當然光是備份還不能滿足我們的需求,最好這些資料都能丟到遠端,以防止系統無法開機.這邊提供一個指令 mutt ,這是一個 mail 的指令,比起傳統的指令 mail 他還可以夾檔來傳送你的 mail.
[root@benjr backup]# mutt -s "benjr.tw `date +%F` backup" -a /backup/`date +%F`.tar.gz benjr.tw@gmail.com < /root/mail.txt
mutt 參數
-s:信件主旨
-a:夾附檔案
-b:密件副本
-c:副本
< /root/mail.txt mail 的內文,請自行產生並決定內容.
date 參數
%F: full date; 和指定 %Y-%m-%d 一樣.
%Y:顯示年份
%m:顯示月份
%d:顯示日期
bash 參數
` `:此符號為數字鍵 1 旁的 ~ 鍵,在` `中的指令優先執行,並將結果套用目前指令。
所以 backup.sh 就需要在修改一下了.
[root@benjr backup]# vi /root/backup.sh#! /bin/bash
mkdir -p /backup/`date +%F`
cd  /backup/`date +%F`
tar zcvf  drupal.tar.gz /var/www/html
mysqldump -u root -p123456 drupal > mysql.sql
tar zcvf mysql.sql.tar.gz mysql.sql
rm mysql.sql
cd /backup/
tar zcvf `date +%F`.tar.gz /backup/`date +%F`
mutt -s "benjr.tw `date +%F` backup" -a /backup/`date +%F`.tar.gz benjr.tw@gmail.com < /root/mail.txt
如果你還不滿意這 bash script 太陽春,Drupal 有提供 backup/restore 的 bash script 可共使用. http://drupal.org/node/59369
2.利用 backup module 手動來備份(這個模組在實際使用上有很多的問題,還是建議直接使用 bash script來做)
可以利用此模組在網站的根目錄(/var/www/html/files/backup) 建立backup的壓縮檔,包含 Drupal 的檔案和mysql的資料庫,並且可以透過瀏覽器下載整個的備份.
Backup module的網頁為http://drupal.org/project/backup
1.在他的官方網頁下載 "backup.module" ,放在目錄 /var/www/html/modules/ 下.
[root@benjr ~]# cp backup-5.x-3.0.tar.gz /var/www/html/modules
[root@benjr ~]# cd /var/www/html/modules
[root@benjr modules]#  tar -zxvf backup-5.x-3.0.tar.gz
2. 第一步就是在管理頁面的管理/網站建置/模組將 backup 啟動.
3. 在管理中的內容管理會多出一個 "backup" 選項.直接點選就可以開始做 backup 的動作.
NOTE: 目前這個模組只支援 MySQL 為資料庫系統.

【CentOS】lighttpd php mysql-LAMP 架設

【CentOS】lighttpd php mysql-LAMP 架設

來源:http://www.centerbbs.com/redirect.php?tid=25680&goto=lastpost


【前言】

[LAMP - Wikipedia] 應該不用多說了吧,不過本次實作 Web Server 不是使用 Apache,而是使用小而輕巧的 Lighttpd-輕量級 Web Server,不知是不是應該改叫 LLMP (Linux Lighttpd MySQL PHP) :p

【作業環境】

CentOS 5.1 (Linux 2.6.18-53.1.4.el5)

mysql-server-5.0.22-2.2.el5_1.1

lighttpd-1.4.18-1.el5.rf

php-5.1.6-15.el5

php-mysql-5.1.6-15.el5

【安裝及設定】

MySQL

Step1.安裝 MySQL Database

我使用郡組安裝把相關會用到的套件都裝入,在安裝以前先查看會安裝哪些套件
複製內容到剪貼板
代碼:
#yum groupinfo "MySQL Database"            //查尋 MySQL 郡組套件會安裝哪些套件
Group: MySQL Database
  Description: This package group contains packages useful for use with MySQL.
  Mandatory Packages:                       //強制安裝套件
    mysql
  Default Packages:                         //預?#93;會安裝的套件
    unixODBC
    mysql-server
    MySQL-python
    mysql-connector-odbc
    libdbi-dbd-mysql
    perl-DBD-MySQL
  Optional Packages:                        //建議安裝 (視個人需求自行安裝)
    mod_auth_mysql
    mysql-devel                             //MySQL ?#123;式?#125;發套件及函式庫
    qt-MySQL
    mysql-bench                             //MySQL 效能測試套件
    php-mysql
接下來就利用 yum 來進行郡組安裝 MySQL 吧
複製內容到剪貼板
代碼:
#yum groupinstall "MySQL Database"
你可能會問說怎麼沒有 MySQL-shared (MySQL 用戶端函式庫套件),這個套件若需要就到[MySQL Download]找對應的 MySQL 版本及需要的 rpm 來安裝吧。

Step2.修改 /etc/my.cnf

我想將 DB 放置資料夾從預設的 /var/lib/mysql 改放到 /home/db/mysql 下,我喜歡集中管理 :p
複製內容到剪貼板
代碼:
#mkdir /home/db ; mkdir /home/db/mysql
#chown mysql:mysql /home/db/mysql
#vim /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql                //預?#93;值
datadir=/home/db/mysql                //修改後
再來就是執行 chkconfig 將 mysqld 設定在 runlevel 2 ~ 5 為啟動 MySQL 服務
複製內容到剪貼板
代碼:
#chkconfig mysqld on
#chkconfig --list |grep mysqld        //查看?#93;定是否生效
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
Step3.啟動 MySQL
複製內容到剪貼板
代碼:
#/etc/rc.d/init.d/mysqld start        //啟動 MySQL 服務
Initializing MySQL database:  Installing all prepared tables Fill help tables
Starting MySQL:                                            [  OK  ]
檢查 MySQL 是否啟動成功並 Listen 相關 Port
複製內容到剪貼板
代碼:
#netstat -tnl
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address               Foreign Address             State
tcp        0      0 0.0.0.0:3306                0.0.0.0:*                   LISTEN
Step4.設定 MySQL 管理者密碼

剛安裝完 MySQL 後記得趕快設定管理者密碼 (這裡的 root 跟 CentOS 的 SuperUser Root 沒關系哦!!)
複製內容到剪貼板
代碼:
#mysqladmin -u root password YOUR_PASSWORD     //?#93;定新密碼
#mysqladmin -u root -p password NEW_PASSWORD   //日後若要更改密碼
Step5.測試登入 MySQL

設定好 MySQL 管理者密碼後試著登入看看吧:p
複製內容到剪貼板
代碼:
#mysql -u root -p
Enter password:                                //輸入剛才?#93;定的 MySQL 密碼
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1581 to server version: 5.0.27
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql>                                         //成功登入 mysql
Step6.建立其它 MySQL 帳號

以下命令為表示允許連線主機來源是 localhost 以 sqluser1 的 MySQL 帳號及密碼為 1234 登入的使用者,能對指定的資料庫 testdb 擁有所有權限。
複製內容到剪貼板
代碼:
mysql> grant all privileges on testdb.* to sqluser1@localhost IDENTIFIED BY '1234';
Query OK, 0 rows affected (0.00 sec)
mysql> FLUSH PRIVILEGES ;             //重新載入(使變更生效)
Query OK, 0 rows affected (0.01 sec)
Lighttpd

Step1.安裝 lighttpd、lighttpd-fastcgi 套件

因為 Lighttpd 使用 FastCGI 來處理 PHP 所以要一併安裝
複製內容到剪貼板
代碼:
#yum -y install lighttpd lighttpd-fastcgi
Step2.修改 lighttpd 設定檔

修改 lighttpd 設定檔來支援 PHP (FastCGI)
複製內容到剪貼板
代碼:
#vim /etc/lighttpd/lighttpd.conf
server.modules = (
                   "mod_fastcgi",   //這行的 mark 要拿掉(支援 PHP-FastCGI)
                  )
#### fastcgi module
## read fastcgi.txt for more info
## for PHP don't forget to set cgi.fix_pathinfo = 1 in the php.ini
fastcgi.server             = ( ".php" =>
                               ( "localhost" =>
                                 (
                                   "socket" => "/var/run/lighttpd/php-fastcgi.socket",     //預?#93;值
                                   "socket" => "/tmp/php-fastcgi.socket",                  //修改後
                                   "bin-path" => "/usr/bin/php-cgi"
                                 )
                               )
                              )
Step3.設定開機自動啟動 lighttpd 服務

使用 chkconfig 指令來查看 lighttpd 在各 runlevel 下狀態
複製內容到剪貼板
代碼:

#chkconfig --list |grep lighttpd
lighttpd        0:off   1:off   2:off   3:off   4:off   5:off   6:off  
設定 lighttpd 在 runlevel 為 2、3、5 時會啟動服務
複製內容到剪貼板
代碼:

#chkconfig --levels 235 lighttpd on      
檢查剛才的設定是否生效
複製內容到剪貼板
代碼:

#chkconfig --list |grep lighttpd
lighttpd        0:off   1:off   2:on    3:on    4:off   5:on    6:off  
Step4.啟動 lighttpd 服務
複製內容到剪貼板
代碼:

#/etc/rc.d/init.d/lighttpd start
Starting lighttpd:                                         [  OK  ]  
檢查一下 lighttpd process 是否執行
複製內容到剪貼板
代碼:
#ps ax |grep lighttpd
4266 ?        S      0:00 /usr/sbin/lighttpd -f /etc/lighttpd/lighttpd.conf
檢查是否 LISTEN Port 80
複製內容到剪貼板
代碼:
#netstat -tnl |grep :80
tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN
PHP

Step1.安裝 PHP 5

安裝 php 及 php-mysql 套件
複製內容到剪貼板
代碼:
#yum -y install php php-mysql
Step2.查尋安裝 PHP 是否成功

查看安裝的 PHP 版本
複製內容到剪貼板
代碼:
#php -v
PHP 5.1.6 (cli) (built: Sep 20 2007 10:16:10)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.1.0, Copyright (c) 1998-2006 Zend Technologies
查看目前 PHP 模組
複製內容到剪貼板
代碼:
#php -m
[PHP Modules]
bz2
...略
xml
zlib
[Zend Modules]
Step3.測試 Lighttpd 能否正確處理 php 檔案

隨意建立一個檔名為 test.php 的檔案,然後放到 lighttpd 的 web 目錄而 test.php 內容如下如果能看到 php 的預設頁就表示 lighttpd 能正確處理 php 檔案了
複製內容到剪貼板
代碼:
phpinfo>  
【參考】

[學生用伺服器建置流程(CentOS 5 版)PHP & MySQL]

[台灣PHP聯盟 - 在 RHEL 修改 mysql 放置資料的路徑]

[Jamyy's Weblog: 架設自己的即時訊息伺服器 - 使用 jabberd 2]

【Log】