-
首先下載apache的源碼進行編譯:http://httpd.apache.org/docs/current/install.html
-
下載apache源碼引润,configure時
./configure --prefix=/opt/apache2.4/
但提示沒有APR汤踏,故根據(jù)提示下載APR和APR-util:http://apr.apache.org/download.cgi
但下載的都是源碼包,需要編譯节视,不過比較簡單:
//centos里面沒有buildtool需要添加: yum groupinstall "Development Tools" yum install pcre-devel -y
./configure make make install
在編譯util的時候需要指定apr路徑:
./configure --with-apr=/usr/local/apr/
至此編譯安裝apr相關的兩個軟件完成殿遂。
下面來繼續(xù)編譯apache:
./configure --prefix=/opt/apache2.4 //注意前面apache2.4后不要帶/竟闪。爽冕。。 //等配置完成 make //等編譯完成 make install //完成垦藏。
至此梆暖,apache編譯安裝完成。
為方便啟動掂骏,可用將bin設置到path中, 方法如下:
# 在 ~/.bashrc 最后一行添加: export PATH="$PATH:your path1:your path2 …"http://這里添加的是apache的bin目錄 # 然后 source ~/.bashrc
需要開機啟動的話:在/etc/rc.local里添加腳本的完整路徑轰驳,并且不要忘了修改權限:
比如startupapache.sh腳本,添加到rc.local中,腳本內(nèi)容如下:
一定要記住修改新建的腳本本身的權限级解,卡這里好久
/xxx/xxx/apachectl start //此時環(huán)境變量還沒初始化冒黑,故需要使用絕對路徑!
這個文件就是開啟啟動時執(zhí)行的蠕趁。
不過編譯后的不支持php薛闪,需要安裝php支持模塊:
安裝后在httpd.conf里面加入LoadModule,但是提示php支持模塊線程不安全俺陋,需要重新編譯,只有自己編譯php了昙篙。腊状。。
編譯之后再loadModule
編譯php:
先卸載掉之前的php所有東西:
apt-get remove php*
卸載完成后苔可,準備編譯php:
獲取php源碼:
http://php.net/downloads.php
下載下來的源碼包缴挖。
接下來踩坑繼續(xù):ls
遇到?jīng)]有l(wèi)ibxml2,好吧焚辅,安裝映屋。。同蜻。提示安裝了最新版
yum install libxml2-devel sudo apt-get install libxml2-dev
然后是沒有xml2-config棚点,好吧,繼續(xù):說是在libxml2-dev包中湾蔓,好吧瘫析,apt-get安裝。
安裝好了沒問題了默责。開始編譯贬循。
//按官方的來:http://php.net/manual/en/install.unix.apache2.php //官方說先要編譯安裝apache,之前就做好了桃序。 cd ../php-NN ./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysql //但是貌似在最新的php7上面這個enable不識別杖虾,沒有清除干凈的話使用apt-get remove *php*來清除之前殘留,find / -name *php*只會出現(xiàn)源碼包 make make install //尼瑪買個256MB的VPS編譯php都內(nèi)存不夠媒熊,擦了奇适!stop掉tomcat和apache重新開始編譯。泛释。\ 但是編譯出來還是出錯滤愕,后面查php的bug庫發(fā)現(xiàn)由于內(nèi)存少于512MB時都會出現(xiàn)這個bug, //之后是設置php.ini cp php.ini-development /usr/local/lib/php.ini //再之后是為apache添加php模塊: LoadModule php7_module modules/libphp7.so
http://php.net/manual/en/install.unix.apache2.php
安裝官方文檔所說的一步一步來即可編譯并配置好php怜校。
配置apache的php:
坑:
filesmatch是在Directory標簽內(nèi)的子標簽间影。。茄茁。
<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>
另外就是由于瀏覽器緩存魂贬,還以為配置沒成功巩割,結果刷新就好了。
編譯mod_jk
http://tomcat.apache.org/connectors-doc/common_howto/quick.html
坑:
編譯mod_jk時:http://tomcat.apache.org/connectors-doc/
- mod_jk付燥。https://tomcat.apache.org/connectors-doc/miscellaneous/faq.html
- ./configure --with-apxs=/usr/sbin/apxs http://it.toolbox.com/blogs/lim/compiling-tomcat-connector-mod_jk-on-redhat-6805
- make
- make install
- 現(xiàn)在mod_jk就在apache中了宣谈。
-
配置步驟:
https://www.mulesoft.com/tcat/tomcat-clustering
step1:完成mod_jk的編譯和安裝(已完成)
-
step2:在httpd.conf里面配置mod_jk模塊:
# Load the mod_jk module. LoadModule jk_module path/to/mod_jk.so
-
step3:配置其他Apache端的配置
-
配置worker文件目錄:
JkWorkersFile /path/to/httpd/conf/workers.properties
-
配置worker們的共享內(nèi)存路徑:
JkShmFile /path/to/log/httpd/mod_jk.shm
-
配置日志文件:
JkLogFile /path/to/log/httpd/mod_jk.log
-
配置日志級別:
JkLogLevel level
-
配置日志的時間戳格式:
JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
-
加載worker(即Tomcat實例,下一步就是配置它):
JkMount /examples/* worker1 //這個配置的意思是:所有example應用的請求都交給對應的worker1
匯總起來就是下面的內(nèi)容:
# Load mod_jk module # Update this path to match your modules location LoadModule jk_module modules/mod_jk.so # Declare the module for <IfModule directive> (remove this line for Apache 2.x) AddModule mod_jk.c # Where to find workers.properties # Update this path to match your conf directory location (put workers.properties next to httpd.conf) JkWorkersFile /etc/httpd/conf/workers.properties # Where to put jk shared memory # Update this path to match your local state directory or logs directory JkShmFile /var/log/httpd/mod_jk.shm # Where to put jk logs # Update this path to match your logs directory location (put mod_jk.log next to access_log) JkLogFile /var/log/httpd/mod_jk.log # Set the jk log level [debug/error/info] JkLogLevel info # Select the timestamp log format JkLogStampFormat "[%a %b %d %H:%M:%S %Y] " # Send everything for context /examples to worker named worker1 (ajp13) JkMount /examples/* worker1
?
-
-
step4:配置workers.properties文件:
這個文件中就是所有的和HTTPD服務器進行交流的Tomcat實例配置键科。
下面來看看workers.properties文件的配置:
#定義一個真實的worker闻丑,如果有多個,以逗號分隔勋颖。 worker.list=worker1 # Set properties for worker1 (ajp13) worker.worker1.type=ajp13 worker.worker1.host=localhost worker.worker1.port=8009
下面就來啟動一下apache和Tomcat試試效果嗦嗡。