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을 통해 호출해야 합니다. 기본 데비안 구성에는 /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 -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
답변2
다른 루트 디렉터리에 있는 aspx 콘텐츠를 제공하도록 Ubuntu 16.04를 설정하려면 3단계가 더 필요합니다.
apache2.coonf 끝에 이것을 넣으십시오.
별칭 /test "/usr/share/doc/xsp/test" 별칭 /personal "/home/user/mypages" AddMonoApplications 기본값 "/test:/usr/share/doc/xsp/test,/personal: /home/user /mypages" SetHandler 모노 SetHandler 모노
소스 /etc/apache2/envvars는 다음과 같이 수정됩니다.
envvars - apache2ctl의 기본 환경 변수
uid를 변경한 후에는 올바르지 않습니다.
홈페이지 설정 해제
여러 apache2 인스턴스를 지원하는 데 사용됩니다.
if [ "${APACHE_CONFDIR##/etc/apache2-}" != "${APACHE_CONFDIR}" ] ; then 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/default/locale
언어 내보내기
"apache2ctl status" 상태를 가져오는 명령입니다.
"www-browser"를 제공하는 일부 패키지에는 "-dump" 대신 "--dump"가 필요합니다.
APACHE_LYNX='www-browser-dump' 내보내기
더 높은 파일 설명자 제한이 필요한 경우 주석 처리를 제거하고 조정하세요.
다음 줄(기본값 8192):
APACHE_ULIMIT_MAX_FILES='ulimit -n 65536'
매개변수를 웹 서버에 전달하려면 아래에 매개변수를 추가하세요.
APACHE_ARGUMENTS 환경으로.
내보내기APACHE_ARGUMENTS=''
유지관리자 스크립트에 대한 디버그 모드를 활성화합니다.
그러면 웹 서버 모듈 및 웹 애플리케이션의 패키지 설치에 대한 자세한 출력이 생성됩니다.
Apache를 사용한 대화형 설치
APACHE2_MAINTSCRIPT_DEBUG=1 내보내기
apache2.conf 상단에 LoadModule mono_module /usr/lib/apache2/modules/mod_mono.so 줄을 배치합니다.
이를 테스트하려면 다음을 입력하십시오.http://127.0.0.1/test/Default.cs그리고 넣어http://127.0.0.1/personal/Default.csFirefox 웹 브라우저에서.