Как изменить папку по умолчанию для Vagrant с html/?

Недавно я начал использовать Vagrant вместо MAMP, однако я вынужден помещать файлы своего веб-сайта в каталог «html», когда я хочу поместить их в корень проекта.

Я создал свою настройку Vagrant через PuPHPet, и у меня есть файл 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'


person ezeikel    schedule 17.12.2015    source источник


Ответы (2)


Сделать стандартный веб-узел Apache/Nginx vhost ненастраиваемым было на самом деле сознательным решением с моей стороны. Это помогает сохранять все стандартизированным.

Соответствующий код находится здесь, в 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?

Обычно большинство людей помещают каждый виртуальный хост в отдельный каталог в /var/www, точно так же, как вы сейчас настроили.

Например, у вас /var/www/ezeikelpemberton.

Для PHP-проектов рекомендуется размещать все общедоступные файлы за пределами файлов вашего приложения, где появляется подкаталог внутри корневого каталога вашего виртуального хоста.

Это будет выглядеть как /var/www/ezeikelpemberton/html или /var/www/ezeikelpemberton/public.

Если вы не хотите этого делать или не можете из-за плохой архитектуры приложения, просто используйте /var/www/ezeikelpemberton в качестве корня вашего виртуального хоста и веб-сайта.

В нынешнем виде вы не можете использовать /var/www в качестве веб-сайта вашего виртуального хоста, не заходя и вручную не изменяя кучу кода Puppet. Вы можете попробовать, но это нарушит настройку марионетки. Опять же, это компромисс, который мне пришлось сделать между полной пользовательской настройкой и моим собственным здравомыслием в вопросах отладки.

person Juan Treminio    schedule 14.01.2016

Вам нужно изменить часть 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
person Frederic Henri    schedule 17.12.2015
comment
Да, я пробовал это раньше, и вот как это выглядит сейчас. Еще ничего. Как будто что-то перевешивает его, может быть. - person ezeikel; 18.12.2015
comment
Нам нужно будет увидеть всю вашу конфигурацию, чтобы иметь возможность указать на проблему. - person Frederic Henri; 18.12.2015
comment
Обновлен вопрос, чтобы включить файл конфигурации. - person ezeikel; 18.12.2015
comment
что выводит, когда вы запускаете vagrant up? вы должны получить что-то вроде ==> default: Enabling and configuring shared folders... default: -- /Users/fhenri/project/examples/vagrant/ubuntu: /var/www - person Frederic Henri; 18.12.2015
comment
Когда я запускаю vagrant up, я получаю: ` ==› по умолчанию: подключение общих папок...` default:/var/www=> /Users/ezeikelpemberton/Development/ezeikelpemberton default: /tmp/vagrant-puppet/modules-07d828fcc868fec73d28961957011f95 => /Users/ezeikelpemberton/Development/ezeikelpemberton/puphpet/puppet/modules default: /tmp/vagrant-puppet/manifests-893fcda21077f5a583c2dbbba8515c0a => /Users/ezeikelpemberton/Development/ezeikelpemberton/puphpet/puppet - person ezeikel; 21.12.2015
comment
так что /var/www=> /Users/ezeikelpemberton/Development/ezeikelpemberton выглядит хорошо, вы не видите файлы, синхронизированные между двумя папками? у вас могут быть проблемы с разрешением, просто проверьте другую папку, чем /var/www, чтобы увидеть, будет ли это работать - person Frederic Henri; 21.12.2015
comment
Я не могу найти папку /var/www. Когда я запускаю vagrant init, в корне моего проекта создается папка с именем /ezeikelpemberton, которую я понял, должно быть, я создал, а затем удалил мной в первый раз, когда мой проект был создан. Возможно, эта создаваемая папка как-то связана с проблемой. - person ezeikel; 31.12.2015