Pregunta
¿Se necesita algo más que la creación de "mywebapp.plist" en "/Library/Server/Web/Config/apache2/webapps" y el inicio con el comando "sudo webappctl start" para registrar e iniciar la nueva aplicación web?
¿Necesitamos registrarlo de alguna manera en algún lugar (como Server.app/Webapps) antes de comenzar con webappctl?
Si no es así, ¿qué puede causar este problema?
Descripción
Tenemos una aplicación web que se ejecuta en el puerto 8085 y queremos ponerla detrás de apache proxy/reverseproxy. Sin embargo, no pudimos iniciar la nueva aplicación web usando webappctl. La salida en la consola fue un error:
web:error = "CANNOT_START_SERVICE_ERR"
system.log lo contiene:
xswebconfig failed: EXCEPTION: No place to put SSL directives, vhost www.ontometrics.com
servermgr_web: XSWebConfig sync failed; detail:Error Domain=XSServerFoundationErrorDomain Code=7 "Failed to write settings." UserInfo={NSLocalizedDescription=Failed to write settings.}
Para comprobar si hay algún problema con nuestro plist de la aplicación web, creamos una copia de "/Library/Server/Web/Config/apache2/webapps/com.apple.webapp.wiki.plist" y actualizamos únicamente el parámetro "name" en su interior
<key>name</key>
<string>com.example.wiki</string>
Luego lo inicié con "sudo webappctl start com.example.wiki" - y da el mismo error en el registro. Por supuesto, la aplicación "wiki original" se inició sin problemas
sudo webappctl start com.apple.webapp.wiki
Esto es lo que aparece en el "system.log".
Aug 26 04:53:42 ontoserver sudo[47931]: andrey : TTY=ttys003 ; PWD=/Library/Server/Web/Config/apache2/webapps ; USER=root ; COMMAND=/Applications/Server.app/Contents/ServerRoot/usr/sbin/webappctl start com.example.wiki
Aug 26 04:53:42 ontoserver serveradmin[47934]: Connected to the Notify Service
Aug 26 04:53:42 ontoserver servermgr_web[47850]: validating connection from 0 : 47500
Aug 26 04:53:42 ontoserver servermgr_web[47850]: xswebconfig failed: EXCEPTION: No place to put SSL directives, vhost www.ontometrics.com (
0 CoreFoundation 0x00007fff8ebff4f2 __exceptionPreprocess + 178
1 libobjc.A.dylib 0x00007fff8e73a73c objc_exception_throw + 48
2 CoreFoundation 0x00007fff8ebff439 -[NSException raise] + 9
3 ServerFoundation 0x0000000100648d8d -[WebVHost reconstruct] + 10543
4 ServerFoundation 0x0000000100640416 -[ConfigFile write] + 203
5 ServerFoundation 0x0000000100645811 -[WebVHost write] + 1601
6 ServerFoundation 0x0000000100652377 -[WebConfig setSettings:] + 12779
7 ServerFoundation 0x000000010065606f -[WebConfig write:] + 297
8 ServerFoundation 0x00000001005de934 -[XSWebConfig synchronizeAndReturnError:] + 188
9 servermgr_web 0x00000001009e8d35 set_webapp_state_with_webconfig + 1326
10 servermgr_web 0x00000001009e97d5 set_webapp_state_variant + 187
11 servermgr_web 0x00000001009eb109 -[servermgr_web setWebAppStateWithRequest:] + 204
12 CoreFoundation 0x00007fff8eb70a6c __invoking___ + 140
13 CoreFoundation 0x00007fff8eb708fe -[NSInvocation invoke] + 286
14 libservermgrcommon.dylib 0x00000001005a3300 -[PluginRequestHandler doProcessInputWithRequest:context:lockFileFD:] + 3304
15 libservermgrcommon.dylib 0x000000010059c326 __45-[GenericPlugin doCommand:forUser:withReply:]_block_invoke + 646
16 libdispatch.dylib 0x00007fff8d88d93d _dispatch_call_block_and_release + 12
17 libdispatch.dylib 0x00007fff8d88240b _dispatch_client_callout + 8
18 libdispatch.dylib 0x00007fff8d88703b _dispatch_queue_drain + 754
19 libdispatch.dylib 0x00007fff8d88d707 _dispatch_queue_invoke + 549
20 libdispatch.dylib 0x00007fff8d885d53 _dispatch_root_queue_drain + 538
21 libdispatch.dylib 0x00007fff8d885b00 _dispatch_worker_thread3 + 91
22 libsystem_pthread.dylib 0x00007fff8da484de _pthread_wqthread + 1129
23 libsystem_pthread.dylib 0x00007fff8da46341 start_wqthread + 13
)
Aug 26 04:53:42 ontoserver servermgr_web[47850]: servermgr_web: XSWebConfig sync failed; detail:Error Domain=XSServerFoundationErrorDomain Code=7 "Failed to write settings." UserInfo={NSLocalizedDescription=Failed to write settings.}
Información
Versión de OS X: El Capitan 10.11.6
Versión del servidor Apache: 2.4.18