Installation of Drupal on CentOS Miriam Segondat
Introduction: As part fullfillment for the award of a BSc in Information Technology Support, I am required to complete an individual project.
I have chosen to install a Drupal CentOS client and server on a LAMP server. I choose Drupal as it is a widely used content management system and I wanted to learn more about it.
What is Drupal ? Drupal is a open source software package distributed under the GPL (“General Public Licence”).
It allows individual or community users to publish, manage and organise a wide variety of content on a website.
Benefits of the Drupal Content Management System – Drupal is wildly popular because it provides a powerful, scalable, low cost, high value solution to manage and grow an internet presence.
Drupal is supported by a passionate community of thousands of developers who continuously work to enhance the functionality and security of Drupal to enterprise levels and beyond..
How is Drupal installed ? The following shows a summary of the installation process that will be documented in this presentation. Grant write permissions on the configuration file
Create a “files” directory for uploads
Web Server Drupal will work on Apache 1.3 or Apache 2.x hosted on UNIX/Linux, OS X, or Windows. The majority of Drupal development and deployment is done on Apache so there is more community experience and testing performed. Drupal is being developed to be web server independent.
Drupal core files alone will take up approximately 2 to 3 MB uncompressed.
Web Server The php version used for this project is 5.1.6 PHP memory of 16 MB or higher for a default Drupal 6 installation.
Depending on the site's use of custom or contributed modules, PHP memory limit may need to be increased beyond 16 MB .
The database server used in this project is MySql
What is CentOS ? CentOS is a Linux distribution built off the open-source, free packages prepared for Red Hat Enterprise Linux. CentOS delivers the same level of security support through software updates, product lifetime and performance of other enterprise Linux solutions.
CentOS delivers the same access to industry standard software including full compatibility with software packages prepared specifically for Red Hat Enterprise Linux systems.
Installation of the operating system CentOS. Follow the instructions from the main screen below to complete installation.
Configure the LAMP server LAMP stands for Linux Apache MySQL and PHP.
The installation process is documented in the next few slides.
Install Apache 2.2 using the yum command Once Apache is installed, make sure it starts the next time you boot Linux. To determine whether the chkconfig command worked, use the --list switch: Apache starts and stops with the following commands: # apachectl stop # apachectl start
or # service httpd start # service httpd stop
If Apache installation is successful, the default Apache Web page screen should appear like the screen below :
eLinks A text-based browser called elinks is then installed with the following command:
Start the elinks browser, pointing to the local system, with the following command:
PHP and MySQL PHP and MySQL is then installed as follows:
# yum install php # yum install mysql-server mysql # apachectl stop # apachectl start # service mysqld start
Next set up a team in VMware, using a CentOS client and a CentOS server, on the configured LAMP server.
Power on the team. Put both onto the same LAN.
Testing the Server Test out the Apache server from the server by typing the following command: type http:// localhost in the url bar
If you can see the contents of the index.php file in the html directory, it means Apache is working. An example of what it should look like can be seen below.
Testing the Client Open up a browser in Firefox with http://192.168.0.10 . Again the contents of the index.php file should be displayed. To turn off the firewall type the following: root@localhost # service iptables stop
Now the network adapter needs to be changed to bridged
DHCP On the server type system-config-network and then press F12. A screen like the one below should appear. Tab down to “Use DHCP” and press the space bar to place an * there, then press ok. Tab down to quit and press ok.
Change the network adapter to bridged and reboot.
Installation of Drupal Packages
#yum install httpd mod_ssl
Install Drupal Drupal is installed from the drupal website www.drupal.org . version 6.10. Type wget http://ftp.drupal.org/files/projects/drupal-6.10.tar.gz followed by tar -zxvf drupal-6.10.tar.gz to unzip the files. This will create a new directory drupal-6.10 which contains all the drupal files and directories. Now the contents of this directory are moved into the html directory with the following command.
mv drupal-6.10/* drupal-6.10/.htaccess /var/www/html
The MV command
Permissions To continue the server must be given back its static is address so again from the root directory type system-config-network. Press F12 and manually insert the static ip address 192.168.0.10 as well as changing the network adapter back to LAN. Next copy the default.settings.php file into the settings.php file in the /var/www/html/sites/default directory and give it full permissions (chmod 777 settings.php).
In the same directory create a sub-directory called files. This will allow for uploading files to the website and we can give full permissions as well.
copy the default.settings.php file into the settings.php file
Next open up elinks from the server and type in http://localhost . The following page is displayed:
Next open up the firefox browser in the client and type http://192.168.0.10 and press enter.
Click on each of the following to complete installation :
Set up the database
Create the database in the server . Firstly type in the command service mysqld start to start mysql. Then setup a password for root using the following command mysqladmin –u root –p password login to mysql mysql –u root –p
Finally create the database using the command CREATE DATABASE drupal_devdb CHARACTER SET ‘utf8’
Create the database in the server
Back to the Drupal Configuration Next go to the browser and continue the drupal configuration Clicking on set up a database. Enter in the same username, database and password.
Change the write permissions on the settings.php file by going to the server and doing a chmod 555.
Back at the browser the name and email details are entered: On scrolling down the page the remaining details are filled in then saved.
Theme Using the administrator tab the website was customised to change the theme to garland then some content was added.
Error Reporting shows the default error that will be displayed if a page is not found or access is denied.
Security Features :
The status report shows how the various applications have been set up and are functioning correctly.
In the default file a chmod 555 settings.php command changes back the write permissions on the php file.
Cron is configured as per diagram below. Cron is important in Drupal as checks for updates as well as routing maintenance tasks at specific intervals.
IPTABLES: The following command was added to the iptables to prevent having to turn off iptables everytime at boot up. With regard to security, it only allows tcp traffic through the firewall on port 80. root@localhost # cd /etc/sysconfig root@localhost sysconfig # vi iptables type in the following line before the first –A RH rule
-A INPUT -s 192.168.0.0/24 -p tcp -m tcp --dport 80 -j ACCEPT