php5+ssl,AS3上安装Apache2+MySQL+PHP5+Resin+SSL+GD以及webalizer(补
AS3上安裝Apache2+MySQL+PHP5+Resin+SSL+GD以及webalizer(補充)
我們假設安裝系統時沒有選擇任何系統自帶的服務器程序,例如Apache,MySQL。如果已經安裝,請首先卸
載。我們還假設已經安裝了開發工具。
第一部分:web服務器的配置
(一) 下載文件:(假設全部放在~/server下面)
httpd-2.0.50.tar.gz
mysql-standard-4.0.20-pc-linux-i686.tar.gz
http://dev.mysql.com/get/Downloa ... ysql.ihostunit.com/
php-5.0.0.tar.gz
resin-3.0.8.tar.gz
openssl-0.9.7d.tar.gz
j2sdk-1_4_2_05-linux-i586-rpm.bin
... -linux-i586-rpm.bin
gd-2.0.27.tar.gz
(二) 安裝
1、MySQL
# groupadd mysql
# useradd -g mysql mysql
# cd /usr/local
# gunzip < ~/server/mysql-standard-4.0.20-pc-linux-i686.tar.gz | tar xvf -
# ln -s mysql-standard-4.0.20-pc-linux-i686 mysql
# cd mysql
# scripts/mysql_install_db --user=mysql
# chown -R root .
# chown -R mysql data
# chgrp -R mysql .
# bin/mysqld_safe --user=mysql &
# ./mysqladmin -u root password ‘password’ #使用mysqladmin修
改root的口令為 'password’
系統啟動時自動運行:
# cp support-files/mysql.server /etc/rc.d/init.d/mysqld
# chkconfig --add mysqld
用ntsysv設置使mysql每次啟動都能自動運行。
至此mysql安裝完畢,你可以這樣起動你的mysql服務
# /etc/rc.d/init.d/mysqld start
2、安裝openssl
cd ~/server
# tar -zxvf openssl-0.9.7d.tar.gz
# cd openssl-0.9.7d
# ./configure --prefix=/usr/local/openssl #設置安裝路徑
# make
# make test
# make install
3、配置Apache
# cd /usr/local/
# tar -zxvf ~sea/server/httpd-2.0.50.tar.gz
# ./configure --enable-so --enable-ssl --with-ssl=/usr/local/openssl --enable-rewrite
# make
# make install
到這我們就要說說APR了,這個東西是Apache可移植運行庫,源自為了服務器代碼的多
平臺性, 嘗試將不同的操作系統特定字節與操作系統無關代碼隔離。結果就提供了一
個基礎API的接口。具體作用大家可參考
文章。
apache-2.2.0提供了apr以及apr-util的源代碼
要使用發行源代碼中自帶的apr/apr-util源代碼進行安裝,你必須手動完成:
我們先編譯和安裝 apr 1.2
# tar xzvf httpd -2.2.0.tar.gz
# cd httpd-2.2.0
# cd srclib/apr
# ./configure --prefix=/usr/local/apr
# make
# make install
現在編譯和安裝 apr-util 1.2
# cd ../apr-util
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/
# make
# make install
# ./configure --prefix=/usr/local/apache2 \
--enable-mods-shared=all \
--enable-cgi \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/bin \
--enable-ssl \
--with-ssl=/usr/local/openssl/bin \
--enable-rewrite
# make
#make install
生成 Apache 啟動文件
# cd /etc/rc.d/init.d
# sed 's/sbin/atd/local/servers/apache/bin/httpd/g' atd > httpd
# sed 's/atd/httpd/g' httpd > /tmp/txt
# sed 's/at daemon/httpd daemon/g' /tmp/txt > httpd
# rm /tmp/txt
# chmod 755 httpd
# chkconfig --level 345 httpd on
# chkconfig --level 0126 httpd off
啟動并測試Apache服務器
# /etc/rc.d/init.d/httpd start
如果出現:
Starting httpd daemon: [ OK ]
則證明 httpd 已經正確的安裝并已經在后臺運行,如果出現其它的提示,請檢查您的安裝步驟是否正確
。
輸入或,可以看到apache的歡迎頁面。
./configure --prefix=/usr/local/apache2 \
--enable-mods=all \
--enable-rewrite \
--enable-speling \
--enable-ssl \
--with-ssl=/usr/local/openssl \
--enable-forward \
--enable-vhost-alias \
./configure --prefix=/usr/local/apache2 \
--enable-mods=all \
--enable-rewrite \
--enable-speling --enable-ssl \
--with-ssl=/usr/local/openssl \
--enable-forward \
--enable-vhost-alias \
make
make install
然后apachectl -l
顯示:
Compiled in modules:
core.c
mod_access.c
mod_auth.c
mod_include.c
mod_log_config.c
mod_env.c
mod_setenvif.c
mod_ssl.c
prefork.c
http_core.c
mod_mime.c
mod_limitipconn.c
mod_status.c
mod_autoindex.c
mod_asis.c
mod_cgi.c
mod_negotiation.c
mod_dir.c
mod_imap.c
mod_actions.c
mod_speling.c
mod_userdir.c
mod_alias.c
mod_rewrite.c
mod_so.c
看到了rewrite,limitipconn,ssl都加載了。。
終于暫時的松口氣了。。。
然后再重新編譯php
而問題就出在--enable-so
現在知道了--enable-so的意思是說
讓apache 核心裝載DSO,但是不實際編譯任何動態模塊
--enable-ModuleName的意思是說 編譯并包含模塊ModuleName
而 --enable-ModuleName=shared 的意思是說將這個模塊編譯成動態的.
明白了這幾個選項的意思,感覺就水落石出了
根據上面的總結
我應該去掉--enable-so這行
如何希望動態編譯模塊
比如:--enable-rewrite應該替換為: --enable-rewrite=shared
最后,我將要編譯的應該為:
./configure \
--prefix=/usr/local/apache2 \
--enable-mods-shared=all \
--enable-rewrite \
--enable-speling \
--enable-forward \
--enable-cgi \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util/bin \
--enable-ssl \
--with-ssl=/usr/local/openssl
上面中 --enable-mods-shared=most的意思是說 動態的編譯進來大多數的模塊
而 --enable-mods-shared=all是指動態的編譯所有的模塊
如果把-shared去掉,就是靜態的編譯了...
綜上所述
總結出了我個人對apache的動態與靜態編譯的理解
好比有兩個人a和m
a代表apache,m代表module
要想讓a使用m的東西
一個方法是把m的東西都放到a那里去,a使用的時候就是現成的了
就是所謂的靜態編譯
還有一個方法,
就是告訴a, m的住址,當a要使用m的東西的時候,a去找m,然后使用
不過,這種方法要注意的一個問題就是:m必須要有實際的住址,
否則a會找不到m而產生錯誤的,我此文開始提到的 apachectl startssl產生
的錯誤就是這個原因,應該再編譯好ssl才可以的.
這種方法也就是apache 的動態(DSO)編譯了
希望我上面的敘述能夠給初學的朋友一些幫助
同時也希望朋友們和我一起交流
共同學習,共同進步
httpd: apr_sockaddr_info_get() failed
去apache網站查找才知道,這是apache2.0的一個小bug
這是他們網站的原文
Change Listen directive to bind to all addresses returned by
apr_sockaddr_info_get when a hostname is not specified
解決辦法:vi /etc/sysconfig/network
修改字段HOSTNAME=localhost.localdomain
然后重啟服務器,問題解決。
3、配置J2DK
# cd ~/server
# chmod 755 j2sdk-1_4_2_05-linux-i586-rpm.bin
# rpm -ivh j2sdk-1_4_2_05-linux-i586.rpm
vi ~/.bash_profile
把其改成如下:
JAVA_HOME=/usr/java/j2sdk1.4.2_05
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/rt.jar
PATH=$PATH:$HOME/bin:$JAVA_HOME/bin:$JAVA_HOME/jre/bin
BASH_ENV=$HOME/.bashrc
USERNAME="root"
export USERNAME BASH_ENV PATH JAVA_NAME CLASSPATH
注銷,然后重新登錄,使環境變量起作用
# exit
# su -
# java
# javac
如果java 和javac運行了,說明java環境變量配置成功。
4、安裝Resin
# cd /usr/local
# tar -zxvf ~/server/resin-3.0.8.tar.gz
# cd resin-3.0.8/
#
./configure \
--prefix=/usr/local/resin \
--with-java-home=$JAVA_HOME \
--with-apxs=/usr/local/apache2/bin/apxs \
--with-apache=/usr/local/apache2
# make
# make install
resin直接編譯
./configure --prefix=/usr/local/resin --with-apache=/usr/local/apache2
make
make install
然后配置resin的環境
RESIN_HOME=/usr/local/resin
RESIN_BIN=$RESIN_HOME/bin
export RESIN_HOME
export RESIN_BIN
PATH=$PATH:$RESIN_BIN
然后修改/usr/local/resin/conf/resin.conf中的 為
apache的目錄
啟動測試
沒有問題
這個時候忽然想到了曾經在網上看到的resin啟動的問題
需要有個sleep15 seconds的延時什么的,否則resin很有可能不會正常啟動
于是
使用vi在/usr/local/servers/apache/htdocs/創建一個名為test.jsp的文件,其內容包括:
out.println("
Hello, World!");
%>
存盤之后,使用瀏覽器查看 如果正確的話,可以看到"Hello, World!"
字樣。否則,請檢查:Resin是否運行、Resin的參數修改是否正確、JAVA環境安裝是否正確、Apche是否
運行正常。
5、安裝GD
# cd /usr/local
# tar -zxvf ~/server/gd-2.0.27.tar.gz
# cd gd-2.0.27/
# ./configure --prefix=/usr/local/gd2
# make
# make install
6、安裝PHP
# cd /usr/local
# tar -zxvf ~/server/php-5.0.0.tar.gz
# mv php-5.0.0 php5
# cd php5/
#
./configure --prefix=/usr/local/php/ \
--with-mysql=/usr/local/mysql/ \
--with-apxs2=/usr/local/apache2/bin/apxs \
--with-curl=/usr/local/curl/ \
--with-mcrypt=/usr/local/libmcrypt/ \
--with-gd=/usr/local/gd2 \
--enable-track-vars \
--enable-ftp \
--with-zlib-dir=/usr/local/zlib/
make
make install
cp ./php.ini-dist /usr/loocal/php/php.ini
# make
# make install
( 如果configure最后出現以下錯誤信息:configure: error: libxml2 version 2.6.11 or greater
required. 則補充操作如下:
wget
tar -zxvf libxml2-2.6.11.tar.gz
cd libxml2-2.6.11
./configure --enable-ipv6=no
make
make install
# cp php.ini-dist /usr/local/php/lib/php.ini
# vi /usr/local/php/lib/php.ini
;default_charset = "iso-8859-1"
在這行下面加一行
default_charset = "gbk"
# vi /usr/local/apache/conf/httpd.conf
找到#AddType application/x-tar .tgz 這行,在下面加兩行
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
找到下面一行在后面加上index.php,這表示網站的默認頁也能夠為index.php
DirectoryIndex index.html index.html.var index.php
注意:改變了http.conf后,要重啟apache服務
使用vi打開httpd.conf,在頭部添加:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-php .php3
重新啟動Apache以使修改生效
# /etc/rc.d/init.d/httpd restart
測試PHP
使用vi在/www/troyoo.com建立一個文件(info.php),內容包括:
phpinfo();
?>
使用瀏覽器查看數。如果出現錯誤,則請檢查:Apache是否運行、參數修改是否
正確。
為php編譯mcrypt函數
網站的需要,php需要用到mcrypt函數,初步看了一下php的編譯函數,很簡單,就是增加--with-mcrypt
編譯參數就行,但你真的預編譯的時候,他就會提示錯誤configure: error: mcrypt.h not found.
Please reinstall libmcrypt,大致意思是你沒有編譯libmcrypt,我們只好先編譯libmcrypt
到這里下載libmcrypt-2.5.7.tar.gz,編譯很簡單,依舊是
configure,make,make check,make install。
裝完馬上重新去編譯php,安裝非常順利。
當然我是走了不少彎路,還以為要裝mcrypt這個程序,裝這個程序更加麻煩,除了要安裝libmcrypt,還
要安裝mhash,裝完這兩個,記得修改ld.so.conf,這樣mcrypt才能正常安裝。由于可能php實際不需要這
個,這里就不講實際問題了,如果大家碰到問題,可來交流。
附:mcrypt-2.6.4的安裝
1.先安裝libmcrypt,前面已經闡述
2.安裝mhash,去下載mhash,安裝簡單,不過我安裝最新的0.9.4版本,
在make check時候失敗,所以我最后安裝了個0.9.2版本。
3.安裝mcrypt-2.6.4.tar.gz
如果你順利安裝了前2者,你才可以安裝mcrypt-2.6.4.tar.gz,但在預編譯的時候,你可能會碰到以下錯
誤:configure: error: "You need at least libmhash 0.8.15 to compile this program.
" 按理你應該是安裝了mhash,之所以他提這么的錯誤,我們可以初步分析為預編譯
的時候沒找到lib文件所在的地址,所以我們可以這么做
cd mcrypt-2.6.4
LD_LIBRARY_PATH=/usr/local/lib ./configure
make
make install
第二部分:web服務器日志分析軟件webalizer
webalizer-2.01-10-src.tgz
# tar zxf webalizer-2.01-10-src.tgz
#
./configure --with-language=simplified_chinese \
--with-gdlib=/usr/local/gd2 \
--with-gd=/usr/local/gd2
# perl /path/of/webalizer_patch.pl ./ #這里為了解決亂碼問題,參看
()
# make
# make install
# mkdir /www/troyoo.com/usage
#cp webalizer /usr/bin/
#cd /etc
#ls webalizer*
webalizer.conf.sample
#cp webalizer.conf.sample webalizer.conf.troyoo
#vi webalizer.conf.troyoo
Edit the webalizer.conf.troyoo file(將里面的值改成下列):
LogFile /usr/local/apache2/log/access_log
OutputDir /www/troyoo.com/usage
HostName
Incremental yes
PageType htm*
PageType cgi
PageType php
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.ra
IgnoreURL /taskbar*
運行:
#/usr/bin/webalizer -c /etc/webalizer.conf.troyoo
正常信息:
Webalizer V2.01-10 (Linux 2.4.21-4.EL) Simplified Chinese
使用日志文件 /usr/local/apache2/logs/access_log (clf)
輸出結果到 /www/troyoo.com/usage
產生報表的主機名是 'SEA'
正在讀取歷史信息文件... webalizer.hist
正在生成報表 ---- 為 七月 2004
正在生成綜合報表
正在保存歷史信息文件...
3273647 條記錄 共用時 33.57 秒, 97517/sec
自動運行:
設定crontab 讓webalizer每小時運行一次:
#crontab -e
0 * * * * /usr/bin/webalizer -c /etc/webalizer.conf.troyoo
至此, Redhat LinuxAS3.0上安裝Apache2.0.50+MySQL+PHP5+Resin+SSL以及流量統計工具
(webalizer)已經安裝完畢,網站的根目錄是/www/troyoo.com,您可以在這個系統上提供基于PHP和JAVA
語言的站點服務。
總結
以上是生活随笔為你收集整理的php5+ssl,AS3上安装Apache2+MySQL+PHP5+Resin+SSL+GD以及webalizer(补的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wp7编程环境配置(包含xp下安装)
- 下一篇: 直播加热是什么意思?抖音直播加热方法有哪