Назад | Перейти на главную страницу

a2ensite через сценарий оболочки

Я создал небольшой скрипт для добавления сайтов на свой сервер, и он выглядит так:

#!/bin/bash

echo "<VirtualHost *:80>
    ServerAdmin admin@example.com
    ServerName $1
    ServerAlias www.$1
    DocumentRoot /var/www/$1/public_html
    ErrorLog ${APACHE_LOG_DIR}/error-$1.log
    CustomLog ${APACHE_LOG_DIR}/access-$1.log combined
</VirtualHost>" > /etc/apache2/sites-available/$1.conf

mkdir /var/www/$1
mkdir /var/www/$1/public_html/

a2ensite /etc/apache2/sites-available/$1.conf

Это нормально работает.

Я могу запустить этот скрипт как ./newsite example.com и я получаю свой файл example.com.conf под sites-available и все. Но когда я бегу a2ensite, У меня следующая ошибка:

ERROR: Site /etc/apache2/sites-available/example.com does not exist!

Это странно, потому что, хотя я создаю файл с именем example.com.conf прежде чем я все еще получаю эту ошибку.

Любые идеи? Это ошибка?

PS: Только sudoers могут запускать этот скрипт.

Вы получаете эту ошибку, потому что a2ensite вы передаете полный путь к конфигурации вашего сайта. a2ensite ожидает передачи только имени сайта:

a2ensite example.com