RedHat 5.4下安裝Apache+MySQL+PHP經驗
公司的web服務器使用RedHat5.4系統,采用php+mysql+apache的結構;身為中心主管的我,對windows下的iis和apache都是駕輕就熟,redhat還是新手,為了彰顯牛人本色,花費了一周的業余時光,終于大功告成,實屬不易呀。
在操作過程中,老夫不斷的查找資料,結果發現網絡資料很龐雜,說的不是語焉不詳就是太復雜,結合我自己經驗,把這幾天的血淚史付諸筆下,希望能對大家有幫助。
首先安裝apache環境,進入linux下首先>gcc -v查詢gcc包裝了沒有,如果沒裝就趕緊去光盤找rpm吧,gcc裝上后就可以下載apache了,下載httpd-2.2.17.tar.bz2,tar jxfv httpd-2.2.17.tar.bz2解包,./configure --prefix=/usr/apache2/ --enable-so,make,make install安裝,apache就ok了,裝好后查看netstat -nat ,80口有則服務啟動了,對于apache的控制不做描述了,都知道apachectl在哪里吧,也可以用chkconfig加到系統服務中去。
#tar jxvf httpd-2.2.17.tar.bz2
#cd httpd-2.2.17
#./configure --prefix=/usr/local/apache2 --enable-module=so
#make
#make install
接下來就是安裝mysql,這個比較簡單,#rpm -ivh MySQL-server-4.0.20-0.i386.rpm ,#rpm -ivh MySQL-client-4.0.20-0.i386.rpm 安裝好后試試能不能用,設置密碼使用mqlsqladmin,使用mysql連接測試是否安裝完全。
再接下來就是安裝php的工作了,首先為了對于多種圖片格式的支持,所以我們需要安裝以下包:
1、安裝XPM
#rpm -ivhxpm-3.4k-2.i386.rpm
安裝libxml
# tar -zxf libxml2-2.6.16.tar.gz
# cd libxml2-2.6.16
# ./configure (xml默認安裝就可以,不要指定路徑了,因為安裝時php可能找不到它,PHP5只支持libxml2-2.5.10以上版本)
# make
# make install
安裝zlib
# tar -zxf zlib-1.2.2.tar.gz
# cd zlib-1.2
# ./configure --prefix=/usr/local/zlib2
# make
# make install
安裝jpeg
# tar -zxf jpegsrc.v6b.tar.gz
# cd jpeg-6b/
# ./configure --prefix=/usr/local/jpeg6
# make
# make install-lib
如果你選擇默認安裝,可能很順利,指定路徑后,請先創建以下文件夾
錯誤提示:...... /usr/bin/install -c -m 644 jconfig.h /usr/local/jpeg6/include/jconfig.h
/usr/bin/install: 無法創建一般文件‘/usr/local/jpeg6/include/jconfig.h’: 沒有那個文件或目錄
make: *** [install-headers] Error 1
# mkdir /usr/local/jpeg6
# mkdir /usr/local/jpeg6/include
# mkdir /usr/local/jpeg6/lib
# make install-lib
# make install
安裝時如果錯誤提示:
/usr/bin/install: 無法創建一般文件‘/usr/local/jpeg6/lib/libjpeg.a’: 沒有那個文件或目錄
make: *** [install-lib] Error 1
創建如下文件夾:
# mkdir /usr/local/jpeg6/lib
# make install
/usr/bin/install -c cjpeg /usr/local/jpeg6/bin/cjpeg
/usr/bin/install: 無法創建一般文件‘/usr/local/jpeg6/bin/cjpeg’: 沒有那個文件或目錄
make: *** [install] Error 1
# mkdir /usr/local/jpeg6/bin
/usr/bin/install -c -m 644 ./cjpeg.1 /usr/local/jpeg6/man/man1/cjpeg.1
/usr/bin/install: 無法創建一般文件‘/usr/local/jpeg6/man/man1/cjpeg.1’: 沒有那個文件或目錄
make: *** [install] Error 1
# mkdir /usr/local/jpeg6/man
# mkdir /usr/local/jpeg6/man/man1
# make install
好了,直到安裝成功!
安裝libpng:
# tar -zxf libpng-1.2.7-config.tar.gz
# cd libpng-1.2.7-config
# ./configure --prefix=/usr/local/libpng2
# make
# make install
安裝freetype:
# tar -zxf freetype-2.1.9.tar.gz
# cd freetype-2.1.9
# ./configure --prefix=/usr/local/freetype2
# make
# make install
安裝gd庫:
# tar -zxf gd-2.0.26gif.tar.gz
# cd gd-2.0.26gif
# ./configure --prefix=/usr/local/gd2 --with-zlib=/usr/local/zlib2/ --with-png=/usr/local/libpng2/ --with-jpeg=/usr/local/jpeg6/ --with-freetype=/usr/local/freetype2/ (請指定及格插件的安裝路徑,否則安裝php的時候可能出錯!)
# make
# make install
安裝php5:
# tar -zxf php5-200411260130.tar.gz
# cd php5-200411260130
# ./configure --prefix=/usr/local/php --with-apxs2=/usr/local/apache2/bin/apxs --with-jpeg-dir=/usr/local/jpeg6/ --with-png-dir=/usr/local/libpng2/ --with-gd=/usr/local/gd2/ --with-freetype-dir=/usr/local/freetype2/ --with-zlib-dir=/usr/local/zlib2/ -with-mysql=/var/lib/mysql
# make
# make install
# cp php.ini-dist /usr/local/php/lib/php.ini
make之前需要make test,有幾個包是必須的:openssl,mysql-shared,mysql-devel等幾個包必須安裝。
在編譯gd-2.0.35.tar.gz時報錯:gd_png.c:16:53: error: png.h: No such file or directory2011-03-04 21:40編譯gd-2.0.35.tar.gz時報錯:
gcc -DHAVE_CONFIG_H -I. -I. -I. -I/usr/local/freetype/include/freetype2 -I/usr/local/freetype/include -I/usr/local/freetype/include -I/usr/local/jpeg/include -g -O2 -MT gd_png.lo -MD -MP -MF .deps/gd_png.Tpo -c gd_png.c -fPIC -DPIC -o .libs/gd_png.o
gd_png.c:16:53: error: png.h: No such file or directory
gd_png.c:47: error: expected specifier-qualifier-list before ‘jmp_buf’
gd_png.c:54: error: expected ‘)’ before ‘png_ptr’
gd_png.c:82: error: expected ‘)’ before ‘png_ptr’
gd_png.c:92: error: expected ‘)’ before ‘png_ptr’
解決辦法:
vi gd_png.c
將
#include “png.h” /* includes zlib.h and setjmp.h */
替換成:
#include “/usr/local/libpng/include/png.h” /* includes zlib.h and setjmp.h */
復制PHP.INI文件到正確位置
在PHP目錄下運行
#cp php.ini-dist /usr/local/php/lib/php.ini
編輯apache配置文件httpd.conf
#vi /usr/local/apache2/conf/httpd.conf
要改的有如下幾處:
一般都在
#AddType application/x-tar .tgz
下加一行
#LoadModule php5_module modules/libphp5.so
AddType application/x-httpd-php .php
如果你搜索其它地方沒有以下這行
LoadModule php5_module modules/libphp5.so
請把上面的#號去掉
還有找到
DirectoryIndex index.html index.html.var
在后面加 index.php 讓它把index.php做為默認頁
再找
#ServerName
把#去掉,后面的IP改成你的IP.
找到
DocumentRoot "/usr/local/apache2/htdocs"
把/usr/local/apache2/htdocs改為你存放網頁文件的路徑
保存httpd.conf文件.
啟動apache
# /usr/local/apache2/bin/apachectl start
selinux安全機制還會導致一些稀奇古怪的問題,其中一個可以
chcon -c -v -R -u system_u -r object_r -t textrel_shlib_t /usr/local/apache2/modules/libphp5.so
解決伊。
編輯<?php phpinfo(); ?>,存為index.php放到設置的目錄中,就可以看到php的信息了,至此大功告成。
關健詞:Apache+MySQL+PHP
新文章:
- CentOS7下圖形配置網絡的方法
- CentOS 7如何添加刪除用戶
- 如何解決centos7雙系統后丟失windows啟動項
- CentOS單網卡如何批量添加不同IP段
- CentOS下iconv命令的介紹
- Centos7 SSH密鑰登陸及密碼密鑰雙重驗證詳解
- CentOS 7.1添加刪除用戶的方法
- CentOS查找/掃描局域網打印機IP講解
- CentOS7使用hostapd實現無AP模式的詳解
- su命令不能切換root的解決方法
- 解決VMware下CentOS7網絡重啟出錯
- 解決Centos7雙系統后丟失windows啟動項
- CentOS下如何避免文件覆蓋
- CentOS7和CentOS6系統有什么不同呢
- Centos 6.6默認iptable規則詳解