如何更改 Vagrant 的默认文件夹 "html/"?
How do I change the default folder for Vagrant from being "html/"?
我最近开始使用 Vagrant 而不是 MAMP,但是当我想将网站文件放在项目根目录时,我不得不将它们放在 "html" 目录中。
我通过 PuPHPet 创建了我的 Vagrant 设置,并且有一个包含所有配置详细信息的 config.yml 文件。但是,我不知道在哪里可以更改它。
我已经尝试在 config.yml 中调整一些东西,但似乎无论我做什么,都只会使用 "html" 目录中的文件。
这是我的 config.yaml 的内容:
vagrantfile:
target: local
vm:
box: puphpet/ubuntu1404-x64
box_url: puphpet/ubuntu1404-x64
hostname: local.ezeikelpemberton.com
memory: '2056'
cpus: '1'
chosen_provider: virtualbox
network:
private_network: 192.168.56.101
forwarded_port:
vflnp_eneljjds8fyb:
host: '9100'
guest: '22'
post_up_message: ''
provider:
virtualbox:
modifyvm:
natdnshostresolver1: 'on'
showgui: '0'
vmware:
numvcpus: 1
parallels:
cpus: 1
provision:
puppet:
manifests_path: puphpet/puppet
manifest_file: site.pp
module_path: puphpet/puppet/modules
options:
- '--verbose'
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
- '--parser future'
synced_folder:
vflsf_doun4y9durhw:
source: ./
target: /var/www
sync_type: default
smb:
smb_host: ''
smb_username: ''
smb_password: ''
rsync:
args:
- '--verbose'
- '--archive'
- '-z'
exclude:
- .vagrant/
- .git/
auto: 'true'
owner: www-data
group: www-data
usable_port_range:
start: 10200
stop: 10500
ssh:
host: null
port: null
private_key_path: null
username: vagrant
guest_port: null
keep_alive: true
forward_agent: false
forward_x11: false
shell: 'bash -l'
vagrant:
host: detect
server:
install: '1'
packages: { }
users_groups:
install: '1'
groups: { }
users: { }
locale:
install: '1'
settings:
default_locale: ''
locales:
- en_GB.UTF-8
- en_US.UTF-8
firewall:
install: '1'
rules: { }
cron:
install: '1'
jobs: { }
nginx:
install: '0'
settings:
default_vhost: 1
proxy_buffer_size: 128k
proxy_buffers: '4 256k'
upstreams: { }
vhosts:
nxv_p5miathsr7ih:
server_name: awesome.dev
server_aliases:
- www.awesome.dev
www_root: /var/www/awesome
listen_port: '80'
index_files:
- index.html
- index.htm
- index.php
client_max_body_size: 1m
ssl: '0'
ssl_cert: ''
ssl_key: ''
ssl_port: '443'
ssl_protocols: ''
ssl_ciphers: ''
rewrite_to_https: '1'
spdy: '1'
locations:
nxvl_whbsfhlxovfg:
location: /
autoindex: 'off'
internal: 'false'
try_files:
- $uri
- $uri/
- /index.php$is_args$args
fastcgi: ''
fastcgi_index: ''
fastcgi_split_path: ''
nxvl_sbosc8jd6yme:
location: '~ \.php$'
autoindex: 'off'
internal: 'false'
try_files:
- $uri
- $uri/
- /index.php$is_args$args
fastcgi: '127.0.0.1:9000'
fastcgi_index: index.php
fastcgi_split_path: '^(.+\.php)(/.*)$'
fast_cgi_params_extra:
- 'SCRIPT_FILENAME $request_filename'
- 'APP_ENV dev'
proxies: { }
apache:
install: '1'
settings:
user: www-data
group: www-data
default_vhost: true
manage_user: false
manage_group: false
sendfile: 0
modules:
- proxy_fcgi
- rewrite
vhosts:
av_d0queryx27m3:
servername: ezeikelpemberton.dev
serveraliases:
- www.ezeikelpemberton.dev
docroot: /var/www/ezeikelpemberton
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_0jb9la25s89v:
path: /var/www/ezeikelpemberton
options:
- Indexes
- FollowSymlinks
- MultiViews
allow_override:
- All
require:
- 'all granted'
custom_fragment: ''
files_match:
avdfm_ioxnvcswcape:
path: \.php$
sethandler: 'proxy:fcgi://127.0.0.1:9000'
custom_fragment: ''
provider: filesmatch
provider: directory
php:
install: '1'
settings:
version: '56'
modules:
php:
- cli
- intl
- mcrypt
pear: { }
pecl: { }
ini:
display_errors: 'On'
error_reporting: '-1'
session.save_path: /var/lib/php/session
date.timezone: UTC
fpm_ini:
error_log: /var/log/php-fpm.log
fpm_pools:
phpfp_892qtltgdx43:
ini:
prefix: www
listen: '127.0.0.1:9000'
security.limit_extensions: .php
user: www-user
group: www-data
composer: '1'
composer_home: ''
xdebug:
install: '0'
settings:
xdebug.default_enable: '1'
xdebug.remote_autostart: '0'
xdebug.remote_connect_back: '1'
xdebug.remote_enable: '1'
xdebug.remote_handler: dbgp
xdebug.remote_port: '9000'
blackfire:
install: '0'
settings:
server_id: ''
server_token: ''
agent:
http_proxy: ''
https_proxy: ''
log_file: stderr
log_level: '1'
php:
agent_timeout: '0.25'
log_file: ''
log_level: '1'
xhprof:
install: '0'
wpcli:
install: '0'
version: v0.19.0
drush:
install: '0'
version: 6.3.0
ruby:
install: '1'
versions: { }
python:
install: '1'
packages: { }
versions: { }
nodejs:
install: '0'
npm_packages: { }
hhvm:
install: '0'
nightly: 0
composer: '1'
composer_home: ''
settings: { }
server_ini:
hhvm.server.host: 127.0.0.1
hhvm.server.port: '9000'
hhvm.log.use_log_file: '1'
hhvm.log.file: /var/log/hhvm/error.log
php_ini:
display_errors: 'On'
error_reporting: '-1'
date.timezone: UTC
mysql:
install: '1'
settings:
version: '5.6'
root_password: REMOVED
override_options: { }
adminer: 0
users:
mysqlnu_psx5weft66tg:
name: ep
password: REMOVED
databases:
mysqlnd_jav28l9rznbs:
name: wp_ezeikelpemberton
sql: ''
grants:
mysqlng_2oc8gig2bb94:
user: ep
table: '*.*'
privileges:
- ALL
mariadb:
install: '0'
settings:
version: '10.0'
root_password: '123'
override_options: { }
adminer: 0
users:
mariadbnu_az4063shxpse:
name: dbuser
password: '123'
databases:
mariadbnd_w692w3jhu6nr:
name: dbname
sql: ''
grants:
mariadbng_a316htguyz4k:
user: dbuser
table: '*.*'
privileges:
- ALL
postgresql:
install: '0'
settings:
global:
encoding: UTF8
version: '9.3'
server:
postgres_password: '123'
databases: { }
users: { }
grants: { }
adminer: 0
mongodb:
install: '0'
settings:
auth: 1
bind_ip: 127.0.0.1
port: '27017'
databases: { }
redis:
install: '0'
settings:
conf_port: '6379'
sqlite:
install: '0'
adminer: 0
databases: { }
mailcatcher:
install: '0'
settings:
smtp_ip: 0.0.0.0
smtp_port: 1025
http_ip: 0.0.0.0
http_port: '1080'
mailcatcher_path: /usr/local/rvm/wrappers/default
from_email_method: inline
beanstalkd:
install: '0'
settings:
listenaddress: 0.0.0.0
listenport: '11300'
maxjobsize: '65535'
maxconnections: '1024'
binlogdir: /var/lib/beanstalkd/binlog
binlogfsync: null
binlogsize: '10485760'
beanstalk_console: 0
rabbitmq:
install: '0'
settings:
port: '5672'
users: { }
vhosts: { }
plugins: { }
elastic_search:
install: '0'
settings:
version: 1.4.1
java_install: true
solr:
install: '0'
settings:
version: 4.10.2
port: '8984'
您需要更改 sync_foler 部分,因此您应该有类似
的内容
synced_folder:
vflsf_rwj26gh8ovmo:
source: html/
target: /var/www
sync_type: default
source
部分指向您要存储文件的文件夹,因此如果您想成为根目录,您可以使用
synced_folder:
vflsf_rwj26gh8ovmo:
source: ./
target: /var/www
sync_type: default
默认 Apache/Nginx vhost webroot non-configurable 实际上是我有意识的决定。它有助于保持一切标准化。
相关代码在Apache.pp:
if array_true($apache['settings'], 'default_vhost') {
$default_vhosts = {
'default_vhost_80' => {
'servername' => 'default',
'docroot' => $puphpet::apache::params::default_vhost_dir,
'port' => 80,
'directories' => $default_vhost_directories,
'default_vhost' => true,
},
'default_vhost_443' => {
'servername' => 'default',
'docroot' => $puphpet::apache::params::default_vhost_dir,
'port' => 443,
'directories' => $default_vhost_directories,
'default_vhost' => true,
'ssl' => 1,
},
}
}
我想问一下,真的打扰你看到一个 /var/www/html
目录只有一个 index.html
文件吗?
通常大多数人所做的是将每个 vhost 放入 /var/www
内的单独目录中,就像您现在已经设置好了一样。
比如你的是/var/www/ezeikelpemberton
.
对于 PHP 项目,最佳做法是将所有 publicly-accessible 文件放在应用文件之外,这是虚拟主机的 webroot 中的子目录所在的位置。
看起来像 /var/www/ezeikelpemberton/html
或 /var/www/ezeikelpemberton/public
。
如果你不想这样做,或者因为糟糕的应用程序架构而不能这样做,那么只需使用 /var/www/ezeikelpemberton
作为你的虚拟主机的根目录和网络根目录。
按照目前的情况,您 不能 使用 /var/www
作为虚拟主机的 webroot,而无需进入并手动更改一堆 Puppet 代码。您可以尝试,但它会破坏 puphpet 配置。同样,这是我必须在完成 user-configurability 和我自己在调试问题时的理智之间做出的 trade-off。
我最近开始使用 Vagrant 而不是 MAMP,但是当我想将网站文件放在项目根目录时,我不得不将它们放在 "html" 目录中。
我通过 PuPHPet 创建了我的 Vagrant 设置,并且有一个包含所有配置详细信息的 config.yml 文件。但是,我不知道在哪里可以更改它。
我已经尝试在 config.yml 中调整一些东西,但似乎无论我做什么,都只会使用 "html" 目录中的文件。
这是我的 config.yaml 的内容:
vagrantfile:
target: local
vm:
box: puphpet/ubuntu1404-x64
box_url: puphpet/ubuntu1404-x64
hostname: local.ezeikelpemberton.com
memory: '2056'
cpus: '1'
chosen_provider: virtualbox
network:
private_network: 192.168.56.101
forwarded_port:
vflnp_eneljjds8fyb:
host: '9100'
guest: '22'
post_up_message: ''
provider:
virtualbox:
modifyvm:
natdnshostresolver1: 'on'
showgui: '0'
vmware:
numvcpus: 1
parallels:
cpus: 1
provision:
puppet:
manifests_path: puphpet/puppet
manifest_file: site.pp
module_path: puphpet/puppet/modules
options:
- '--verbose'
- '--hiera_config /vagrant/puphpet/puppet/hiera.yaml'
- '--parser future'
synced_folder:
vflsf_doun4y9durhw:
source: ./
target: /var/www
sync_type: default
smb:
smb_host: ''
smb_username: ''
smb_password: ''
rsync:
args:
- '--verbose'
- '--archive'
- '-z'
exclude:
- .vagrant/
- .git/
auto: 'true'
owner: www-data
group: www-data
usable_port_range:
start: 10200
stop: 10500
ssh:
host: null
port: null
private_key_path: null
username: vagrant
guest_port: null
keep_alive: true
forward_agent: false
forward_x11: false
shell: 'bash -l'
vagrant:
host: detect
server:
install: '1'
packages: { }
users_groups:
install: '1'
groups: { }
users: { }
locale:
install: '1'
settings:
default_locale: ''
locales:
- en_GB.UTF-8
- en_US.UTF-8
firewall:
install: '1'
rules: { }
cron:
install: '1'
jobs: { }
nginx:
install: '0'
settings:
default_vhost: 1
proxy_buffer_size: 128k
proxy_buffers: '4 256k'
upstreams: { }
vhosts:
nxv_p5miathsr7ih:
server_name: awesome.dev
server_aliases:
- www.awesome.dev
www_root: /var/www/awesome
listen_port: '80'
index_files:
- index.html
- index.htm
- index.php
client_max_body_size: 1m
ssl: '0'
ssl_cert: ''
ssl_key: ''
ssl_port: '443'
ssl_protocols: ''
ssl_ciphers: ''
rewrite_to_https: '1'
spdy: '1'
locations:
nxvl_whbsfhlxovfg:
location: /
autoindex: 'off'
internal: 'false'
try_files:
- $uri
- $uri/
- /index.php$is_args$args
fastcgi: ''
fastcgi_index: ''
fastcgi_split_path: ''
nxvl_sbosc8jd6yme:
location: '~ \.php$'
autoindex: 'off'
internal: 'false'
try_files:
- $uri
- $uri/
- /index.php$is_args$args
fastcgi: '127.0.0.1:9000'
fastcgi_index: index.php
fastcgi_split_path: '^(.+\.php)(/.*)$'
fast_cgi_params_extra:
- 'SCRIPT_FILENAME $request_filename'
- 'APP_ENV dev'
proxies: { }
apache:
install: '1'
settings:
user: www-data
group: www-data
default_vhost: true
manage_user: false
manage_group: false
sendfile: 0
modules:
- proxy_fcgi
- rewrite
vhosts:
av_d0queryx27m3:
servername: ezeikelpemberton.dev
serveraliases:
- www.ezeikelpemberton.dev
docroot: /var/www/ezeikelpemberton
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_0jb9la25s89v:
path: /var/www/ezeikelpemberton
options:
- Indexes
- FollowSymlinks
- MultiViews
allow_override:
- All
require:
- 'all granted'
custom_fragment: ''
files_match:
avdfm_ioxnvcswcape:
path: \.php$
sethandler: 'proxy:fcgi://127.0.0.1:9000'
custom_fragment: ''
provider: filesmatch
provider: directory
php:
install: '1'
settings:
version: '56'
modules:
php:
- cli
- intl
- mcrypt
pear: { }
pecl: { }
ini:
display_errors: 'On'
error_reporting: '-1'
session.save_path: /var/lib/php/session
date.timezone: UTC
fpm_ini:
error_log: /var/log/php-fpm.log
fpm_pools:
phpfp_892qtltgdx43:
ini:
prefix: www
listen: '127.0.0.1:9000'
security.limit_extensions: .php
user: www-user
group: www-data
composer: '1'
composer_home: ''
xdebug:
install: '0'
settings:
xdebug.default_enable: '1'
xdebug.remote_autostart: '0'
xdebug.remote_connect_back: '1'
xdebug.remote_enable: '1'
xdebug.remote_handler: dbgp
xdebug.remote_port: '9000'
blackfire:
install: '0'
settings:
server_id: ''
server_token: ''
agent:
http_proxy: ''
https_proxy: ''
log_file: stderr
log_level: '1'
php:
agent_timeout: '0.25'
log_file: ''
log_level: '1'
xhprof:
install: '0'
wpcli:
install: '0'
version: v0.19.0
drush:
install: '0'
version: 6.3.0
ruby:
install: '1'
versions: { }
python:
install: '1'
packages: { }
versions: { }
nodejs:
install: '0'
npm_packages: { }
hhvm:
install: '0'
nightly: 0
composer: '1'
composer_home: ''
settings: { }
server_ini:
hhvm.server.host: 127.0.0.1
hhvm.server.port: '9000'
hhvm.log.use_log_file: '1'
hhvm.log.file: /var/log/hhvm/error.log
php_ini:
display_errors: 'On'
error_reporting: '-1'
date.timezone: UTC
mysql:
install: '1'
settings:
version: '5.6'
root_password: REMOVED
override_options: { }
adminer: 0
users:
mysqlnu_psx5weft66tg:
name: ep
password: REMOVED
databases:
mysqlnd_jav28l9rznbs:
name: wp_ezeikelpemberton
sql: ''
grants:
mysqlng_2oc8gig2bb94:
user: ep
table: '*.*'
privileges:
- ALL
mariadb:
install: '0'
settings:
version: '10.0'
root_password: '123'
override_options: { }
adminer: 0
users:
mariadbnu_az4063shxpse:
name: dbuser
password: '123'
databases:
mariadbnd_w692w3jhu6nr:
name: dbname
sql: ''
grants:
mariadbng_a316htguyz4k:
user: dbuser
table: '*.*'
privileges:
- ALL
postgresql:
install: '0'
settings:
global:
encoding: UTF8
version: '9.3'
server:
postgres_password: '123'
databases: { }
users: { }
grants: { }
adminer: 0
mongodb:
install: '0'
settings:
auth: 1
bind_ip: 127.0.0.1
port: '27017'
databases: { }
redis:
install: '0'
settings:
conf_port: '6379'
sqlite:
install: '0'
adminer: 0
databases: { }
mailcatcher:
install: '0'
settings:
smtp_ip: 0.0.0.0
smtp_port: 1025
http_ip: 0.0.0.0
http_port: '1080'
mailcatcher_path: /usr/local/rvm/wrappers/default
from_email_method: inline
beanstalkd:
install: '0'
settings:
listenaddress: 0.0.0.0
listenport: '11300'
maxjobsize: '65535'
maxconnections: '1024'
binlogdir: /var/lib/beanstalkd/binlog
binlogfsync: null
binlogsize: '10485760'
beanstalk_console: 0
rabbitmq:
install: '0'
settings:
port: '5672'
users: { }
vhosts: { }
plugins: { }
elastic_search:
install: '0'
settings:
version: 1.4.1
java_install: true
solr:
install: '0'
settings:
version: 4.10.2
port: '8984'
您需要更改 sync_foler 部分,因此您应该有类似
的内容 synced_folder:
vflsf_rwj26gh8ovmo:
source: html/
target: /var/www
sync_type: default
source
部分指向您要存储文件的文件夹,因此如果您想成为根目录,您可以使用
synced_folder:
vflsf_rwj26gh8ovmo:
source: ./
target: /var/www
sync_type: default
默认 Apache/Nginx vhost webroot non-configurable 实际上是我有意识的决定。它有助于保持一切标准化。
相关代码在Apache.pp:
if array_true($apache['settings'], 'default_vhost') {
$default_vhosts = {
'default_vhost_80' => {
'servername' => 'default',
'docroot' => $puphpet::apache::params::default_vhost_dir,
'port' => 80,
'directories' => $default_vhost_directories,
'default_vhost' => true,
},
'default_vhost_443' => {
'servername' => 'default',
'docroot' => $puphpet::apache::params::default_vhost_dir,
'port' => 443,
'directories' => $default_vhost_directories,
'default_vhost' => true,
'ssl' => 1,
},
}
}
我想问一下,真的打扰你看到一个 /var/www/html
目录只有一个 index.html
文件吗?
通常大多数人所做的是将每个 vhost 放入 /var/www
内的单独目录中,就像您现在已经设置好了一样。
比如你的是/var/www/ezeikelpemberton
.
对于 PHP 项目,最佳做法是将所有 publicly-accessible 文件放在应用文件之外,这是虚拟主机的 webroot 中的子目录所在的位置。
看起来像 /var/www/ezeikelpemberton/html
或 /var/www/ezeikelpemberton/public
。
如果你不想这样做,或者因为糟糕的应用程序架构而不能这样做,那么只需使用 /var/www/ezeikelpemberton
作为你的虚拟主机的根目录和网络根目录。
按照目前的情况,您 不能 使用 /var/www
作为虚拟主机的 webroot,而无需进入并手动更改一堆 Puppet 代码。您可以尝试,但它会破坏 puphpet 配置。同样,这是我必须在完成 user-configurability 和我自己在调试问题时的理智之间做出的 trade-off。