How to Install Drupal 7 with SSL on FreeBSD 10.2

Drupal is free and open source content management framework used by 2.1% of the web on the world web, written in PHP under GPL(GNU General Public License). It is used by a people around the world from a personal blog to corporate, government site or forum, political site and news site. It used too for business corporate and knowledge management. Drupal has been released on january 2001 by Dries Buytaert under GPL, and until this years 2015 drupal developer has provided more than 31.000 module.

Drupal Core is the core of of drupal itself, contains a basic of content management system and frameworks, including user management, page layout configuration and system administration etc. It is also contains a modules that can be activated/enable by administrator to extend the functionally of the website.

In this tutorial we will discuss about the drupal installation. We will install drupal 7 on FreeBSD 10.2 with Apache as the web server, MySQL as the database system and the last we will configure the SSL for it.

Step 1 - Install Apache and PHP

Apache is one of popular web server in the world. use by a million website to serve the site, provide a variety of modules, easy to install and configure and so powerful. You can install Apache and PHP from FreeBSD repository with pkg command.

pkg install apache24 mod_php56 php56-mysql php56-mysqli php56-curl

Now copy the php.ini-production file to php.ini.

cd /usr/local/etc/
cp php.ini-production php.ini

Edit php.ini file with nano editor, uncomment the value of  "date.timezone"  with your timezone.

nano -c php.ini

On the line 926.

date.timezone: Asia/Jakarta

Save and Exit. Go to the apache configuration directory, and edit the file "httpd.conf" with nano editor :

cd /usr/local/etc/apache24/
nano -c httpd.conf

Uncomment the line 220 and change the value to the localhost IP.


add "index.php" to the line 278.

DirectoryIndex index.php index.html

Next, under the line 288, paste configuration below :

<FilesMatch "\.php$">
SetHandler application/x-httpd-php

<FilesMatch "\.phps$">
SetHandler application/x-httpd-php-source

PHP Configuration

Save and Exit.

Next, add apache to the start up with sysrc command, and start it :

sysrc apache24_enable=yes
service apache24 start

Verify that apache is running by visiting FreeBSD server IP.

Step 2 - Install and Configure MySQL

Drupal 7 support for mysql - I've try on my box to use mariadb, but there is an error. In this tutorial we will use mysql as the database system. Install mysql with pkg command :

pkg install mysql56-server mysql56-client

Once installation is done, copy configuration file for mysql to directory "/usr/local/etc/".

cp /usr/local/share/mysql/my-default.cnf /usr/local/etc/my.cnf

And add the mysql service to the boot time with sysrc :

sysrc mysql_enable=yes

Now start mysql :

service mysql-server start

Next, configure mysql root password by typing command below :


Set root password? [Y/n] Y
Re-enter new password: REPEAT

Remove anonymous users? [Y/n] Y
Disallow root login remotely? [Y/n] Y
Remove test database and access to it? [Y/n] Y
Reload privilege tables now? [Y/n] Y

mysql is configured with username root and your pasword.

Step 3 - Create Database for Drupal

In this step we will log in to the mysql shell with a username and password that has been set up. Log in to the mysql shell with command below :

mysql -u roop -p TYPE YOUR PASSWORD

Now we will create new database for drupal named "drupaldb", then add new mysql user called "drupaluser" with password "drupaluser@". Next grant the user to the database was created. You can do it by typing mysql command below :

create database drupaldb;
create user drupaluser@localhost identified by 'drupaluser@';
grant all privileges on drupaldb.* to drupaluser@localhost identified by 'drupaluser@';
flush privileges; \q

Create Database for Drupal

Database "drupaldb" for drupal is created.

Step 4 - Install Drupal 7

Drupal 7 is available on freebsd repository, you can install it manually or from the freebsd ports. In this tutorial we will install Drupal 7 from the freebsd repository with pkg command. Instaling Drupal 7 with pkg command :

pkg install drupal7

Now drupal is installed on directory "/usr/local/www/drupal7/". Next, change the owner of the directory to the user called "www".

