Dev Troubleshooting
Contents
Is your system updated?
Make sure that your system is updated. Dreamwidth code is best supported by Ubuntu Intrepid. To update all your packages, you should be logged in as root and then run:
apt-get update apt-get upgrade
If you need to upgrade Ubuntu from Hardy to Intrepid, first you will want to edit this file:
vi /etc/apt/sources.list
And replace all instances of "hardy" with "intrepid". The easy vi command for that is:
%s/hardy/intrepid/g
Then, run the two apt-get
commands above and do a system restart.
Is your code updated?
There are instructions to update your DW code at Dev Maintenance.
Restarting Apache
Sometimes stopping and restarting Apache can help:
sudo /etc/init.d/apache2 stop sudo /etc/init.d/apache2 start
Restarting Apache is also needed when you've changed Perl code.
Apache access and error logs
The access and error logs for Apache (the web server) are located at /var/log/apache2/access.log
and /var/log/apache2/error.log
for a default Ubuntu installation. Loading blank pages are probably the result of mod_perl crashing (often called a "segfault").
You can see the latest access and error messages by using the tail command:
sudo tail /var/log/apache2/error.log
Are there new ljconfig.pl options you are missing?
Check and see if there have been changes, such as additions or removals, to variables in ljconfig.pl. If nothing else, start fresh from the example and re-enter the information from your current config:
mv etc/ljconfig.pl etc/ljconfig.backup cp doc/ljconfig.pl.txt etc/ljconfig.pl
Apache fails to start
If you've been coding and Apache fails to restart, make sure to check the error logs for the problem:
sudo tail /var/log/apache2/error.log
Maybe you are missing packages
For instance, OpenID no longer works unless you have the libraries installed on your system:
apt-get install libnet-openid-consumer-perl libnet-openid-server-perl
Correct version of Perl
You need a 64-bit Perl to run Dreamwidth. If the Linux distribution you're using is 64-bit, then you should have a 64-bit version of Perl already. If you're not sure, though, this command will tell you:
perl -e 'print unpack("Q", pack("Q", length(sprintf("%b", ~0)))) . "-bit\n";'
This should print out "64-bit". If it prints anything else, or gives you any errors (like "Invalid type 'Q'"), it's not 64-bit.
Also, the version of Perl used in the "Lucid" distribution of Ubuntu (5.10.1-8ubuntu2.1) has a bug in it that the Dreamwidth code can run into; if you're using that version, you may want to upgrade. Perl 5.8 is no longer considered supported for Dreamwidth development as of 2012 July 18.