Hi,
I’m trying to get suexec working with php-cgi on my VPS which has Webmin/Virtualmin (GPL) installed. However when I set a website to use CGI wrapper to execute scripts as virtual host owner, pages no longer load properly (css doesn’t load, if I select any links it goes to 404).
I think the problem is that it is redirecting my urls to cgi-bin instead of public_html (eg. if I click the “About Us” link in my home page for www.aceaerobics.com.au, it goes to www.aceaerobics.com.au/cgi-bin/about-us).
Further Information:
The website is based on the Joomla! CMS.
I want the website to run as the aceaerobics user so that file uploads + writing to configuration.php etc. won’t cause permissions issues. Also because I understand that it is more secure.
Permissions for all files in aceaerobics virtualhost directory are 644, directories are 755. All files are owned by aceaerobics and group aceaerobics.
I get the following error in my apache error.log:
“[Thu Oct 07 18:11:26 2010] [error] [client 124.190.156.71] script not found or unable to stat: /home/domains/aceaerobics/cgi-bin/about-us, referer: http://aceaerobics.com.au/”
I get no errors in the suexec.log.
Servers -> Virtualmin Virtual Servers -> aceaerobics.com.au -> Website Options:
Run CGI scripts as domain owner: Yes
PHP script execution mode: CGI wrapper (run as virtual server owner)
Website matches all sub-domains: No
Default website for IP address: No
Website documents sub-directory: public_html
httpd.conf is empty, but here is the site config, sites-enabled/aceaerobics.com.au.conf:
<VirtualHost *:80>
ServerName aceaerobics.com.au
ServerAlias www.aceaerobics.com.au
ServerAlias webmail.aceaerobics.com.au
ServerAlias admin.aceaerobics.com.au
DocumentRoot /home/domains/aceaerobics/public_html
ErrorLog /var/log/virtualmin/aceaerobics.com.au_error_log
CustomLog /var/log/virtualmin/aceaerobics.com.au_access_log combined
ScriptAlias /cgi-bin/ /home/domains/aceaerobics/cgi-bin/
DirectoryIndex index.html index.htm index.php index.php4 index.php5
<Directory /home/domains/aceaerobics/public_html>
Options -Indexes +IncludesNOEXEC +FollowSymLinks
allow from all
AllowOverride All
Action application/x-httpd-php5 /cgi-bin/php5.cgi
AddType application/x-httpd-php5 .php5
AddType application/x-httpd-php5 .php
</Directory>
<Directory /home/domains/aceaerobics/cgi-bin>
allow from all
</Directory>
RewriteEngine on
RewriteCond %{HTTP_HOST} =webmail.aceaerobics.com.au
RewriteRule ^(.*) http://aceaerobics.com.au:20000/ [R]
RewriteCond %{HTTP_HOST} =admin.aceaerobics.com.au
RewriteRule ^(.*) https://aceaerobics.com.au:10000/ [R]
SuexecUserGroup "#1014" "#1012"
RemoveHandler .php
RemoveHandler .php5
</VirtualHost>
/etc/apache2/suexec/www-data:
/home/domains
public_html
# The first two lines contain the suexec document root and the suexec userdir
# suffix. Both features can be disabled separately by prepending a # character.
# This config file is only used by the apache2-suexec-custom package.
#
I’ve also attached /etc/php5/cgi/php.ini and /etc/apache2/apache2.conf (because it will take up too much space if I paste it all here).
Sorry for the information overload, I just don’t want to miss anything out.
I really hope someone can help because I’ve been working on this for many, many hours.
Thanks!
Francis