• Ошибки запуска vagrant?

    @Ntari Автор вопроса
    Дмитрий,

    once-as-root.sh
    #!/usr/bin/env bash
    
    #== Import script args ==
    
    timezone=$(echo "$1")
    
    #== Bash helpers ==
    
    function info {
      echo " "
      echo "--> $1"
      echo " "
    }
    
    #== Provision script ==
    
    info "Provision-script user: `whoami`"
    
    export DEBIAN_FRONTEND=noninteractive
    
    info "Configure timezone"
    timedatectl set-timezone ${timezone} --no-ask-password
    
    info "Prepare root password for MySQL"
    debconf-set-selections <<< "mariadb-server-10.0 mysql-server/root_password password \"''\""
    debconf-set-selections <<< "mariadb-server-10.0 mysql-server/root_password_again password \"''\""
    echo "Done!"
    
    info "Update OS software"
    apt-get update
    apt-get upgrade -y
    
    info "Install additional software"
    apt-get install -y php7.0-curl php7.0-cli php7.0-intl php7.0-mysqlnd php7.0-gd php7.0-fpm php7.0-mbstring php7.0-xml unzip nginx mariadb-server-10.0 php.xdebug
    
    info "Configure MySQL"
    sed -i "s/.*bind-address.*/bind-address = 0.0.0.0/" /etc/mysql/mariadb.conf.d/50-server.cnf
    mysql -uroot <<< "CREATE USER 'root'@'%' IDENTIFIED BY ''"
    mysql -uroot <<< "GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'"
    mysql -uroot <<< "DROP USER 'root'@'localhost'"
    mysql -uroot <<< "FLUSH PRIVILEGES"
    echo "Done!"
    
    info "Configure PHP-FPM"
    sed -i 's/user = www-data/user = vagrant/g' /etc/php/7.0/fpm/pool.d/www.conf
    sed -i 's/group = www-data/group = vagrant/g' /etc/php/7.0/fpm/pool.d/www.conf
    sed -i 's/owner = www-data/owner = vagrant/g' /etc/php/7.0/fpm/pool.d/www.conf
    cat << EOF > /etc/php/7.0/mods-available/xdebug.ini
    zend_extension=xdebug.so
    xdebug.remote_enable=1
    xdebug.remote_connect_back=1
    xdebug.remote_port=9000
    xdebug.remote_autostart=1
    EOF
    echo "Done!"
    
    info "Configure NGINX"
    sed -i 's/user www-data/user vagrant/g' /etc/nginx/nginx.conf
    echo "Done!"
    
    info "Enabling site configuration"
    ln -s /app/vagrant/nginx/app.conf /etc/nginx/sites-enabled/app.conf
    echo "Done!"
    
    info "Initailize databases for MySQL"
    mysql -uroot <<< "CREATE DATABASE yii2basic"
    mysql -uroot <<< "CREATE DATABASE yii2basic_test"
    echo "Done!"
    
    info "Install composer"
    curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer


    once-as-vagrant.sh
    #!/usr/bin/env bash
    
    #== Import script args ==
    
    github_token=$(echo "$1")
    
    #== Bash helpers ==
    
    function info {
      echo " "
      echo "--> $1"
      echo " "
    }
    
    #== Provision script ==
    
    info "Provision-script user: `whoami`"
    
    info "Configure composer"
    composer config --global github-oauth.github.com ${github_token}
    echo "Done!"
    
    info "Install project dependencies"
    cd /app
    composer --no-progress --prefer-dist install
    
    info "Create bash-alias 'app' for vagrant user"
    echo 'alias app="cd /app"' | tee /home/vagrant/.bash_aliases
    
    info "Enabling colorized prompt for guest console"
    sed -i "s/#force_color_prompt=yes/force_color_prompt=yes/" /home/vagrant/.bashrc


    always-as-root.sh
    #!/usr/bin/env bash
    
    #== Bash helpers ==
    
    function info {
      echo " "
      echo "--> $1"
      echo " "
    }
    
    #== Provision script ==
    
    info "Provision-script user: `whoami`"
    
    info "Restart web-stack"
    service php7.0-fpm restart
    service nginx restart
    service mysql restart
  • Ошибки запуска vagrant?

    @Ntari Автор вопроса
    Дмитрий, да стандартный конфиг yii там:

    require 'yaml'
    require 'fileutils'
    
    required_plugins = %w( vagrant-hostmanager vagrant-vbguest )
    required_plugins.each do |plugin|
        exec "vagrant plugin install #{plugin}" unless Vagrant.has_plugin? plugin
    end
    
    domains = {
      app: 'yii2basic.dev'
    }
    
    vagrantfile_dir_path = File.dirname(__FILE__)
    
    config = {
      local: vagrantfile_dir_path + '/vagrant/config/vagrant-local.yml',
      example: vagrantfile_dir_path + '/vagrant/config/vagrant-local.example.yml'
    }
    
    # copy config from example if local config not exists
    FileUtils.cp config[:example], config[:local] unless File.exist?(config[:local])
    # read config
    options = YAML.load_file config[:local]
    
    # check github token
    if options['github_token'].nil? || options['github_token'].to_s.length != 40
      puts "You must place REAL GitHub token into configuration:\n/yii2-app-basic/vagrant/config/vagrant-local.yml"
      exit
    end
    
    # vagrant configurate
    Vagrant.configure(2) do |config|
      # select the box
      config.vm.box = 'bento/ubuntu-16.04'
    
      # should we ask about box updates?
      config.vm.box_check_update = options['box_check_update']
    
      config.vm.provider 'virtualbox' do |vb|
        # machine cpus count
        vb.cpus = options['cpus']
        # machine memory size
        vb.memory = options['memory']
        # machine name (for VirtualBox UI)
        vb.name = options['machine_name']
      end
    
      # machine name (for vagrant console)
      config.vm.define options['machine_name']
    
      # machine name (for guest machine console)
      config.vm.hostname = options['machine_name']
    
      # network settings
      config.vm.network 'private_network', ip: options['ip']
    
      # sync: folder 'yii2-app-advanced' (host machine) -> folder '/app' (guest machine)
      config.vm.synced_folder './', '/app', owner: 'vagrant', group: 'vagrant'
    
      # disable folder '/vagrant' (guest machine)
      config.vm.synced_folder '.', '/vagrant', disabled: true
    
      # hosts settings (host machine)
      config.vm.provision :hostmanager
      config.hostmanager.enabled            = true
      config.hostmanager.manage_host        = true
      config.hostmanager.ignore_private_ip  = false
      config.hostmanager.include_offline    = true
      config.hostmanager.aliases            = domains.values
    
      # quick fix for failed guest additions installations
      # config.vbguest.auto_update = false
    
      # provisioners
      config.vm.provision 'shell', path: './vagrant/provision/once-as-root.sh', args: [options['timezone']]
      config.vm.provision 'shell', path: './vagrant/provision/once-as-vagrant.sh', args: [options['github_token']], privileged: false
      config.vm.provision 'shell', path: './vagrant/provision/always-as-root.sh', run: 'always'
    
      # post-install message (vagrant console)
      config.vm.post_up_message = "App URL: http://#{domains[:app]}"
    end
  • Ошибки запуска vagrant?

    @Ntari Автор вопроса
    Дмитрий Шицков, ??? Что вы имеете ввиду? Я просто зашел в папку с приложением и запустил vagrant up --provision
  • Ошибки запуска vagrant?

    @Ntari Автор вопроса
    Дмитрий Шицков, я не знаю. По какой ссылке мне перейти чтобы увидеть мое локально-развернутое приложение? Вот это чтоли yii2basic.dev ? Она не открывается.
  • Почтовый клиент с шаблонами писем?

    @Ntari Автор вопроса
    Таки да. Отчасти в QuickText удалось почти все настроить как надо. Правда получателей из интерфейса нельзя задать, но я нашел как можно отредактировать файл где он хранит шаблон и там задать их. А еще он совсем не знает полей типа копии (cc), скрытые копии (bcc) и т.п. Ну да ладно. У меня там были только копии, задал их всех как получателей (to). Хз вообще в чем между ними разница. Думаю и так сойдет.
  • Почтовый клиент с шаблонами писем?

    @Ntari Автор вопроса
    Нашел более удобное и бесплатное расширение QuickText, но оно не умеет задавать получателей... А для меня это критично
  • Почтовый клиент с шаблонами писем?

    @Ntari Автор вопроса
    К тому же там все что мне нужно за деньги. Прем надо покупать.
  • Почтовый клиент с шаблонами писем?

    @Ntari Автор вопроса
    Уже видел. Я не понимаю как его использовать. Thunderbird и так штука очень непростая. А тут вообще трэш. Расширение то я установил, но где писать шаблон так и не смог найти.