Hi, on this blog post I'll will try to show you how to set up a Drupal development environment under VirtualBox which is a virtualization tool that allows us to create Virtual Machines or in our case Virtual Private Servers (VPS).
I'm writing this post so developers can have a different alternative to the current dockerized solutions such as Lando, Docksal or DDEV since I have found, during the time these tools are out, developers struggling a lot with their configuration, performance and set up of Drupal projects. Even though I agree they can save us sometime with some processes once a project is set up or updated and they might be good to cover up for some Non-Linux users so they don't have to deal with Linux commands I think having a bit of knowledge of Linux is key when it comes to working with LAMP applications. Using a Virtualized component or a virtual machine to set…Read more...
On this post, I'll be explaining as granular as possible how to configure an Ubuntu Server so you can run Drupal 7 or Drupal 8 or Drupal 9 sites or any PHP application on your local environment for development. We'll be using Ubuntu 18.04 which is the latest release until the date of this post and the php/apache packages provided by the distro and it will provide PHP 7.2 packages that are recommended for Drupal development.
This post is targeted for Apache Server only, which i think is the most robust web server for Drupal but overall the best option to run PHP applications natively. You can read more on the following links how to configure Drupal for other web servers or configurations such as Nginx if you are interested.
Let's start by getting the required packages:
Update: I have updated this tutorial to a latest release of Varnish, read here.
By default, Varnish does not work and it will never work with HTTPS requests it only understands plain HTTP. This means, that on mixed content websites, sites serving HTTPS and HTTP pages, the secure pages won't be or cannot be cached on Varnish reducing the load time compared to the non-secure version of the page for example.
There are many sites that offer lots of static content through HTTPS that can definitely be cached using Varnish and in order to do so we need to implement an extra layer before any request goes to our Varnish Server. This layer is going to be handled by a Load Balancer/Proxy Server which will take care of routing the HTTP and the HTTPS requests, by interpreting SSL and converting the…
On this tutorial I will show you how to configure Varnish as a proxy server so you can re route you requests to any Apache or Nginx Server.
Configuring Varnish on Ubuntu on distributed Servers is not a complex task, we just need to download some packages and then we will have to copy/paste the configurations below in order to start. Feel free to modify the provided configurations according to your needs. This post assumes there is another server Apache/Nginx listening on port 80 and running a Drupal site.
Ok, Let's begin.
Install Varnish 3.0.5 from Ubuntu 14.04 repositories:
$sudo apt-get install varnish
Configure varnish deamon:
$sudo nano /etc/default/varnish
You might have crossed through this error a lot when developing web apps sharing multiple domain names for the same app and it usually triggers when app with domain name A tries to grab images/fonts/audio and somo other files from the same app with domain name B. Cross-Origin Request defines a way for browsers to share content in a secure way preventing your site of Cross Site Scripting attacks. But sometimes you do have apps that require multiple domain names and the resources must be shared between these in the same network so you know that content sharing is secure.
Cross-Origin Request Blocked: The Same Origin Policy disallows reading the remote resource at http://mysite.com/sites/all/themes/mysite/js/slick/slick/fonts/slick.woff. This can be fixed by moving the resource to the same domain or enabling CORS.…
Update: I have update this tutorial with a latest release of Apache Solr for Drupal 7 and 8. Read here.
On this quick tutorial, I’ll show you the steps to have a quick default Apache Solr installation using Jetty on an Ubuntu Server 14.04 LTS, which is the latest Ubuntu release. These are the steps you need to set up an Apache Solr multicore on Ubuntu
Get default Java and Jetty, on a terminal window type:
#apt-get install default-jdk jetty libjetty-extra libjetty-extra-java
dowload Apache Solr from archives: https://archive.apache.org/dist/lucene/solr/3.6.2/
#wget https://archive.apache.org/dist/…Read more...
On this tutorial, I will explain how to configure a Drupal site so it can display a Map (Google Map) based on coordinates taken from a GPS file (*.GPX).
Install these 3 modules and the Geofield Map submodule that comes bundled with Geofield as usual or using drush, once you are finished installing, create a sample…Read more...
Content managers have to deal always with metadata provided by imagery of your website, this can be a tedious task for them and obviously it takes time to fill out all the meta data for your images so they can be properly displayed on the site, indexed by search providers, etc.
One of the easiest ways I found to get information from an image file on Drupal is by using a module called Exif, this module uses the exif specification format to get the information used by digital cameras for example. This…Read more...
On this tutorial we will learn how to easily install the necessary Ruby packages needed on Ubuntu 14.04 in order to run compass and let Drupal do the magic with SASS.
On a terminal window type:
$sudo apt-get install ruby ruby-dev
once ruby is installed, run:
$sudo gem install compass
$sudo gem install sass
and there you go!
run "compass watch" on the Drupal theme folder you chose for you site and that's all, Compass will start scanning all the *.scsc files and compile all the changes on your styles.
Some helpful samples that can be used to process data after a query on Drupal.
// Retrieve all records into an indexed array of stdClass objects.
// Retrieve all records into an associative array keyed by the field in the result specified.
// Retrieve a 2-column result set as an associative array of field 1 => field 2.
// You can also specify which two fields to use by specifying the column numbers for each field
$result->fetchAllKeyed(0,2); // would be field 0 => field 2
$result->fetchAllKeyed(1,0); // would be field 1 => field 0
// Retrieve a 1-column result set as one single array.
// Column number can be specified otherwise defaults to first column