Category: Geekery

  • Whitelist an IP address in your server via SSH

    One day, one of my blog readers can’t access my site. I wondered why and how come she can’t access it but I can. I also asked other readers, and they can. If this happens to you, just like what happened to me, maybe that specific user was blacklisted by your host.

    In order for him or her to access your site again, you need to whitelist his or her IP. So the first thing that you should do is ask his IP address, then whitelist it in your server. To white list an IP address, you need to type the following command via SSH:
    csf -a IP /etc/init.d/csf restart

    Just replace the IP with the actual IP address. For example you want to white list 1.1.1.1, just type the command
    csf -a 1.1.1.1 /etc/init.d/csf restart

    To see the white listed IPs you could use the command,
    grep IP /etc/csf/csf.allow

    I think this is not applicable to all server. I’m using CentOS 5.0 with suPHP as my PHP handler. If your server configuration is different, ask you host first if your not familiar with SSH commands.

  • Change your PHP handler from mod_php (DSO) to suPHP

    Finally, I decided to change my server’s PHP handler to suPHP from mod_php. It’s more secure and I can update my plugins and WordPress files automatically without annoying permission errors.

    Here’s what my php config looks like after the update:

     
    
    php.conf updated to:
    
    # This file was automatically generated by the Cpanel PHP Configuration system
    # If you wish to change the way PHP is being handled by Apache on your system,
    # use the /usr/local/cpanel/bin/rebuild_phpconf script or the WHM interface.
    #
    # Manual edits of this file will be lost when Apache is updated.
    
    
    # SuPHP configuration for PHP5
    LoadModule suphp_module modules/mod_suphp.so
    suPHP_Engine on
    AddType application/x-httpd-php5 .php5 .php4 .php .php3 .php2 .phtml
    
        suPHP_AddHandler application/x-httpd-php5
    
    
    # End of autogenerated PHP configuration.
    
    
    Updating user configurable PHP settings.
    [info] recursion depth is set to: 2
    Restarting Apache
    
    

    Now, I can update WordPress hassle free!

    To change your php handler, you should have WHM root access. This is the only way I know. I think you can change it via SSH, but I haven’t tried it yet.

    Once you’re logged in as root, just go to Service Configuration > Configure PHP and SuExec > Alter Configuration > PHP 5 Handler > Select suPHP.

    Once you’ve selected suPHP, just click “Save New Configuration”.

    That’s it!

  • CHMOD folders, sub-folders, sub-sub-folders, and so on

    If you recently changed your PHP handler to suPHP from mod_php or DSO, then you need to CHMOD all your folders, its sub-folders, sub-sub-folders, and so on to 744 to avoid any internal server errors, specifically internal server 500 errors.

    And also, you need to CHMOD all of your files to 644.

    In order to do this automatically, login as root in your server and go to your home directory, then enter this command via SSH.

    For folders:
    find {path to the folder} -type d -exec chmod 755 {} \;

    For files:
    find {path to the folder} -type f -exec chmod 644 {} \;

    And that’s it! It will change the permissions of all your files and folders under your home directory automatically! It’s like magic!

    If the above method doesn’t work for you, try the xargs method.

    For folders:
    find . -type d -print0 | xargs -0 chmod 0755

    For files:
    find . -type f -print0 | xargs -0 chmod 0644