Как настроить виртуальные хосты так, чтобы они указывали на два разных каталога

Я не знаю, почему при перезаписи не было подтверждения, которое должно присутствовать из-за параметра -iв mv. Но если предположить, что вы его не использовали и после операции был файл jpg Picturesnew, как вы указываете в комментарии под своим вопросом, ну -вы перезаписали один и тот же файл 20000 раз.

xargs -0 -Imysongs mv -i mysongs./Picturesnew

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

mv -i argument./Picutesnew

Поскольку каталога ./Picturesnewне было, команда mvподумала, что вы имеете в виду, что она должна переместить файл сюда и переименовать в ./Picturesnew. Так было 20000 раз.

После завершения работы конвейера должен остаться только один файл ./Picturesnew. Последний, который был перемещен. Предыдущие ушли.

Таким образом, эта форма намного безопаснее:

mv -i argument./Picturesnew/

Это потому, что /в конце устраняет путаницу в отношении того, что должно быть Picturesnew.

Что касается -i, вы не стали бы помещать его в этот пайплайн, так как он не будет работать. Он требует подтверждения.

2
21.01.2017, 09:23
1 ответ

Насколько я могу судить, есть несколько проблем, а может быть и больше. Для новичков, хотя вы указали Apache, где найти корень для каждого сервера, вы не дали Apache разрешения на "обслуживание" файлов из этих каталогов. Вы также не сказали Apache, что это виртуальные хосты. Есть и другие вещи, которые вам нужно сделать с conf-файлами виртуального хоста, но как минимум вам нужно дать Apache разрешение на сервер файлов в каталоге, и вам нужно сообщить Apache, что это определение виртуального хоста. Изменены только для этого минимума, два файла выглядят следующим образом:

Это новый файл виртуального хоста (/etc/apache2/sites-available/wasamar.com.ng.conf):

<VirtualHost *:80>

ServerName wasamar.com.ng

ServerAlias www.wasamar.com.ng

ServerAdmin info@wasamar.com.ng
DocumentRoot /var/www/html/wasamar/public

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf

# At least you need to make the folder accessable for serving by the server.
# Versions of Apache, and modules installed can make a difference in what's inside
# the Directory directive. But as an example:
<Directory "/var/www/html/wasamar_ts/public">
        <IfModule mod_authz_core.c>
            Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Allow from all
        </IfModule>
</Directory>
</VirtualHost>

Это новый файл виртуального хоста (/etc/apache2/sites-available/ts.wasamar.com.ng.conf):

<VirtualHost *:80>

ServerName ts.wasamar.com.ng

ServerAlias www.ts.wasamar.com.ng

ServerAdmin info@wasamar.com.ng
DocumentRoot /var/www/html/wasamar_ts/public/

# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf

# At least you need to make the folder accessable for serving by the server.
# Versions of Apache, and modules installed can make a difference in what's inside
# the Directory directive. But as an example:
<Directory "/var/www/html/wasamar_ts/public">
        <IfModule mod_authz_core.c>
            Require all granted
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Allow from all
        </IfModule>
</Directory>
</VirtualHost>

В обоих случаях изменение заключается в добавлении первой строки и последние десять строк.Внутри директивы вам, вероятно, понадобятся другие вещи, например, Параметры и AllowOverride .

Для того, чтобы все это работало, вам также понадобится что-то еще в вашем основном файле conf, возможно, httpd.conf в каком-то каталоге, вероятно, / etc / apache2 / . {{1 }} Нужна инструкция по включению этих новых файлов в конфигурацию. в простейшем случае, исходя из указанных путей, это будет выглядеть так:

Include sites-available/wasamar.com.ng.conf
Include sites-available/ts.wasamar.com.ng.conf

Если вы включаете только виртуальные хосты в каталог sites-available, то вы можете использовать

Include sites-available/*.conf

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

Вы можете много узнать и потратить дни на чтение и перечитывание документации Apache в Интернете или, возможно, включенной в вашу локальную установку Apache. Может показаться, что это много, но время потрачено не зря.

0
27.01.2020, 22:42

Теги

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