Free CPanel Alternative [closed]

I am running a dedicated LAMP (Linux, Apache, MySQL, PHP) server in-house that serves multiple websites. So far I have been configuring the server in raw Linux. I am looking for a web based control panel with similar functionality as WHM/CPanel (but free or of low cost), which will allow me to configure new sites, MySQL (with PHPMyAdmin), plus manage DNS and prehaps Mail.

I have installed Webmin, which seems to cover most of what I need, except that it uses it's own DB Web interface and I would rather use PHPMyAdmin. I have installed PMA separately, but would rather have the control panel and third party software (like PMA) all in one bundle as CPanel provides.

Any suggestions/advice would be much appreciated.

Setting expire headers for fonts not working

I am using the below code in my .htaccess file to try and set the expire headers for some fonts, but upon checking my firefox cache and checking the expire header it the font is set to expire in about 12 hours from now; not the 1 year I am trying to set it to.

Here is my code:

# Add correct content-type for fonts
AddType application/ .eot
AddType application/x-font-ttf .ttf
AddType application/x-font-opentype .otf
AddType application/x-font-woff .woff
AddType image/svg+xml .svg

# Compress compressible fonts
AddOutputFilterByType DEFLATE application/x-font-ttf application/x-font-opentype image/svg+xml

# Add a far future Expires header for fonts
ExpiresByType application/ "access plus 1 year"
ExpiresByType application/x-font-ttf "access plus 1 year"
ExpiresByType application/x-font-opentype "access plus 1 year"
ExpiresByType application/x-font-woff "access plus 1 year"
ExpiresByType image/svg+xml "access plus 1 year"

What am I doing wrong?

.htaccess redirect http to https

I have an old url ( and I would like to redirect it to
I have implemented and installed our SSL certificate on my site.
This is my old file .htaccess:

RewriteEngine On
RewriteRule !\.(js|gif|jpg|png|css|txt)$ public/index.php [L]
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ public/$1 [L]

How can I configure my .htaccess file so that url auto redirect to https?

Drupal 7: Sharing authentication with HTTP-Auth

I want to do what is described here, but with Drupal 7.

Before version 7, passwords were saved in database as a md5 hash, so you could use Auth_MySQL.

In this example, I'm trying to allow access on gitweb only to valid drupal users:

File: /etc/apache2/sites-enabled/default-ssl

    <Directory /usr/share/gitweb>
            AuthName "site name"
            AuthType Basic

            Auth_MySQL On
            Auth_MySQL_Authoritative on

            Auth_MySQL_Host localhost
            Auth_MySQL_Username drupal_user
            Auth_MySQL_Password drupal_password
            Auth_MySQL_DB drupal_database
            Auth_MySQL_Password_Table users
            Auth_MySQL_Username_Field name
            Auth_MySQL_Password_Field pass
            Auth_MySQL_Encryption_Types PHP_MD5
            Auth_MySQL_Password_Clause " AND status=1"
            Auth_MySQL_Empty_Passwords Off

            AuthBasicAuthoritative Off
            AuthUserFile /dev/null

            require valid-user

Looking into database, with select name,pass from users;, passwords hashes are like this: $S$DSmryVGZQg2AsLOFBT68xoQaEqPA1TWe4gi2gezh93tAjrbskFUi because they are "salted", not classic md5 hash like in older drupal version?

I know that is possible to check if a password matches the hashed password with the function user_check_password($password, $account) =>api.

How to let Apache using Drupal 7 users/password as authentication system?

Wicket 6.2 AbstractDefaultAjaxBehavior getCallbackUrl no longer resolves JS variables

Recently I have been working on upgrading a big web application that was using wicket 1.4.18 to 6.2. We had a situation where we would create javascript variables to keep track of positioning within a drag and drop list. This is just the wicket side of the code since the js has always worked and has not been changed.

ListItem.add(new AbstractDefaultAjaxBehavior()
    private static final long serialVersionUID = 1L;

    public void onComponentTag(ComponentTag tag)
        tag.put("ondrop", "var value = $(ui.item[0]).attr('hiddenvalue');"
            + this.getCallbackScript());

    public final CharSequence getCallbackUrl()
        return super.getCallbackUrl() + "&hiddenvalue' + value + '";

However the problem I am running into is the javascript variables are not resolving to values and are now being taken as literal strings (Ex: 'value' instead of 5) in the getCallbackUrl. This was not the case in wicket 1.4.18 and I don't believe this problem originated in our migration to 1.5.8.

In the end we just want to be able to pull the value out using

protected void respond(AjaxRequestTarget target)

Any advice on this? I hope I have provided enough information. Thanks in advance for any help. Some of this is a little beyond my knowledge and can be intimidating not knowing where to look.