cd /usr/local/www/
chown -R www:www drupal7/

Next, copy the drupal configuration file, and change the owner of that file :

cd /usr/local/www/drupal7/sites/default/
cp default.settings.php settings.php
chown www:www settings.php

Step 5 - SSL Configuration for Drupal

We will gernerate new SSL certificate for Drupal site. make sure the openssl is installed inside the server. Generate new certificate with command openssl and stored the certificate file in to "/usr/local/etc/apache24/ssl/" directory.

cd /usr/local/etc/apache24/
mkdir ssl; cd ssl

And generate the certificate file :

sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /usr/local/etc/apache24/ssl/apache.key -out /usr/local/etc/apache24/ssl/apache.crt

Fill all with your personal information :

Country Name (2 letter code) [AU]:
State or Province Name (full name) [Some-State]:
Locality Name (eg, city) []:
Organization Name (eg, company) [Internet Widgits Pty Ltd]:
Organizational Unit Name (eg, section) []:
Common Name (e.g. server FQDN or YOUR name) []:
Email Address []:

Change permission of the cerificate file :

cd /usr/local/etc/apache24/ssl/
chmod 600 *

Next, load apache ssl module by editing apache configuration "httpd.conf".

cd /usr/local/etc/apache24/
nano -c httpd.conf

Uncomment this line :

#Line 70
LoadModule authn_socache_module libexec/apache24/

#Line 89
LoadModule socache_shmcb_module libexec/apache24/

#Line 141
LoadModule ssl_module libexec/apache24/

Save and Exit.

Step 6 - VirtualHost Configuration for Drupal

In this section we will create new virtualhost configuration file on the apache directory. Now go to the apache directory and create new directory "virtualhost".

cd /usr/local/etc/apache24/
mkdir virtualhost/

Then create create new file for virtualhost with nano editor :

cd virtualhost/
nano -c drupal.conf

And paste virtualhost configuration below :

Listen 443
<VirtualHost _default_:443>
# Directory for the file stored
DocumentRoot "/usr/local/www/drupal7"
ErrorLog "/var/log/"
CustomLog "/var/log/" common

SSLEngine on
SSLCertificateFile /usr/local/etc/apache24/ssl/server.crt
SSLCertificateKeyFile /usr/local/etc/apache24/ssl/server.key

<Directory "/usr/local/www/drupal7">
Options Indexes FollowSymLinks MultiViews
Options All
AllowOverride All
# The syntax is case sensitive!
Require all granted

Save and exit. Now back to the apache directory and edit "httpd.conf" file.

cd /usr/local/etc/apache24/ nano -c httpd.conf

Add to the end of the line new configuration below :

Include etc/apache24/virtualhost/*

Save and exit. Next, test the apache configuration with command :

apachectl configtest

If there is no error, restart the apache :

service apache24 restart

Step 7 - Configure Drupal 7

Now virtualhost for drupal is configured, so you visit the drupal domain with https option "". Next, you see the drupal site is up, now select the installation type "Standart" and click "Save and Continue".

Installation Type

Choose the language "English" and "Save and continue".

Select language

Then fill the database configuration with our database configuration. Save and continue.

Configure the Database

Next, just wait for installation, and if it is done, fill with your configuration.

Configure admin

and Finished, drupal configuration is done.

Drupal installation is done

If you want to check the site, click on "Visit your new site". You can see your drupal site :



Drupal is open source content management framework based on PHP developed by Dries Buytaert on 2001 under GPL(Genral Public License). Until the day drupal has been provide up to 31.000 modules. Core of drupal named "Drupal Core",  contains a basic of content management system and frameworks, including user management, page layout configuration and system administration etc. Drupal is user firendly, easy to use and configure. You can configure drupal with nginx, apache web server. On freebsd, you can install drupal from freebsd repository with pkg command, or you can too install from the freebsd ports, it is easy to install.

Arul 3:00 am


Your email address will not be published. Required fields are marked *