一、安裝centos5.5作業系統
CentOS 開發社區發行了新的 5.5 版本。CentOS 5.5 基於 Red Hat Enterpris Linux 5.5.0,其中包括 Kernel 2.6.18、Apache 2.2、PHP 5.1.6、MySQL 5.0、PostgreSQL 8、GNOME 2.16、KDE 3.5、OpenOffice.org 2.3、Firefox 3.0、Evolution 2.12 等等。此外,CentOS 5.3 更新了美工設計,並根據使用者的請求恢複了 Contrib 倉庫。
CentOS 5.5 支援 i386 及 x86_64 架構,其 ISO 映像可從以下地址擷取。http://www.wljcz.com/html/caozuoxitong/Linux/2009/0726/409.html
二、系統安裝
安裝CentOS 5.5是做伺服器,所以沒有用的,一概不裝;具體哪些不裝,自己看著辦吧:
三、安裝Apache+php+Mysql
用yum安裝前.先是替換為中國CentOS5.3鏡像伺服器!快速好用的yum更新源:http://www.wljcz.com/html /caozuoxitong/Linux/2009/0726/410.html 此文章有詳細的介紹,按照提供的步驟修改好更新源後,就可以方便的用yum命令快速安裝軟體了.
1、更新系統核心到最新. yum -y update
安裝Apahce, PHP, Mysql, 以及php串連mysql庫組件
代碼:
yum -y install httpd php mysql mysql-server php-mysql
2、安裝mysql擴充
代碼:
yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
或一次性粘貼安裝:
代碼:
yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql
3、設定mysql資料庫root帳號密碼。
代碼:
mysqladmin -u root password ‘newpassword’
"newpassword" 代表的是你想要設定的密碼,新安裝的mysql的root根使用者密碼預設為空白,設定密碼後可以讓mysql資料庫更安全
代碼:
mysql -u root -p (此時會要求你輸入剛剛設定的密碼,輸入後斷行符號即可)
mysql> DROP DATABASE test; (刪除test資料庫)
mysql> DELETE FROM mysql.user WHERE user = ”; (刪除匿名帳戶)
mysql> FLUSH PRIVILEGES; (重載許可權)
4、按照以上的安裝方式, 配置出來的預設網站目錄為/var/www/html/建立一個php指令碼:
代碼:
<?php
phpinfo();
?>
四、 配置防火牆
添加允許訪問HTTP、FTP連接埠
代碼:
iptables -I RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 21 -j ACCEPT
iptables -I RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
重啟iptables: service iptables restart
五、安裝phpMyAdmin
進入phpMyAdmin官方下載phpMyAdmin,3.1以上需php 5.2以上,上傳到你的網站目錄下,然後進行配置。只需幾步即可搞定。
config.sample.inc.php更名為config.inc.php,然後開啟config.inc.php檔案,進行以下修改;
代碼:
// $cfg['Servers'][$i]['controluser'] = ‘pma’;
// $cfg['Servers'][$i]['controlpass'] = ‘pmapass’;
// $cfg['Servers'][$i]['pmadb'] = ‘phpmyadmin’;
// $cfg['Servers'][$i]['bookmarktable'] = ‘pma_bookmark’;
// $cfg['Servers'][$i]['relation'] = ‘pma_relation’;
// $cfg['Servers'][$i]['table_info'] = ‘pma_table_info’;
// $cfg['Servers'][$i]['table_coords'] = ‘pma_table_coords’;
// $cfg['Servers'][$i]['pdf_pages'] = ‘pma_pdf_pages’;
// $cfg['Servers'][$i]['column_info'] = ‘pma_column_info’;
// $cfg['Servers'][$i]['history'] = ‘pma_history’;
// $cfg['Servers'][$i]['designer_coords'] = ‘pma_designer_coords’;
去掉每行前面的//注釋
$cfg['blowfish_secret'] = ”; |修改為| $cfg['blowfish_secret'] = ‘http’;
$cfg['Servers'][$i]['controluser'] = ‘pma’; |把’pma’修改為你的帳號|$cfg['Servers'][$i]['controlpass'] = ‘pmapass’; |把’pmapass設定為你的mysql登入密碼
$cfg['blowfish_secret'] = ”; | 添加短語密碼例如:$cfg['blowfish_secret'] = ‘onohot’;
六、安裝php的擴充
代碼:
yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc
七、安裝apache擴充
代碼:
yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
到此為止centos5.3下的php環境基本就配置完成了,用命令啟動服務即可使用。
八、如果想升級PHP的話
提及php需要升級到5.2以上,而centos 5.x目前提供php版本為5.1.6,
通過以下方法升級PHP到5.2比較方便,現推薦給大家。
先將以下地址匯入。
# rpm --import http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
# vi /etc/yum.repos.d/CentOS-Base.repo 增加下面資訊
[utterramblings]
name=Jason's Utter Ramblings Repo
baseurl=http://www.jasonlitka.com/media/EL$releasever/$basearch/
enabled=1
gpgcheck=1
gpgkey=http://www.jasonlitka.com/media/RPM-GPG-KEY-jlitka
執行命令,自動升級。
yum update php -y
yum install libmcrypt -y
1. 更新系統核心到最新.
[root@linuxfei ~]#yum -y update
系統更新後,如果yum安裝時提示錯誤資訊,請執行以下命令修複.
[root@linuxfei ~]#rpm –import /etc/pki/rpm-gpg/RPM-GPG-KEY*
2. 安裝Apahce, PHP, Mysql, 以及php串連mysql庫組件
[root@linuxfei ~]#yum -y install httpd php mysql mysql-server php-mysql
//安裝mysql擴充
[root@linuxfei ~]#yum -y install mysql-connector-odbc mysql-devel libdbi-dbd-mysql
//安裝php的擴充
[root@linuxfei ~]# yum -y install php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc
//安裝apache擴充
[root@linuxfei ~]#yum -y install httpd-manual mod_ssl mod_perl mod_auth_mysql
一次性粘貼安裝:
[root@linuxfei ~]# yum -y install httpd php mysql mysql-server php-mysql httpd-manual mod_ssl mod_perl mod_auth_mysql php-mcrypt php-gd php-xml php-mbstring php-ldap php-pear php-xmlrpc mysql-connector-odbc mysql-devel libdbi-dbd-mysql
3. 啟動服務配置
[root@linuxfei ~]# /sbin/chkconfig httpd on [設定apache為自啟動]
[root@linuxfei ~]# /sbin/chkconfig –-add mysqld [mysql服務]
[root@linuxfei ~]# /sbin/chkconfig mysqld on [mysqld服務]
[root@linuxfei ~]# /sbin/service httpd start [自啟動 httpd 服務]
[root@linuxfei ~]# /sbin/service mysqld start [自啟動mysqld服務]
4.設定mysql資料庫root帳號密碼。
[root@linuxfei ~]# mysqladmin -u root password 'linuxfei' [引號內填密碼]
[root@linuxfei ~]# mysql -u root -p ← 通過空密碼用root登入
Enter password:linuxfei ← 在這裡輸入密碼
Welcome to the MySQL monitor. Commands end with ; or \g. ← 確認用密碼能夠成功登入
Your MySQL connection id is 5 to server version: 4.1.20
Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
5.安裝phpmyadmin
[root@linuxfei /]# wget http://gd2.down.chinaz.com:808/資料管理/phpMyAdmin-3.tar.gz
--2010-03-23 16:38:18-- http://gd2.down.chinaz.com:808/??????/phpMyAdmin-3.x.tar.gz
Resolving gd2.down.chinaz.com... 121.11.80.154
Connecting to gd2.down.chinaz.com|121.11.80.154|:808... connected.
HTTP request sent, awaiting response... 200 OK
Length: 4700100 (4.5M) [application/x-gzip]
Saving to: `phpMyAdmin-3.x.tar.gz'
100%[======================================>] 4,700,100 134K/s in 37s
2010-03-23 16:38:56 (123 KB/s) - `phpMyAdmin-3.x.tar.gz' saved [4700100/4700100]
解壓phpmyadmin
[root@centos5 /]#tar zxvf phpMyAdmin-3.x.tar.gz
[root@linuxfei /]# mv phpMyAdmin-3.3.1-all-languages /var/www/html/phpmyadmin
將解壓出來的目錄移動到/var/www目錄下並改名為phpmyadmin
修改phpmyadmin根目錄下的config.sample.inc.php 重新命名為 config.inc.php
開啟並編輯config.inc.php
$cfg['blowfish_secret'] = '';
然找到下邊這兩行 並把//去除
// $cfg['Servers'][$i]['controluser'] = 'pma'; mysql使用者名稱
// $cfg['Servers'][$i]['controlpass'] = 'pmapass' mysql密碼
apache配置
/etc/httpd/conf/httpd.conf
最主要的設定檔,不過很多其他的distribution都將這個檔案拆成數個小檔案,分別管理不同的參數。但是最主要設定檔還是以這個檔案名稱為主。
/etc/httpd/conf.d/*.conf
這個事CentOS的特色之一,如果你不想修改原始設定檔httpd.conf的話,那麼可以將你自己的額外參數獨立出來,而啟動apache時,這個檔案就會被讀入到主要設定檔。
/usr/lib/httpd/modules
apache支援很多的模組,所以您想要使用的模組預設都放置在此目錄
/var/www/html
這裡是CentOS預設的“首頁”所在目錄。
/var/www/error
如果因為主機設定錯誤,或者是瀏覽器端要求的資料錯誤,在瀏覽器上出現的錯誤資訊就已這個目錄的預設資訊為主。
/var/www/icons
提供apache的一些小表徵圖
/var/www/cgi-bin
預設給一些可執行檔CGI程式放置的目錄
/var/log/httpd
預設apache的記錄檔都放在這裡,對於流量大的網站來說,這個目錄要很小心,因為這個檔案很容易變的很大,您需要足夠的空間哦
/usr/sbin/apachectl
這是Apache的主要執行檔案,這個執行檔案其實是shell script,它可以主動式偵測系統上的一些設定值,好讓您啟動Apache時更簡單
/usr/sbin/httpd
這是主要的apache的二進位檔案
/usr/bin/htpasswd
當您想登陸某些網頁時,需要輸入帳號與密碼。那麼Apache本身就提供一個最基本的密碼保護方式。該密碼的產生就是通過這個命令實現的
至於MySQL方面,您需要知道的幾個重要目錄與檔案有以下幾個:
/etc/my.cnf:這是Mysql的設定檔,包括您想要進行mysql資料庫的最佳化,或者是正對mysql進行一些額外的參數指定,都可以在這個檔案裡實現
/usr/lib/mysql:這個目錄是MySQL資料庫放置的位置,當啟動任何MySQL的伺服器時,請務必記得在備份時,將此目錄完整的備份下來。
另外,在PHP方面,應該瞭解以下幾個檔案。
/usr/lib/httpd/modules/libphp4.so:PHP提供給apache使用的模組,這個關係我們能否在apache網頁上面設計php程式語言的最重要檔案
/etc/httpd/conf.d/php.conf:你要不要手動將該模組寫入Httpd.conf中呢?不需要,因為系統已經主動將php設定參數寫入到這個檔案中了,而這個檔案會在apache重新啟動時被讀入。
/etc/php.ini:這是PHP的主要設定檔,包括PHP能不能允許使用者上傳檔案,能不能允許某些低安全性的標誌等,都在這個設定檔中設定。
/etc/php.d/mysql.ini /usr/lib/php4/mysql.so:PHP能否可以支援MySQL介面就看這兩個檔案了。這兩個檔案是由php-mysql軟體提供的
/usr/bin/phpize /usr/include/php:如果您以後想要安裝類似PHP加速器可以讓瀏覽速度加快的話,那麼這個檔案與目錄就需要存在,否則加速器軟體沒法用。
httpd.conf的基本設定
首先,你需要在/etc/hosts內需要有個一個完整的主機名稱,否則在重啟apache服務時,會提示找不到完整的主機名稱。
httpd.conf的基本設定是這樣的:
次設定項目內的相關參數
。。。。
例如,你想要針對首頁/var/www/html提供額外的功能,那麼可以進行如下設定:
Options Indexes
......
針對主機環境的設定項目
#vi /etc/httpd/conf/httpd.conf
ServerTokens OS
# 這個項目在告訴用戶端WWW伺服器的版本和作業系統,不需要改編它
#如果你不想告訴太多的主機資訊,將這個項目的OS改成Minor
ServerRoot "/etc/httpd"
#這個是設定檔案的最頂層目錄,通常使用絕對路徑,下面某些資料設定使用相對路徑時
#就是與這個目錄設定值有關的下層目錄,不需要更改它
ServerRoot
設定Apache 安裝的絕對路徑
TimeOut
設定 伺服器接收至完成的最長等待時間
KeepAlive
設定伺服器是否開啟連續請求功能,真實伺服器一般都要開啟
Port
設定http服務的預設連接埠。
User/Group
設定 伺服器程式的執行者與屬組,這個一般是apache
下面我們就針對Apache做幾個實驗
1:我們測試把預設網站目錄改到root家目錄下
建立/root/website目錄
#mkdir -p /root/website
#echo "website page" >> /root/website/index.html
#vi /etc/httpd/conf/httpd.conf
找到 DocumentRoot "/var/www/html" 這一段 //apache的根目錄
把/var/www/html 這個目錄改到 /root/website
在找到 //定義apache /var/www/html這個地區
把 /var/www/html改成/root/website
這樣我們就把apahce的預設路徑改掉了
然後重啟服務
#service httpd restart
//這裡在你重啟服務的時候,可能會報錯,說找不到目錄,這個主要是由於selinux導致的
那怎麼解決呢?有2個辦法,關掉selinux
#setenforce 0
或者更改/root/website這個檔案的selinux屬性,讓它匹配httpd這個伺服器的要求
怎麼改?我們可以複製/var/www/html這個目錄的selinux屬性
#chcon -R --reference /var/www/html /root/website
然後在重啟服務,之後你就看到它沒有報錯了
不過你去訪問localhost的時候,會發現訪問拒絕 這是為什麼呢?主要是因為你的/root的許可權是750,ahache這個使用者沒有許可權訪問,你需要更改掉許可權,可以這樣改
#chmod -R 755 /root
然後去訪問 發現正常了
2:基於名稱的虛擬機器主機
需要兩個網域名稱解析到你的伺服器,對應關係是
/var/www/server server.example.com
/var/www/client client.example.com
當訪問這兩個網域名稱時,可以分別顯示出不同檔案裡面首頁的內容
#echo "server page" >> /var/www/server/index.html
#echo "client page" >> /var/www/client/index.html
然後我們編輯一個設定檔
#vi /etc/httpd/conf.d/virtual.conf //記住conf.d裡面的內容也是apache的設定檔
添加如下內容:
NameVirtualHost 192.168.76.133:80
ServerName service.example.com
DocumentRoot /var/www/server
ServerName client.example.com
DocumentRoot /var/www/client
#service httpd restart
這樣基於名稱的虛擬機器主機就配置好了
如果你沒有DNS你可以再你的機器上hosts檔案裡加記錄 linux在/etc/hosts這個檔案 windows在C:\windows\system32\drivers\etc\hosts檔案
加上這兩行
192.168.76.133 server.example.com
192.168.76.133 client.example.com
這樣你在去測試,就會發現訪問不同的網域名稱顯示不同的內容了 這樣基於名稱的虛擬機器主機就配置好了!
3:基於IP地址的虛擬機器主機
先添加一個臨時網卡
#ifconfig eth0:0 192.168.76.132 //臨時使用,重啟後就會消失
然後便捷virtual.conf檔案
#vi /etc/httpd/conf.d/virtual.conf
把內容修改為
#NameVirtualHost 192.168.76.133:80
ServerName service.example.com
DocumentRoot /var/www/server
ServerName client.example.com
DocumentRoot /var/www/client
讓後你在用ip訪問,發現也能顯示不同的內容,或者你編輯hosts檔案,用網域名稱訪問也沒問題
這樣基於IP地址的虛擬機器主機也成功了!
4:別名
在/etc/httpd/conf/httpd.conf裡加入
Alias /test "/root/website/" // 別名 這樣你用192.168.76.133/test訪問 也會顯示192.168.76.133的頁面
這個地方需要注意的就是/test 還是/test/ 這個是用區別的 你用/test 那麼你訪問的時候只能用192.168.76.133/test訪問 如果你用/test/ 那麼192.168.76.133/test/訪問,而/test將不會放你訪問
忘了這裡你的先把/etc/httpd/conf.d目錄裡面剛剛設定的虛擬目錄注釋掉 不然沒法訪問,是因為做了虛擬目錄,而httpd.conf裡面的設定就無法訪問 當然可以用localhost來訪問,其他的訪問都不行
5:實現網頁的資源下載
首先添加別名
#vi /etc/httpd/conf/httpd.conf
在Alias /test "/root/website/" 後面加入
Alias /down "/var/ftp/pub"
讓後對/var/ftp/pub地區設定參數
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
在Options 加入 MultiViews //沒有index時自動列出目錄文檔
然後重啟服務,這樣http://192.168.76.133/down/裡面就可以列出/var/ftp/pub裡面的檔案了,試著點一個另存新檔,是否可以下載? 呵呵 成功!
6:.htpasswd的實現
#vi /etc/httpd/conf/httpd.conf
我們針對剛剛做的/var/ftp/pub來做
加入如下資訊
Alias /down "/var/ftp/pub/"
Options Indexes MultiViews
AllowOverride AuthConfig
Order allow,deny
Allow from all
AuthType Basic
AuthName "this is test"
AuthUserFile /etc/httpd/htpasswd
Require User test
然後重啟httpd服務,
讓後產生.htpasswd使用者密碼
htpasswd -c /etc/httpd/htpasswd test
讓後去訪問192.168.76.133/down會要求輸入密碼
這樣就成功了