Monday, July 15, 2013

Restoring Tikiwiki 1.8.5 on Red Hat Linux AS4

http://www.doitscared.com/67/restoring-tikiwiki-185-on-red-hat-linux-as4/

Recently, I had to rebuild a tikiwiki server (on a Linux machine) with only a mysql database backup image. I quickly found that the backup image of a tikiwiki does not contain the version of the tikiwiki software, which is very necessary; otherwise, the database schema won’t match. Fortunately, I managed to find that the tikiwiki version was 1.8.5 from some old notes.
Here is the resulting software stack after I finished.
  • Red Hat Enterprise Linux AS Release 4
  • mySQL Server 4.1.20
  • Apache HTTP Server 2.0.52
  • PHP 4.3.9
  • Tikiwiki 1.8.5 Polaris
Here’s how I went about restoring the tikiwiki (assuming that the machine already has Redhat AS4 installed):
  1. Install PHP, HTTP Daemon (httpd), and supporting libraries:
    yum list | grep -i php
    yum install php.i386
  2. Install mySQL server (mysqld) and supporting libraries:
    yum list | grep -i mysql
    yum install mysql-server.i386
  3. Install mySQL client and the PHP-mySQL libraries:
    yum list | grep -i php-mysql
    yum install php-mysql.i386
  4. Start both mysqld and httpd and configure them to start on reboot:
    chkconfig mysqld on
    service mysqld start
    chkconfig httpd on
    service httpd start
  5. Configure mysqld and setup database:
    (Set mySQL root password)
    mysqladmin -u root password 'mypassword'

    (Create a database)
    mysqladmin -u root -p create mydatabase

    (Login as mySQL root user)
    mysql -u root -p

    (Use main mySQL database)
    mysql> use mysql;

    (Give localhost permission to access all databases)
    mysql> insert into host(host, db, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) values('localhost''%''Y''Y''Y''Y''Y''Y');

    (Create a user)
    mysql> insert into user (host, user, password) values('localhost''myuser', password('mypassword'));

    (Give that user access to the created database from localhost)
    mysql> insert into db (host, db, user, Select_priv, Insert_priv, Update_priv, Delete_priv, Create_priv, Drop_priv) values ('localhost''mydatabase''myuser''Y''Y''Y''Y''Y''Y');

    (Quit from mySQL)
    mysql> quit;

    (Reload mySQL server)
    mysqladmin -u root -p reload
  6. Reload the HTTP Server just in case:
    service httpd reload
  7. Make sure that PHP is working by copying this testphp.php file to “/var/www/html” and browsing to “http://localhost/testphp.php”:
    <html>
    <head>
    <title>PHP Info Script</title>
    </head>
    <body>
    <?php
    phpinfo();
    ?>
    </body>
    </html>
  8. Make sure that PHP-mySQL is working by copying this testmysql.php file to “/var/www/html”, replacing the text ”mysql_root_password” with your real password, and browsing to “http://localhost/testmysql.php”:
    <html>
    <title>mySQL Test Script</title>
    <body>
    <?php
    // connect and select a database 
    $link = mysql_connect("localhost:3306", "root", "mysql_root_password")
    or die ("Couldn&#39;t connect:  Check to make sure that:<br>" .
            "<ul><li>your MySQL server is running</li>" .
            "<li>you used the correct hostname (<tt>vergil/ovid</tt>)</li>" .      
            "<li>you added a colon with your port number after the hostname</li>" .
            "<li>you used the username &#39;root&#39;</li>" .       
            "<li>you used the correct root password</li>" .
            "<li>you didn&#39;t forget to close a set of quotation marks</li><br><br>");
    print "Connected successfully.<br>";
    $db = "mysql";
    mysql_select_db($db) or die("Could not select the database '" . $db . "'.  Are you sure it exists?");

    // perform an SQL query 
    $query = "SELECT * FROM user";
    $result = mysql_query($query) or die("Query failed");

    // print the result of the first row (row counting starts at zero)
    printf("Host: %s<br>\n", mysql_result($result, 0, "Host"));                  
    printf("User: %s<br>\n", mysql_result($result, 0, "User"));
    printf("Grant privilege: %s<br>\n", mysql_result($result, 0, "Grant_priv"));

    // free result set 
    mysql_free_result($result);
    // close the connection 
    mysql_close($link);
    ?>
    </body>
    </html>
  9. Unzip the tikiwiki 1.8.5 archive to the “/var/www/html” directory and run the setup script:
    chmod u+x setup.sh
    ./setup.sh
    chmod u-x setup.sh
  10. Configure the tikiwiki by browsing to ”http://localhost/tiki-install.php” and inputting the tikiwiki database name, user, and password.
  11. Restore the database from the backup image:
    mysql -u root -p
    mysql> use tikiwiki;
    mysql> source tiki_backup.sql
  12. And we are done!
Some info above was provided by Linux Help – mySQL setup Guide.

No comments:

Post a Comment