CentOS 5.5使用yum安裝Apache+PHP+MySQL

 CentOS 5.5使用yum安裝Apache+PHP+MySQL

一、安裝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會需要密碼
這樣就成功了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章