envvars - apache2ctl 的預設環境變數

envvars - apache2ctl 的預設環境變數

我想知道如何在 Ubuntu 16.04 alpha 版本重新啟動時啟動 k=10 Apache2 伺服器進程。昨天,我讀到了這個網址,[https://rudd-o.com/linux-and-free-software/tuning-an-apache-server-in-5-minutes],它表示將 Apache2 與 prefork.c 模組一起使用並將 StartServers 設為 10

<IfModule prefork.c>
StartServers       4
MinSpareServers    3
MaxSpareServers   10
ServerLimit      256
MaxClients       256
MaxRequestsPerChild  10000
</IfModule>

不幸的是,我的 apache2 只有 event.c 模組。我嘗試使用 sudo apt-get install apache-mtm-prefork 將 apache2 升級到 prefork.c 模組,但安裝錯誤表示沒有此類套件可用,因為它可能已過時或過時。然後我嘗試 sudo apt-get update 並收到相同的錯誤訊息。

我的下一步是嘗試透過更改 /etc/httpd.conf 並使用 StartServers = 5 配置 apache2 事件模組,然後重新啟動我的 systemd apache.service 檔案和 ps -ef | grep -in "apache2" 僅顯示 2 個 www-data apache2 進程和 ps-ef | grep -in "mod" 顯示沒有 mod-mono-server4 程序。

此外,在 bash shell 命令提示字元下執行 apache2 時,它表示語法錯誤 APACHE2_LOCK_FILE 環境變數遺失。我發現 APACHE2_LOCK_FILE 在我的 /etc/apache2/envvars 檔案中定義。

Ubuntu 16.04 apache2 手冊頁說:「一般來說,apache2 不應該直接調用,而應該透過 /etc/init.d/apache2 或 apache2ctl 調用。預設的 Debian 配置需要在 /etc/ 中定義的環境變數apache2/envvars ,如果直接啟動apache2 則不可用,但是,apache2ctl 可用於向apache2 傳遞任意參數。

所以我可以使用/etc/apache2/envars ,我編輯了我的systemd apache.service 檔案以使用ExecStart = /etc/init.d/apache2 start 並重新啟動了我的Lenovo ThinkStation Ubuntu 16.04 桌面,但無濟於事,我仍然只有 2 www-data apache2 進程和 ps-ef |當我運行 ps -ef | grep -in "mod" 顯示沒有 mod-mono-server4 進程grep - 在「apache2」中。

請問我做錯了什麼、如何解決?請建議我可以做的測試。

我知道許多 Ubuntu 16.04 alpha 版本用戶很快就會抱怨我遇到的相同問題。

答案1

apache2首先,您可以透過查看16.04 中的軟體包中提供的 mpm_prefork 模組來確認您已經擁有該模組。如果您這樣做,您將看到幾個結果:

 dpkg -L apache2 | grep fork

 /etc/apache2/mods-available/mpm_prefork.conf
 /etc/apache2/mods-available/mpm_prefork.load

現在檢查哪個 MPM 模組已啟用,您將看到 Event MPM 模組已啟用,而 Prefork 模組未啟用:

  ls /etc/apache2/mods-enabled/mpm*

聽起來您想要停用 Event MPM 模組並啟用 Prefork MPM 模組(您可以使用符號連結來完成此操作),然後重新啟動 Apache:

sudo rm /etc/apache2/mods-enabled/mpm*
sudo ln -s /etc/apache2/mods-available/*fork* /etc/apache2/mods-enabled/

也許您的“StartServer”指令將按預期工作。 Event MPM 伺服器在單一進程中運行事件循環,因此它不需要所有額外的進程。

您也提到啟動 Apache 和 systemd。我建議不要直接啟動 Apache 的 http 或使用 apache2ctl。僅透過 systemd 控制它以保持一致性。

以下是一些相關的systemd控制指令,作為範例:

 sudo systemctl start   apache2
 sudo systemctl stop    apache2
 sudo systemctl restart apache2

您在評論中對設定 Mono、ASPX 和多個應用程式有更多疑問。您應該單獨詢問這些問題,並明確說明您是打算在單一網域上提供多個應用程序,還是在多個網域上提供多個應用程式。

若要讓 Apache2 服務在引導時啟動,請執行:

sudo systemctl enable apache2

答案2

設定 Ubuntu 16.04 來為駐留在不同根目錄中的 aspx 內容提供服務還需要 3 個步驟。

  1. 將其放在 apache2.coonf 的末尾

    別名 /test "/usr/share/doc/xsp/test" 別名 /personal "/home/user/mypages" AddMonoApplications 預設 "/test:/usr/share/doc/xsp/test,/personal:/home/user /mypages" SetHandler mono SetHandler mono

    1. source /etc/apache2/envvars 修改後如下:

      envvars - apache2ctl 的預設環境變數

      更改 uid 後這將不正確

      取消設定主頁

      用於支援多個 apache2 實例

      if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ;則 SUFFIX="-${APACHE_CONFDIR##/etc/apache2-}" else SUFFIX= fi

      由於沒有明智的方法來獲取腳本中解析的 apache2 配置,因此有些

      設定透過環境變數定義,然後在 apache2ctl 中使用,

      /etc/init.d/apache2、/etc/logrotate.d/apache2 等

      導出 APACHE_RUN_USER=venkat 導出 APACHE_RUN_GROUP=venkat

      臨時狀態檔案位置。這可能會在 Wheezy+1 中更改為 /run

      匯出 APACHE_PID_FILE=/var/run/apache2/apache2.pid 匯出 APACHE_RUN_DIR=/var/run/apache2 匯出 APACHE_LOCK_DIR=/var/lock/apache2

      只有 /var/log/apache2 由 /etc/logrotate.d/apache2 處理。

      導出 APACHE_LOG_DIR=/var/log/apache2

      mod_dav 等模組所使用的語言環境

      導出 LANG=C

      取消註解以下行以使用系統預設區域設定:

      。 /etc/預設/區域設置

      導出語言

      用於取得“apache2ctl status”狀態的指令。

      一些提供“www-browser”的軟體包需要“--dump”而不是“-dump”。

      導出 APACHE_LYNX='www-瀏覽器-dump'

      如果您需要更高的檔案描述符限制,請取消註解並調整

      以下行(預設為 8192):

      APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'

      如果您想將參數傳遞給網頁伺服器,請在下面新增它們

      到 APACHE_ARGUMENTS 環境。

      導出 APACHE_ARGUMENTS=''

      為維護者腳本啟用偵錯模式。

      這將在 Web 伺服器模組和 Web 應用程式的套件安裝上產生詳細輸出

      與 Apache 互動的安裝

      匯出 APACHE2_MAINTSCRIPT_DEBUG=1

      1. 在 apache2.conf 的頂部,放置以下行:LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so。

      2. 要測試這一點,請輸入http://127.0.0.1/test/Default.cs並把http://127.0.0.1/personal/Default.cs在 Firefox 網路瀏覽器中。

相關內容