The document outlines the steps to install Drupal on a CentOS server using LAMP including downloading and configuring Drupal, creating a MySQL database, setting file permissions, and testing that Drupal is installed correctly and accessible on the local network. It provides details on installing and configuring the operating system, Apache, PHP, and MySQL before walking through downloading and setting up Drupal on the server.
2. 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.
3. 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.
4. 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 open source. 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..
5. How is Drupal installed ? The following shows a summary of the installation process that will be documented in this presentation. System Requirements Download Drupal Grant write permissions on the configuration file Create the database Run the install script Set up cron Create a “files” directory for uploads
6. Web Server Apache 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.
7. Web Server Php 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 .
8. Database server The database server used in this project is MySql
9. 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.
10. Installation of the operating system CentOS. Follow the instructions from the main screen below to complete installation.
11. Configure the LAMP server LAMP stands for Linux Apache MySQL and PHP. The installation process is documented in the next few slides.
12. Install Apache 2.2 using the yum command # yum install httpd Once Apache is installed, make sure it starts the next time you boot Linux. # chkconfig httpd on To determine whether the chkconfig command worked, use the --list switch: # chkconfig --list httpd Apache starts and stops with the following commands: # apachectl stop # apachectl start or # service httpd start # service httpd stop
13. If Apache installation is successful, the default Apache Web page screen should appear like the screen below :
14. eLinks A text-based browser called elinks is then installed with the following command: # yum install elinks Start the elinks browser, pointing to the local system, with the following command: # elinks 127.0.0.1
15. 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
16. 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.
17. Testing the Server Test out the Apache server from the server by typing the following command: root@localhost # elinks 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.
19. 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 Reboot the system
20. 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.
22. Install Drupal Drupal is installed from the drupal website www.drupal.org . version 6.10. Follow the instructions to complete the installation process in the server. 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
24. 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.
30. 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’
32. 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.
33. Back at the browser the name and email details are entered: On scrolling down the page the remaining details are filled in then saved.
34. Theme Using the administrator tab the website was customised to change the theme to garland then some content was added.
35. Error Reporting shows the default error that will be displayed if a page is not found or access is denied.
36. Security Features : The status report shows how the various applications have been set up and are functioning correctly.
37.
38. PERMISSIONS: In the default file a chmod 555 settings.php command changes back the write permissions on the php file.
39. CRON: 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.
40. 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 press insert 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