DocumentRoot всегда по умолчанию / var / www / html и не может изменить его

Я настроил виртуальный хост с помощью PuPHPet (Vagrant-Puppet-PHP). Очевидно, PuPHPet создает сайт по умолчанию для меня с этой конфигурацией 10-default_vhost_80.conf

 <VirtualHost *:80>
ServerName default

## Vhost docroot
DocumentRoot "/var/www/html"
## Directories, there should at least be a declaration for /var/www/html

<Directory "/var/www/html">
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Require all granted

<FilesMatch "\.php$">
Require all granted
SetHandler proxy:fcgi://127.0.0.1:9000
</FilesMatch>

</Directory>

## Logging
ErrorLog "/var/log/apache2/default_vhost_80_error.log"ServerSignature Off
CustomLog "/var/log/apache2/default_vhost_80_access.log" combined
</VirtualHost>

И я создал этот конфиг сайта site_dev.conf

<VirtualHost *:80>
ServerName site.dev

## Vhost docroot
DocumentRoot "/var/www/web"
## Directories, there should at least be a declaration for /var/www/web

<Directory "/var/www/web">
Options Indexes FollowSymlinks MultiViews
AllowOverride All
Require all granted

<FilesMatch "\.php$">
Require all granted
SetHandler proxy:fcgi://127.0.0.1:9000

</FilesMatch>

</Directory>

## Logging
ErrorLog "/var/log/apache2/av_0rjxvm6sfxhm_error.log"ServerSignature Off
CustomLog "/var/log/apache2/av_0rjxvm6sfxhm_access.log" combined

## Server aliases
ServerAlias www.site.dev

## SetEnv/SetEnvIf for environment variables
SetEnv APP_ENV dev
</VirtualHost>

Конфигурация по умолчанию apache2.conf

 ServerName "local.puphpet"ServerRoot "/etc/apache2"PidFile ${APACHE_PID_FILE}
Timeout 120
KeepAlive Off
MaxKeepAliveRequests 100
KeepAliveTimeout 15

User www-data
Group www-data

AccessFileName .htaccess
<FilesMatch "^\.ht">
Require all denied
</FilesMatch>

<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>


HostnameLookups Off
ErrorLog "/var/log/apache2/error.log"LogLevel warn
EnableSendfile Off

#Listen 80


Include "/etc/apache2/mods-enabled/*.load"Include "/etc/apache2/mods-enabled/*.conf"Include "/etc/apache2/ports.conf"
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

IncludeOptional "/etc/apache2/conf.d/*.conf"IncludeOptional "/etc/apache2/sites-enabled/*"

Я уже отключил 10-default_vhost_80 и перезагрузил apache, однако мой DocumentRoot по-прежнему указывает на /var/www/html/ я что-то пропустил?

3

Решение

Так что я сделал /var/www/html в символическую ссылку и указать на /var/www/web, Это решило мою проблему в настоящее время.

ОБНОВИТЬ
Я нашел еще одну проблему, используя решение выше, это влияет на xdebug Конфигурация у меня есть, и процесс не может найти файлы в /var/www/web потому что ищет файлы в символической ссылке /var/www/html, Так
другая работа — это изменить 10-default_vhost_80.conf файл и изменение /var/www/html в /var/www/web вручную и перезагрузите сервер. Все идет нормально.

ОБНОВЛЕНИЕ 2
Таким образом, правильное решение заключается в том, что вам нужно убедиться, что Directory Block заполнен в puphpet Конфигуратор и будет производить directories раздел, который вы видите в yaml файл ниже. Я думаю, что это связано с этим обновлением apache 2.4 почему это нужно сделать.

Итак, я закончил с этим config.yaml

    av_s4zfpb2muecx:
servername: sandbox.dev
serveraliases:
- www.sandbox.dev
docroot: /var/www/web
port: '80'
setenv:
- 'APP_ENV dev'
custom_fragment: ''
ssl: '0'
ssl_cert: ''
ssl_key: ''
ssl_chain: ''
ssl_certs_dir: ''
ssl_protocol: ''
ssl_cipher: ''
directories:
avd_e84h116m6dg3:
path: /var/www/web
options:
- Indexes
- FollowSymlinks
- MultiViews
allow_override:
- All
require:
- 'all granted'
custom_fragment: ''
files_match:
avdfm_e84h116m6dg3:
path: \.php$
sethandler: 'proxy:fcgi://127.0.0.1:9000'
custom_fragment: ''
provider: filesmatch
provider: directory

Также, если вы видите, что ваш PHP файлы не разбираются, убедитесь, что включить files_match раздел. Это не добавлено puphpet Конфигуратор автоматически, так что вам нужно добавить это через жесткий код.

1

Другие решения

Я изменил путь к документированию и пути к каталогам на / var / www / www, как показано ниже. Это все еще создает папку html, но служит из папки www, что я и хочу.

vhosts:
av_dpp1xawpupht:
servername: mysite.local
serveraliases:
- www.mysite.local
docroot: /var/www/www
port: '80'
setenv:
- 'APPLICATION_ENV development'
custom_fragment: ''
ssl: '0'
ssl_cert: ''
ssl_key: ''
ssl_chain: ''
ssl_certs_dir: ''
ssl_protocol: ''
ssl_cipher: ''
directories:
avd_rtgzo3tlwbux:
path: /var/www/www
options:
- Indexes
- FollowSymlinks
- MultiViews
allow_override:
- All
require:
- 'all granted'
custom_fragment: ''
files_match:
avdfm_q9dzltiv10d5:
path: \.php$
sethandler: 'proxy:fcgi://127.0.0.1:9000'
custom_fragment: ''
provider: filesmatch
provider: directory
0

У меня тоже была эта проблема.

Для меня это было вызвано servername собственность в моем puphpet/config.yaml файл не соответствует домену, указанному в моем hosts файл.

Я обеспечил IP-адрес и домен, указанные в моем puphpet/config.yaml файл:

vm:
network:
private_network: 192.168.56.199
.
.
.

vhosts:
av_9kfiq4m95oac:
servername: mysite.dev
serveraliases:
- www.mysite.dev

соответствует тому, что я указал в моем hosts файл:

192.168.56.199 mysite.dev www.mysite.dev

Ох, и не забудь бежать vagrant provision после внесения изменений в puphpet/config.yaml файл (который поймал меня несколько раз).

0
По вопросам рекламы [email protected]