Apache не обслуживает файлы

Su script es claramente un bashscript, pero lo está ejecutando usando sh.

En lugar de usar explícitamente shpara iniciar el script,

  1. Utilice basho
  2. Haga que el script sea ejecutable y agregue una línea#!-apropiada en la primera línea que apunte al intérprete bash, y ejecute el script con ./cli-unit.sh.

No se puede esperar que el shell shcomprendabash-la sintaxis específica del shell.


Tengo un par de problemas adicionales con algunas de las cosas en la secuencia de comandos que muestra:

  • Use nombres de variables de shell en minúsculas para que no entren en conflicto accidentalmente con las variables de entorno del sistema. En el código, establece SHELL, que generalmente es la ruta al intérprete de shell actual.
  • No use diffpara hacer una comparación de cadenas. Solo haz if [ "$variable1" != "$variable2" ]para probar la desigualdad.
  • Use printfen lugar de echopara generar datos variables (consulte " ¿Por qué printf es mejor que echo? " ).

Dirigiéndose aldiff:

if [ "$FOUND" != "$EXPECTED" ]; then
    # code as before
    return 1
fi
# code as before
return 0

Dentro de la rama if, aún puede usar diffpara mostrar la diferencia (, especialmente si otro script o usuario está esperando ese tipo de resultado de este guión ). Otra opción sería hacer

if [ "$FOUND" != "$EXPECTED" ]; then
    # $FOUND is different from $EXPECTED
    printf 'FAIL (%s): Found: %s\n' "$TITLE" "$FOUND"
    printf 'FAIL (%s): Expected: %s\n' "$TITLE" "$EXPECTED"
    # other code here
 fi
 # rest of script

o algo similar.

0
12.05.2019, 12:15
1 ответ

Насколько я помню из ваших снимков экрана, вы используете каталог /srv для обслуживания ваших файлов, что не является стандартным способом в Debian, насколько я помню.

Обязательно проверьте в /etc/apache2/apache2.conf, что доступ для сервера apache к каталогу /srv разрешен, так как в стандартной конфигурации доступ к этому каталогу запрещен.

Это должна быть запись с комментариями, как эта:

#<Directory /srv/>
#   Options Indexes FollowSymLinks
#   AllowOverride None
#   Require all granted
#</Directory>

Просто раскомментируйте этот блок и перезагрузите apache2 через systemctl reload apache2и каталоги в /srv должны быть доступны.

Также не забудьте активировать сайт через a2ensite linuxvm232bи systemctl reload apache2

.
0
28.01.2020, 03:41

Теги

Похожие вопросы