Ich schrieb ein Setup-Skript für etwas und jetzt muss ich einen virtuellen Host damit erstellen. Um dies zu tun habe ich diesen Code:
echo -e \
"WSGISocketPrefix $DIRECTORY/socks/\n"\
"WSGIPythonHome $DIRECTORY/env/local\n"\
"WSGIRestrictStdout On\n"\
"WSGIRestrictSignal Off\n"\
"WSGIPythonOptimize 1\n"\
"<VirtualHost *:80>\n"\
" ServerAdmin [email protected]\n"\
" ServerName app.localhost\n"\
" DocumentRoot \"$DIRECTORY\"\n"\
" Alias /m/ $DIRECTORY/static/\n"\
" Alias /upfiles/ $DIRECTORY/askbot/upfiles/\n"\
" <DirectoryMatch \"$DIRECTORY/askbot/skins/([^/]+)/media\">\n"\
" Order deny,allow\n"\
" Allow from all\n"\
" </DirectoryMatch>\n"\
" <Directory \"$DIRECTORY/askbot/upfiles\">\n"\
" Order deny,allow\n"\
" Allow from all\n"\
" </Directory>\n"\
"\n"\
" WSGIDaemonProcess askbot_"$NUMBER"_\n"\
" WSGIProcessGroup askbot_"$NUMBER"_\n"\
" WSGIScriptAlias/$DIRECTORY/django.wsgi\n"\
"\n"\
' ErrorLog ${APACHE_LOG_DIR}/askbot_error.log'"\n"\
' CustomLog ${APACHE_LOG_DIR}/askbot_access.log combined'"\n"\
"</VirtualHost>\n" > /etc/apache2/sites-available/app.conf
$DIRECTORY
ist eine Variable den Pfad enthält, und daher sollte ihr Inhalt gedruckt werden. ${APACHE_LOG_DIR}
ist jedoch keine Variable hier und sollte so gedruckt werden, wie es ist. Leider, anstatt den Inhalt in die Datei zu schreiben, wird es mit einigen Fehlern auf dem Terminal wiedergegeben (Datei nicht gefunden usw.). Wenn ich die letzten zwei Zeilen entferne, funktioniert es, aber das ist natürlich keine Lösung, aber ich kann es nicht funktionieren.
Irgendwelche Ideen?
Schauen Sie sich auf: [hier Dokument] (https://en.wikipedia.org/wiki/Here_document) – Cyrus