linux,Unix 系統下 Apache 2.x 安裝php5.5

來源:互聯網
上載者:User

網址:http://www.php.net/manual/zh/install.unix.apache2.php

本節包括在 Unix 平台的 Apache 2.x 下安裝 PHP 的說明和提示。

Warning

不推薦在使用 Apache 2的產品中使用線程化 MPM。應使用預分支 MPM,Apache 2.0 和 2.2預設的 MPM。其原因見 FAQ 中的相關條目使用線程化 MPM 的Apache2。

推薦閱讀
» Apache 文檔,瞭解一下 Apache 2.x 伺服器,以及詳細的安裝參數。

可以從 » Apache 下載網站下載最新版本的Apache,並且根據上文選擇合適版本的 PHP 下載。本嚮導僅包含最基礎的內容,只能讓 Apache 2.x 和 PHP 能夠正常工作。更多資訊請閱讀» Apache 文檔。這裡省略所有的版本號碼,以保證本文的正確性。需要將本文的“NN”替換為相應的版本號碼。

當前 Apache 2.x 有兩個流行的版本 - 2.0、2.2。雖然選擇某個版本會有種種原因,但是如果可以考慮的話,我們還是建議使用最新的 Apache 2.2 版本。當然,以下的介紹同樣適合 Apache 2.0 和 2.2。

  1. 從上面列出的地方擷取 Apache 源碼包,然後解壓:

    gzip -d httpd-2_x_NN.tar.gztar -xf httpd-2_x_NN.tar
  2. 同樣,擷取 PHP 源碼包並解壓:

    gunzip php-NN.tar.gztar -xf php-NN.tar
  3. 編譯並安裝 Apache。請參考 Apache 安裝文檔瞭解編譯 Apache 的更多細節。

    cd httpd-2_x_NN./configure --enable-somakemake install
  4. 現在已經將 Apache 2.x.NN 安裝在 /usr/local/apache2。本安裝支援可裝載模組 和標準的 MPM prefork。之後,可以使用如下命令啟動 Apache 伺服器:

    /usr/local/apache2/bin/apachectl start

    如果成功,可以停止 Apache 伺服器並繼續安裝 PHP:

    /usr/local/apache2/bin/apachectl stop
  5. 現在需要配置並編譯 PHP。在這裡可以用各種各樣的參數來自訂 PHP,例如啟動哪些擴充功能包的支援等。用 ./configure --help 命令可以列出當前可用的所有參數。在此例中,將給出一個在有 MySQL 支援的 Apache 2 上進行配置的範例。

    如果按照上面的說明從原始碼編譯了 Apache,下面的例子會正確匹配 apxs 的路徑。如果通過其他方式安裝了 Apache,需要相應的調整 apxs 的路徑。注意,在有些發行版本中,可能將 apxs 更名為 apxs2。

    cd ../php-NN./configure --with-apxs2=/usr/local/apache2/bin/apxs --with-mysqlmakemake install

    如果決定在安裝後改變更配置置選項,只需重複最後的三步configure,make,以及 make install,然後需要重新啟動 Apache 使新模組生效。Apache 不需要重新編譯。

    請注意,除非明確有提示,否則“make install”命令將安裝 PEAR、各種PHP 工具諸如 phpize,並安裝 PHP CLI 等等。

  6. 配置 php.ini

    cp php.ini-development /usr/local/lib/php.ini

    可以編輯 php.ini 來設定 PHP運行時的選項。如果想要把此檔案放到另外的位置,需要在步驟5 添加 --with-config-file-path=/path 選項。

    如果選擇了 php.ini-production,請務必閱讀其中的變更列表,它們將影響 PHP 的執行。

  7. 編輯 httpd.conf 檔案以調用 PHP 模組。LoadModule 達式右邊的路徑必須指向系統中的 PHP 模組。以上的 make install 命令可能已經完成了這些,但務必要檢查。

    LoadModule php5_module modules/libphp5.so
  8. 告知 Apache 將特定的副檔名解析成 PHP,例如,讓 Apache 將副檔名 .php 解析成 PHP。為了避免潛在的危險,例如上傳或者建立類似exploit.php.jpg 的檔案並被當做 PHP 執行,我們不再使用 Apache 的 AddType指令來設定。參考下面的例子,你可以簡單的將需要的副檔名解釋為 PHP。我們示範為增加.php。

    <FilesMatch \.php$>    SetHandler application/x-httpd-php</FilesMatch>

    或者,你也想將 .php,.php2,.php3,.php4,.php5,.php6,以及 .phtml 檔案都當做 PHP 來運行,我們無需額外的設定,僅需按照下面這樣來:

    <FilesMatch "\.ph(p[2-6]?|tml)$">    SetHandler application/x-httpd-php</FilesMatch>

    然後,可以將 .phps 檔案由 PHP 源碼過濾器處理,使得其在顯示時可以高亮源碼,設定如下:

    <FilesMatch "\.phps$">    SetHandler application/x-httpd-php-source</FilesMatch>

    mod_rewrite 也有助於將那些不需要啟動並執行 .php 檔案的源碼高亮顯示,而並不需要將他們更名為 .phps 檔案:

    RewriteEngine OnRewriteRule (.*\.php)s$ $1 [H=application/x-httpd-php-source]

    不要在正式生產運營的系統上啟動 PHP 源碼過濾器,因為這可能泄露系統機密或者嵌入的代碼中的敏感資訊。

  9. 按照通常的方式啟動 Apache 服務:

    /usr/local/apache2/bin/apachectl start

    或者

    service httpd restart

按照上面的步驟便可以使 Apache 2.x 將 PHP 作為 SAPI 模組了。當然 Apache 和 PHP 都還有很多配置選項,可以在相應的原始碼目錄中使用./configure --help 獲得更多資訊。

假如要編譯一個多線程版本的 Apache,可在編譯時間選擇用 worker MPM 來替換標準的prefork MPM。只需在上面的第 3 步使用:

--with-mpm=worker

如果不是很明確這樣做的後果並且大概理解其含義的話,最好不要進行這一步。更多資訊請參考 Apache 文檔中關於
» MPM-Modules 的部分。

Note:

Apache MultiViews 常見問題中討論了在 PHP 中使用 MultiViews。

Note:

要編譯多線程版本的 Apache,系統必須支援多線程。這也意味著需要將 PHP 編譯為正處在實驗階段的 Zend Thread Safety(ZTS),因此並不是所有的擴充都可以使用了。推薦編譯 Apache 使用標準的prefork MPM-Module。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.