在linux系統上,編譯安裝軟體,需要一個編譯環境,通常是使用gcc,是以一定要确認gcc已經安裝,編譯的時候,有一些軟體還依賴于某些開發工具庫檔案,是以,要把這些常用的開發庫安裝上,如果使用rpm來安裝的話,難免遇到依賴關系,我們這裡使用yum來安裝,本文檔是用來說明配置lamp的,是以,對yum不進行詳細說明.
如果你邊yum指令都沒安裝的話,那就把CD光牒挂上,自己用rpm -ivh yum來安裝吧.下面我們開始配置yum,首先要保證CD光牒已經被放入光驅裡面,如果是虛拟機,确認你的系統iso檔案已經連接配接上.
# mount /dev/cdrom /mnt //挂載CD光牒到/mnt目錄下
# cd /etc/yum.repos.d //進入到yum配置檔案目錄
# mv rhel-debuginfo.repo rhel-debuginfo.repo.bak //備份系統自帶的配置檔案,也可以删除
# vi local.repo //建立一個yum配置檔案,并把以下内容寫入到該檔案
[Server]
name=Server
baseurl=file:///mnt/Server
gpgcheck=0
enabled=1
[VT]
name=VT
baseurl=file:///mnt/VT
[Cluster]
name=Cluster
baseurl=file:///mnt/Cluster
gpgeheck=0
[ClusterStorage]
name=ClusterStorage
baseurl=file:///mnt/ClusterStorage
# yum -y grouplist "Development Libraries" "Development Tools" //安裝開發包工具和庫
準備apache,mysql,php軟體包,要注意軟體包的版本,太老的版本可能跟太新的版本不相容.這裡編譯使用的軟體包的版本如下
httpd-2.4.1.tar.bz2
mysql-5.5.19-linux2.6-i686.tar.gz
php-5.3.10.tar.bz2
安裝之前,最好确認目前系統上沒有其它web伺服器軟體占用80端口,不然安裝好之後,可能啟動不了.
# yum -y remove httpd //删除系統自帶的httpd軟體包
由于我們要安裝的apache的版本是2.4.1 版本比較新,新版本依賴apr和apr-util的版本也是比較新的,是以,系統上自帶的apr和apr-util對新版本的apache支援不了,我們這裡要手動的編譯安裝apr和apr-util,可以使用源碼包安裝,也可以找一些新版本的rpm包,如果使用源碼包,編譯完成之後,我們再編譯apache的時候,要加上--apr=/usr/local/apr --apr-util=/usr/local/apr-util ,這樣指定一下,如果使用rpm包安裝,就不需要指定了,我這裡使用rpm包來安裝.
[root@localhost ~]# rpm -Uvh apr-*
Preparing... ########################################### [100%]
1:apr ########################################### [ 25%]
2:apr-util ########################################### [ 50%]
3:apr-devel ########################################### [ 75%]
4:apr-util-devel ########################################### [100%]
# yum install -y pcre pcre-devel //安裝pcre和pcre-devel
# tar xf httpd-2.4.1.tar.bz2 //解壓apache的安裝包
# cd httpd-2.4.1 //進入apache目錄
# ./configure --prefix=/usr/local/apache --sysconfdir=/etc/httpd --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib //配置安裝選項,啟用某些功能,關鍊某些軟體等
# make //開始編譯,并成生二進制檔案
# make install //開始安裝
經過以上步驟,我們的apache就已經安裝好了,下面我們進行一些簡單的配置
# vi /etc/profile //編譯profile檔案,新加入一行,内容如下
export PATH=$PATH:/usr/local/apache/bin
# . /etc/profile //讓剛才的配置生效
# apachectl start //啟動apache
# service iptables stop //關閉防火牆,如果沒開更好,這一步不用操作
OK,做完這些,我們就可以測試apache了,看看是不是可以通路
<a href="http://blog.51cto.com/attachment/201204/075601693.jpg" target="_blank"></a>
apache提示我們,它在工作.那就說明,我們的apache就安裝好了.
首先保證系統上沒有安裝rpm格式的mysql,如果有,自己手動解除安裝掉,然後再安裝mysql,這裡使用的mysql是免安裝版的,初始化一下,然後做些配置就可以使用的那種
# groupadd -r mysql //建立一個系統組,叫mysql
# useradd -g mysql -s /sbin/nologin -M mysql //建立一個系統使用者mysql,并把它加入到mysql組,且不讓其登入系統
# mkdir /mydata/data //建立mysql資料檔案存放的目錄
# chown mysql:mysql /mydata/data/ //把目錄的權限改為mysql使用者和mysql組
# tar xf mysql-5.5.19-linux2.6-i686.tar.gz -C /usr/local //解壓mysql到指定目錄
# cd /usr/local/ //切換工作目錄到剛才解壓的目錄
# ln -sv mysql-5.5.19-linux2.6-i686/ /usr/local/mysql //為mysql建立連結,也可以重命名
# cd mysql //切換工作目錄到mysql目錄
# chown -R mysql:mysql . //把目前目錄下所有的檔案及目錄改為mysql使用者群組
# scripts/mysql_install_db --user=mysql --datadir=/mydata/data //初始化mysql
# chown -R root . //把目前目錄的屬主改為root
# cp support-files/my-large.cnf /etc/my.cnf //為mysql提供主配置檔案,放到/etc/my.cnf
# vi /etc/my.cnf //編譯配置檔案
thread_concurrency = 2 //這裡改成你的CPU的個數乖于2
datadir = /mydata/data //這裡是mysql資料檔案的存放位置
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld //為mysql提供服務腳本
# chmod +x /etc/rc.d/init.d/mysqld //給腳本加上可執行權限
# chkconfig --add mysqld //把mysql服務加入到系統服務清單
# chkconfig mysqld on //設定其開機啟動
# vi /etc/man.config //編譯man的配置檔案,讓mysql指令可以通過man檢視幫助資訊
MANPATH /usr/local/mysql/man //把這行加入到MANPATH行下面
# ln -sv /usr/local/mysql/include /usr/include/mysql //輸出mysql的頭檔案
# echo '/usr/local/mysql/lib' > /etc/ld.so.conf.d/mysql.conf //輸出mysql的庫檔案
# ldconfig //重新載入庫檔案
# service mysqld start //啟動服務
# vi /etc/profile //編譯profile檔案,加入環境變量
export PATH=$PATH:/usr/local/apache/bin:/usr/local/mysql/bin //加入mysql的二進制檔案位置
# . /etc/profile //讓剛才的操作生效
# mysql //開始測試,輸入完該指令,應該會打開mysql的shell
為了讓php支援mcrypt擴充,我們這裡安裝一下以下兩個軟體包
libmcrypt-2.5.7-5.el5.i386.rpm
libmcrypt-devel-2.5.7-5.el5.i386.rpm
[root@localhost ~]# rpm -ivh libmcrypt-*
warning: libmcrypt-2.5.7-5.el5.i386.rpm: Header V3 DSA signature: NOKEY, key ID 217521f6
1:libmcrypt ########################################### [ 50%]
2:libmcrypt-devel ########################################### [100%]
# tar xf php-5.3.10.tar.bz2 //解壓PHP
# cd php-5.3.10 //切換工作目錄至php
# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-openssl --with-mysqli=/usr/local/mysql/bin/mysql_config --enable-mbstring --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir=/usr --enable-xml --with-apxs2=/usr/local/apache/bin/apxs --with-mcrypt //配置編譯php所需要的功能,啟用
# make //開始編譯PHP
# make install //開始安裝PHP
安裝完成後,我們就可以編譯apache的主配置檔案,讓它支援php了
# vim /etc/httpd/httpd.conf
1、添加如下二行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
2、定位至DirectoryIndex index.html
修改為:
DirectoryIndex index.php index.html
# cd /usr/local/apache/htdocs //進入到apache的網頁檔案位置
# vi index.php //建立一個php檔案,寫入以下内容
<?php
phpinfo();
?>
而後重新啟動httpd,或讓其重新載入配置檔案即可測試php是否已經可以正常使用。
<a target="_blank" href="http://blog.51cto.com/attachment/201204/075227752.jpg"></a>
說明已經OK
首先把我們下載下傳好的Discuz放到apache的主目錄
# cp Discuz_7.2_FULL_SC_GBK.zip /usr/local/apache/htdocs //拷貝網頁檔案到htdocs
# unzip Discuz_7.2_FULL_SC_GBK.zip //解壓縮檔案
# mv upload bbs //将upload目錄改為bbs,我們Discuz論壇的整個網頁檔案都在這
然後就可以通過WEB來安裝了
<a target="_blank" href="http://blog.51cto.com/attachment/201204/075135413.jpg"></a>
有一個提示資訊,我們改一下php的主配置檔案,按照給的提示資訊改
# vi /usr/local/php/lib/php.ini
把第266行short_open_tag = On 改為On
改完之後先把apache服務停掉,然後再啟用,然後再去頁面按照提示一步一步安裝,安裝完成之後, 如下圖
<a target="_blank" href="http://blog.51cto.com/attachment/201204/074953520.jpg"></a>
使用apache虛拟主機之前,我們要關掉apache的中心主機,因為中心主機不能跟虛拟主機一起使用,關掉中心主機,我們要注釋掉主配置檔案裡面的 DocumentRoot.
虛拟主機的格式
# www.magedu.com // #開頭的注釋資訊
<VirtualHost 172.16.34.2:80> //定義虛拟主機關鍵字VirtualHost,後面跟IP位址和端口号
ServerAdmin [email protected] //定義管理者郵箱位址
ServerName www.magedu.com //定義域名
DocumentRoot "/vhosts/magedu" //定義虛拟主機的網頁檔案位置
ErrorLog "/vhosts/logs/magedu_error_log" //錯誤日志存放位置
CustomLog "/vhosts/logs/magedu_access_log" combined //通路日志存放位置及日志
<Directory "/vhosts/magedu"> //定義目錄的屬性資訊,對目錄做通路控制
Options none //定義操作選項,是否允許索引等
AllowOverride none //是否允許權限覆寫
Order allow,deny //目錄權限,先允許,後拒絕
Deny from 172.16.100.0/24 //拒絕的用戶端
Allow from 172.16.0.0/16 //允許的用戶端
</Directory> //目錄容器結束符
</VirtualHost> //虛拟主機結束符
如果要使用域名通路,需要做DNS的解析,也可以通過IP位址來通路。
本文轉自 gm100861 51CTO部落格,原文連結:http://blog.51cto.com/gm100861/826533