Difference between revisions of "Dev Troubleshooting"

From Dreamwidth Notes
Jump to: navigation, search
(Correct version of Perl)
(Correct version of Perl)
Line 58: Line 58:
 
== Correct version of Perl ==
 
== Correct version of Perl ==
  
<Sophira> For the record, this is the command that will tell you if your Perl is good for Dreamwidth:
+
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";'
+
perl -e 'print unpack("Q", pack("Q", length(sprintf("%b", ~0)))) . "-bit\n";'
  
That should print out "64-bit". If it prints anything else, or gives you any errors (like "Invalid type 'Q'"), it's not 64-bit.
+
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.
  
 
[[Category: Development]]
 
[[Category: Development]]

Revision as of 12:47, 19 August 2011

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.