Ubuntu 16.04アルファバージョンで再起動したときにk = 10 Apache2サーバープロセスを開始する方法を知りたいです。昨日、私は次のURLを読みました。 [https://rudd-o.com/linux-and-free-software/tuning-an-apache-server-in-5-mins]、prefork.cモジュールでApache2を使用し、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 イベントモジュールを設定し、システム apache.service ファイルを再起動し、ps -ef | grep -in "apache2"に2 www -dataだけが表示されるものでした。 apache2プロセスとps-ef | grep -in "mod"にはmod-mono-server4プロセスは表示されません。
また、 bash シェルのコマンドプロンプトで apache2 を実行すると、構文エラー APACHE2_LOCK_FILE 環境変数が欠落していることを示すメッセージが表示されます。 APACHE2_LOCK_FILEが私の/etc/apache2/envvarsファイルで定義されていることがわかりました。
Ubuntu 16.04 apache2 のマニュアルページには次のように記載されています。通常、apache2は直接呼び出すべきではありませんが、/etc/init.d/apache2またはapache2ctlを介して呼び出す必要があります。場合は使用できませんが、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 -in "apache2"は表示されません。
何が間違っているのか、どうやって修正できるのか教えてください。私ができるテストをお勧めします。
私は多くのUbuntu 16.04アルファユーザーがすぐに私が経験したのと同じ問題について文句を言うことを知っています。
ベストアンサー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モジュールが有効になっているかを確認すると、イベント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を介してのみ制御されます。
以下は、いくつかの関連するシステム制御コマンドです。たとえば、次のようになります。
sudo systemctl start apache2
sudo systemctl stop apache2
sudo systemctl restart apache2
Mono、ASPX、および複数のアプリケーション設定に関するコメントにはさらに質問があります。これらの質問を個別に尋ねて、単一のドメインで複数のアプリケーションを提供する予定か、複数のドメインで複数のアプリケーションを提供する予定であるかを明確にする必要があります。
起動時にApache2サービスを開始するには、次の手順を実行します。
sudo systemctl enable apache2