Drupal server set-up for Ubuntu 10.04 (Lucid Lynx)

First, do a clean install of Ubuntu 10.04 Lucid Lynx.

Run updates out-of-the-box:

sudo apt-get update
sudo apt-get upgrade

Install build-essential and curl

sudo aptitude install build-essential
sudo apt-get install curl

Install LAMP server

sudo tasksel install lamp-server

Enable mod_rewrite in Apache2 to enable Clean URLs in Drupal

sudo a2enmod rewrite
sudo /etc/init.d/apache2 restart

Disable unused Apache2 modules

sudo a2dismod cgi
sudo a2dismod autoindex

Increase PHP memory limit

sudo sed -i 's/memory_limit = .*/memory_limit = 128M/' /etc/php5/apache2/php.ini
sudo sed -i 's/upload_max_filesize = .*/upload_max_filesize = 128M/' /etc/php5/apache2/php.ini
sudo sed -i 's/post_max_size = .*/post_max_size = 128M/' /etc/php5/apache2/php.ini

Install required packages for PECL uploadprogress PHP module

sudo apt-get install php5-dev php-pear
sudo pecl install uploadprogress

Connect PECL uploadprogress and PHP

sudo sed -i '/; extension_dir directive above/ a\ extension=uploadprogress.so' /etc/php5/apache2/php.ini

or, the preferred method:

sudo nano /etc/php5/apache2/conf.d/uploadprogress.ini
extension=uploadprogress.so

Install the GMP Math library for PHP5 for optimal OpenID performance

sudo apt-get install php5-gmp
sudo service apache2 restart

Set the server timezone

sudo dpkg-reconfigure tzdata

Turn off Apache2 server signature [added security]

sudo sed -i 's/ServerSignature On/ServerSignature Off/' /etc/apache2/apache2.conf>

Tell Apache2 to allow Drupal .htaccess file [AllowOverride]

sudo sed -i 's/AllowOverride None/AllowOverride All/' /etc/apache2/sites-available/default

Install APC opcode caching [performance]

sudo apt-get install php-apc

Enable Apache2 deflate and expires modules

Note: Apache2 conf file warns that CSS, and javascript may not work with IE6

sudo a2enmod expires
sudo a2enmod deflate
sudo sed -i 's/DEFLATE text\/html text\/plain text\/xml/DEFLATE text\/html text\/plain text\/xml test\/css text\/javascript application\/x-javascript/' /etc/apache2/mods-available/deflate.conf

Enable MySQL query caching

sudo sed -i 's/query_cache_limit       = 1M/query_cache_limit       = 1M\ query_cache_type       = 1/' /etc/mysql/my.cnf

Restart Apache2 and MySQL

sudo /etc/init.d/apache2 restart
sudo service mysql restart

Download and move Drupal to web root

wget http://ftp.drupal.org/files/projects/drupal-x.xx.tar.gz tar xvzf drupal-x.xx.tar.gz sudo mkdir /var/www/drupal sudo mv drupal-x.xx/* drupal-x.xx/.htaccess /var/www/drupal

Create ‘files’ folder for Drupal default site

sudo mkdir /var/www/drupal/sites/default/files
sudo chown www-data:www-data /var/www/drupal/sites/default/files

Copy Drupal settings.php file for default site

sudo cp /var/www/sites/default/default.settings.php /var/www/drupal/sites/default/settings.php
sudo chown www-data:www-data /var/www/drupal/sites/default/settings.php

Configure MySQL database for Drupal default site

mysqladmin -u root -p create drupal
mysql -u root -p
mysql> GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES ON drupal.* TO ‘drupaluser’@’localhost’ IDENTIFIED BY ‘drupalpass’;
mysql> FLUSH PRIVILEGES
mysql> \q

Install PHPMyAdmin

sudo apt-get install phpmyadmin

Follow the prompts to complete the installation of PHPMyAdmin:

  • Select apache2
  • Do not need the dbconfig-common, MySQL is already going
  • May need to:

Add to /etc/apache2/apache2.conf:

Include /etc/phpmyadmin/apache.conf

or:

sudo ln -s /etc/phpmyadmin/apache.conf /etc/apache2/conf.d/phpmyadmin
sudo /etc/init.d/apache2 reload

Complete Drupal installation through a web browser:

Go to http://localhost.com/drupal/[/prettify]

You may have to enter database information in settings.php manually.

Set-up cron job

crontab -e 0,30 * * * * curl --silent --compressed http://site.com/cron.php[/prettify]

Set-up a FTP server: proftpd or vsftpd

Set-up firewall: ufw

Comments

Pages

Add new comment