Drupal on Open Solaris
By sriram on Feb 18, 2008
In my previous blog, I mentioned the availability of components like Apache, PHP and MySQL/PostgreSQL within Open Solaris and also how to setup a wiki site like Media Wiki on Open Solaris . So, here is a very much related one - setting up a content management site like Drupal on Open Solaris.
Installing / Configuring Web Stack within Open Solaris
If you haven't already, you might want to download and install Open Solaris Developer Express 01/08 .
To simplify the initialization and configuration steps required for Apache and MySQL within Open Solaris, engineers within Web Stack project like Ludovic Champenois have done an amazing job of creating a a 'initialize' script so as to successfully setup the Web Stack Environment within couple of minutes. Here is a screen snap shot of the Web Stack Initialize 'script' posted in Ludovic Champenois's Blog
Once the Web Stack 'initialize' script completes successfully, you are now ready to start Web Stack Apache 2 and MySQL service as shown here . This is pretty much all is needed to host your web site and start developing and deploying PHP scripts.However, to use PHP 5.2.4 database shipped within Open Solaris, we will need this below temporary work around to force PHP runtime to use MySQL 5.0 based client library.
Open a terminal and become root from your Open Solaris box and run the following command (as a temporary work around)
|root> ln -sf /usr/mysql/5.0/lib/mysql/libmysqlclient.so.15.0.0 /usr/mysql/5.0/lib/mysql/libmysqlclient.so.12|
Note: The above mentioned work around is needed only for Open Solaris Developer Express and Open Solaris Developer Preview 2. This issue has been resolved in recent builds of Open Solaris and this temporary work around is not needed if you are using Nevada build 83 or above.
Installing DrupalNow, you might want to download the latest version of Drupal from their web site and unpack the downloaded tar ball to Apache 2.2 document root location.
These below commands show how to unpack and set up under Apache 2.2's document root.
root> cd /var/apache2/2.2/htdocs
root> /usr/sfw/bin/gtar zxvf <location of the downloaded tar ball>
Let us go ahead and create a symbolic link of the unzipped drupal tar ball to a valid name
root> ln -sf drupal-6.0 drupal
Configuring Apache for Drupal
Drupal actively uses '.htaccess' file within its installation. However, default apache configuration file, as part of security measure, has disabled the '.htaccess' file support. So, let us go ahead and create a drupal specific configuration.
Note: We will need to create a drupal specific apache configuration file at '/etc/apache2/2.2/conf.d/drupal.conf' so that Apache can load Drupal specific configuration after system restart as well. So, using a command line terminal window become root so as to save the below contents into /etc/apache2/2.2/conf.d/drupal.conf' as shown here.
root> cat > /etc/apache2/2.2/conf.d/drupal.conf
<After pasting the above lines into your terminal window, press CTRL-D to save the above contents into drupal.conf>
Configuring PHP for Drupal
Drupal requires PHP configuration to have support to include the current directory in the include path. So, let us edit the default /etc/php5/5.2.4/php.ini and make the following change
Open a command line terminal window and edit /etc/php5/5.2.4/php.ini file. Note: You will need to either edit this file as 'root' or use 'pfexec' command to ensure that you have the privilege to edit this file
Now search for 'include_path = ' in this file and edit this line to reflect like below. Note: This should be the line that doesn't have ';' in the front.
include_path = "./:/usr/php5/5.2.4/include/php"
Finally, restart Apache Service from the command line. This ensures that PHP runtime, loaded within Apache, is now aware of the changes that we just did within the 'php.ini' and 'drupal.conf' file.
root> /usr/apache2/2.2/bin/apachectl restart
Configuring MySQL for Drupal
Drupal requires a separate database to be created and available for its use. For more information on how to configure this database, please check out the INSTALL.mysql.txt file found under
<drupal installation location> (For example, in our case, the file is under /var/apache2/2.2/htdocs/drupal-6.0/INSTALL.mysql.txt). Please note that within Open Solaris, MySQL 5 is located under /usr/mysql/5.0/bin/ directory. You will need to be either as root as login as 'mysql' user to successfully create this database.
Finally, proceed to configuring Drupal and complete the rest of the Drupal configuration by visiting http://localhost/drupal . For more information on this configuration, also refer to 'INSTALL.txt' file found under /var/apache2/2.2/htdocs/drupal directory.
Technorati Tags: opensolaris, webstack, php, drupal