Monday, 24 July 2017

Reformatting a php.ini file with Sublime Text 3 for use with Ansible

So quite a specific post this...

PHP .env files are of the format

KEY_A=true
KEY_B="This Is Another Value"

To set variables for use with a Jinja2 template they need to be something along the lines of

key_a: true
key_b: ThisIsAnotherValue

In Sublime Text in the replace all (CTRL+H)
Make sure that regex matching is on and not to preserve case.

Find What: (.+)=(.+)
Replace With: \L$1\E: $2

This will replace two groups of one or more characters. The first will be lowercased, the equals replaced with a colon and then the second group in its original case.

Then the original .env file can have the following in the Jinja2 template

KEY_A={{key_a}}
KEY_B={{key_b}}

Thursday, 3 November 2016

Useful Vagrant plugins

Some useful Vagrant plugins I've picked up along the way

vagrant-hostmanager
Updates your host file with entries

vagrant-reload
Allows you to reload the vm during provisioning

vagrant-share
Allows sharing access remotely to vms

vagrant-vbguest
For automatically updating the virtualbox plugins

vagrant-winnfsd
NFS for sharing folders

Monday, 11 January 2016

Vagrant not working after fresh Windows 10 x64 install

After recently re-installing Windows 10 x64 I discovered that to get vagrant to download box images, it uses an embedded version of curl. This requires the Microsoft Visual C++ 2010 Service Pack 1 Redistributable Package x86 version.

Wednesday, 16 December 2015

Occasionally making phpunit work with PhpStorm and homestead

When using homestead on vagrant I find that I need to use ssh/sftp setup for the server and interpreter for it to get the path mappings correct.

Settings I configure

"Build, Exection, Deployment" -> "Deployment"
Add an entry for the server and set its "Type" to be "SFTP".
In the "Connection" tab, set the details according to the information obtained by running "vagrant ssh-config".
Set the "Auth type" to "Key pair" and set the "Private key file" to be the location of the IdentityFile from the ssh-config.

In the "Mappings" tab, make sure that the deployment path remote server location matches the local path.

Set up the PHP interpreter by going to "PHP" and adding a remote Interpreter. Set the remote to be based on the "Deployment configuration", saves you setting up all the SSH information again.

In "PHP" -> "PHPUnit" add a "Remote Interpreter" and pick the one you set up.
Set the "custom autoloader" to be the location of your vendor/autoload.php and optionally set the location of you phpunit.xml in the "Test Runner" -> "Default configuration file"

Make sure xdebug is configured by doing similar to "sudo nano /etc/php/7.0/fpm/conf.d/20-xdebug.ini

xdebug.remote_enable = 1
xdebug.remote_connect_back = 1
xdebug.remote_port = 9000
xdebug.scream=0 
xdebug.cli_color=1
xdebug.show_local_vars=1

Restart the service for php by doing "sudo service php7.0-fpm restart" or similar.

Tuesday, 13 October 2015

Making node / npm / gulp / elixir work for Laravel using Homestead on Vagrant with Virtualbox on Windows

Wow what a title. More of a note to myself this one.

Problem: npm install or variants thereof cause errors, mainly related to long filenames when run inside a homestead virtualbox virtual machine on Windows.

A simple fix is to create a symbolic link inside the vm for the node_modules path so that it doesn't reside inside the folder being shared with the Windows file-system.

Modify the Vagrantfile or the scripts/homestead.rb file if using homestead to include the following as part of the config:

config.vm.provider "virtualbox" do |v|
    v.customize ["setextradata", :id, "VBoxInternal2/SharedFoldersEnableSymlinksCreate/v-root", "1"]
end

Then you'll need to run the Git Bash shell as admin, otherwise it won't let you create the symbolic links. The important part here is actually that winnfsd.exe starts as admin so you could change the compatibility in the properties to start as admin.

Start vagrant with a "vagrant up"

Once you've done "vagrant ssh", create a node_modules directory in your home directory, or somewhere similar and add a symbolic link to it within your Laravel project:

mkdir ~/node_modules
ln -sf ~/node_modules /home/vagrant/projectname

Then you can use

sudo npm install —no-bin-link

to install the node modules with. You might have to "sudo" depending on your configuration and whether you have further issues.

Thursday, 29 January 2015

New Windows 10 build 9933 coming?

It looks like 9933 might be coming soon...
Although it failed to download with an error 0x80246017, it looks as though there is a new build coming in the fast fbl_awsome1501 branch...

UPDATE: