Tag: DirectAdmin
Running CGI script from any directory or via /~username/cgi-bin
by admin on Apr.27, 2012, under DirectAdmin
In order to force apache to allow cgi script to run, simply create a file called .htaccess inside the directory in which you wish to run the scripts. Insert this text into the file:
Options +ExecCGI
AddHandler cgi-script .cgi .pl
How to forward a website to another url
by admin on Apr.25, 2012, under DirectAdmin
There are several ways to accomplish this task, but the simplest to understand is to use php.
To do this, you need to create the page that will do the forwarding. This can be any page, as long as it ends in ".php". If you are trying to redirect a domain, you’d create "index.php" inside the public_html directory.
Once you decide which page you will use, then create the file and enter the following text:
<?php
header("Location: http://whereyouwant.com/to/go.html");
?>
Where http://whereyouwant.com/to/go.html is the location that you want the page to forward to. You can use local values, ie: /page.html, or full urls as in the above example (http://..etc.)
Cannot use SSH with old system accounts after Installation
by admin on Apr.16, 2012, under DirectAdmin
For all SSH accounts created with DirectAdmin, it adds the "AllowUsers" option to the /etc/ssh/sshd_config file. When DirectAdmin is installed, it will add "root" and "admin" to that file under the AllowUsers option. Any other users who have had SSH account on the system will also require to be added to that file in order to access the server via SSH.
*IMPORTANT: For systems who require the use of "su" to access the root account, but do not use "admin" to do it, that usename *must* be added to the /etc/ssh/sshd_config before logging out or else they will not be able to login and and turn won’t be able to su to root any longer. This isn’t as relevant for RedHat systems, because the default is to enable root login, but for most FreeBSD systems, su is required, and the starting use *must* be in the wheel group, which a newly created "admin" would not be.
Wildcard *.domain.com
by admin on Apr.13, 2012, under DirectAdmin
If you’d like to setup your domain to accept anything.domain.com, you can do so with the following guide (Admin access required)
1) Setup the dns with a wildcard A record. Go to Dns Control, and add an "A" record:
* -> 1.2.3.4
where 1.2.3.4 is the IP of your domain.
This will allow anything.domain.com to resolve to your server. Apache does not yet know how to direct that name though.
2) To setup apache, go to:
Admin Level -> Custom Httpd configurations -> domain.com
In the top text area, add this *one* line:
ServerAlias *.|DOMAIN|
then click "Save".
That should be it. Wait a few minutes for everything (apache, named) to be restarted then test it out.
The wildcard subdomains will point to your main public_html directory for the domain.
If you want to change this, it’s probably best not to do step 2, and to setup your own custom virtualhost manually into the /etc/httpd/conf/httpd.conf (DA wont delete/overwrite it there) with the same ServerAlias directive as in step 2.
Other similar uses might be subdomain aliasing, where test.domain.com is the same as test.domain2.com.
You can accomplish this by following step 1) above, then insert the following instead of step 2) above:
|*if SUB|
ServerAlias |SUB|.domain2.com
|*endif|
which will make any existing subdomain from domain2.com point to domain.com.
cgi files generate Internal Server Error
by admin on Apr.10, 2012, under DirectAdmin
This means that the cgi script did not execute properly. There are several causes that can generate this error so a few things would need to be checked.
1) check the /var/log/httpd/suexec_log. It contains any errors that would be as a result of not having correct permissions on the file. The file needs to be in a cgi-bin and must have the owner/group as the username who owns the site. If it’s owned by anyone else, it will not run. Also, the script must have execute permission. The most common chmod permission is 755. Go through all directories from the public_html down to the directory the script is in, and make sure they’re all set to 755 (public_html can be 750 *only* if it has a group of apache).
If the suexec_log only shows the script being run, then the cause may be with the script code itself. The easiest way to figure out script coding problems is to first run the script manually from an ssh prompt.
cd /home/username/domains/domain.com/public_html/cgi-bin
./script.cgi
One common error is to use an incorrect interpreter. The 2 most common interpreters are:
#!/usr/bin/perl
and
#!/usr/local/bin/php
This code must appear on the first line of the script. Sometimes a file is uploaded in windows format so the trailing newline (return) character is formed incorrectly and the file would need to be re uploaded in a different format.
Other errors that would be generated when running the script manually from ssh would be missing perl modules, in which case you’ll need to install them yourself. Cpan is the easiest method to install new perl modules, e.g.:
perl -e shell -MCPAN
install Bundle::DBD::mysql
