編譯 apache 和 mod_jk 模塊實現(xiàn)與 Tomcat 協(xié)同

  1. 首先下載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/

      1. mod_jk付燥。https://tomcat.apache.org/connectors-doc/miscellaneous/faq.html
      2. ./configure --with-apxs=/usr/sbin/apxs http://it.toolbox.com/blogs/lim/compiling-tomcat-connector-mod_jk-on-redhat-6805
      3. make
      4. make install
      5. 現(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端的配置

    1. 配置worker文件目錄:

      JkWorkersFile /path/to/httpd/conf/workers.properties
      
    2. 配置worker們的共享內(nèi)存路徑:

        JkShmFile /path/to/log/httpd/mod_jk.shm
      
    3. 配置日志文件:

       JkLogFile  /path/to/log/httpd/mod_jk.log
      
    4. 配置日志級別:

      JkLogLevel    level
      
    5. 配置日志的時間戳格式:

       JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
      
    6. 加載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試試效果嗦嗡。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市饭玲,隨后出現(xiàn)的幾起案子侥祭,更是在濱河造成了極大的恐慌,老刑警劉巖茄厘,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矮冬,死亡現(xiàn)場離奇詭異,居然都是意外死亡次哈,警方通過查閱死者的電腦和手機胎署,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來亿乳,“玉大人硝拧,你說我怎么就攤上這事「鸺伲” “怎么了障陶?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長聊训。 經(jīng)常有香客問我抱究,道長,這世上最難降的妖魔是什么带斑? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任鼓寺,我火速辦了婚禮,結果婚禮上勋磕,老公的妹妹穿的比我還像新娘妈候。我一直安慰自己,他們只是感情好挂滓,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布苦银。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪幔虏。 梳的紋絲不亂的頭發(fā)上纺念,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音想括,去河邊找鬼陷谱。 笑死,一個胖子當著我的面吹牛瑟蜈,可吹牛的內(nèi)容都是我干的烟逊。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼踪栋,長吁一口氣:“原來是場噩夢啊……” “哼焙格!你這毒婦竟也來了?” 一聲冷哼從身側響起夷都,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎予颤,沒想到半個月后囤官,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡蛤虐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年党饮,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片驳庭。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡刑顺,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出饲常,到底是詐尸還是另有隱情蹲堂,我是刑警寧澤,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布贝淤,位于F島的核電站柒竞,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏播聪。R本人自食惡果不足惜朽基,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望离陶。 院中可真熱鬧稼虎,春花似錦、人聲如沸招刨。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至茸苇,卻和暖如春排苍,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背学密。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工淘衙, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人腻暮。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓彤守,卻偏偏與公主長得像,于是被迫代替她去往敵國和親哭靖。 傳聞我的和親對象是個殘疾皇子具垫,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容