About Virtual Hosts
Virtual Hosts are used to run more than one domain off of a single IP address. This is especially useful to people who need to run several sites off of one virtual private server. The sites display different information to the visitors, depending on with which the users accessed the site.There is no limit to the number of virtual hosts that can be added to a VPS.
Set Up
The steps in this tutorial require the user to have root privileges. You can see how to set that up in the here Initial Server Setup. You can implement whatever username suits you.

Read More

About Virtual Hosts
Virtual Hosts are used to run more than one domain off of a single IP address. This is especially useful to people who need to run several sites off of one virtual private server. The sites display different information to the visitors, depending on with which the users accessed the site.There is no limit to the number of virtual hosts that can be added to a VPS.

Read More

Windows Services can sometimes have a nasty habit of getting stuck in the stopping or starting state. Some believe that at this point there is no alternative but to reboot the server to clear the problem.

However, the following trick usually will work.

The first step is to right click and select Properties on the offending Windows Service in order to find the actual Service Name.

Ex: Services > Microsoft FTP service

Start > Administrative Tools > Services

Screenshot

The next step is to do an sc queryex on the Windows Service in order to find the Process ID.

sc queryex ftpvc

Screenshot-1

The Process ID is 5180.  So now we can issue the taskkill /F command on the process.

taskkill /PID 6524 /F

Screenshot-2

Another thing to remember: in Windows 2008, if we are not running the command prompt with ‘run as administrator’, we will get an access denied error on the delete.

Is you Horde email failing due to file size attachments? Check the php.ini file in horde:

[root@server ~]# grep upload_max_filesize /etc/psa-webmail/horde/horde/php.ini
upload_max_filesize = 5M

Now edit the file:

[root@server ~]# nano /etc/psa-webmail/horde/horde/php.ini
upload_max_filesize = 5M
Change to required value
upload_max_filesize = 128M

Save and exit and restart horde
SERVICE HORDE RESTART

Now check the php config file – php.ini for max_uploads and max_post
grep max_file_uploads /etc/php.ini
max_file_uploads = 99999

To Create and Register Your Domain Hosts in Parallels Plesk Panel

Log in to Parallels Plesk Panel as an administrator.
Go to the Websites & Domains tab, and then click DNS Settings.
For the row with the Record Type of NS, click your domain name, change the following, and then click OK:
Record type — NS.
Domain Name — Leave this field.
Name server — Type ns1.coolexample.com, where coolexample.com is your domain name.
For the row with the Host of ns.coolexample.com, where coolexample.com is your domain, click it, change the following, and then click OK:
Record type — A.
Domain Name — Type ns1.
IP Address — Enter your server’s IP address.
Click Add Record, complete the following fields, and then click OK:
Record type — Select NS.
Domain Name — Leave this field blank.
Name server — Enter ns2.coolexample.com, where coolexample.com is your domain name.
Click Add Record, complete the following fields, and then click OK:
Record type — Select A.
Domain Name — Type ns2.
IP Address — Enter your server’s IP address
Click Update.
Go to the Server tab in Plesk, and then, from the Server Management section, click Services Management.
Next to DNS Server (BIND), click Refresh. Allow a few minutes for the service to restart.

Curl can be helpful in testing many things including web sites.

See if curl is installed

Using ssh:

[root@localhost root]# which curl

This will tell you if the system has curl installed. But you need to have libcurl, and the curl PHP extension to be able to use curl in PHP. To see if it’s enabled, simply do:

phpinfo();

in a PHP file, and see what it outputs. It will list all active extensions (and some more info). CTRL-F for curl in that output.

Check a site load time:

time curl -s http://www.coldriverdata.com > /dev/null

Output:

real    0m0.191s
user    0m0.004s
sys     0m0.000s

Stress test a Site:

The Curl syntax allows you to specify sequences and sets of URL’s. Say for example we’re going to run a load stress test against this site we can run…

curl -s "http://coldriverdata.com?[1-1000]"

This will make 1000 calls to coldriverdata.com i.e.

http://coldriverdata.com?1
http://coldriverdata.com?2
http://coldriverdata.com?3

http://coldriverdata.com?1000

So say you want to stress test your web application and it won’t complain if it’s fed an extra parameter, 10,000 calls could be done something like.

curl -s "http://yourappp.com/your_page_to_test.php?[1-10000]"

Multiple Pages

Easy just add each page to the command line.

curl -s "http://yourapp.com/page1.php?[1-1000]" "http://yourappp.com/page2.php?[1-1000]"

Or even…

curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]"

Timing

Using the time command we can get a view on our performance

time curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]"

real 0m0.606s
user 0m0.009s
sys 0m0.008s

Simulating consecutive users

OK, this is great for sending a whole bunch of calls one after the other but what about simultaneous calls. For this we can place the Curl calls in a script and set them running in the background. i.e. my_stress_test.sh

curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]" &
pidlist="$pidlist $!"
curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]" &
pidlist="$pidlist $!"
curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]" &
pidlist="$pidlist $!"
curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]" &
pidlist="$pidlist $!"
curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]" &
pidlist="$pidlist $!"
curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]" &
pidlist="$pidlist $!"
curl -s "http://yourapp.com/page{1, 2}.php?[1-1000]" &
pidlist="$pidlist $!"
for job in $pidlist do
echo $job
wait $job || let "FAIL+=1"
done

if [ "$FAIL" == "0" ]; then
echo "SUCCESS!"
else
echo "EPICFAIL! ($FAIL)"
fi

Then run

time my_stress_test.sh

NOTE:

This does not simulate user behaviour exactly as the browser is not only downloading the page but all attached images, javascripts, stylesheet etc. You could simulate this too by adding the URL’s to the url command.

Find file owned by a group

Use the following syntax:find directory-location -group {group-name} -name {file-name}

Where,

  • directory-location : Locate the file in this directory path.
  • -group {group-name} : Find the file belongs to group-name.
  • -name {file-name} : The file name or a search pattern

In this example, locate or find all files belongs to a group called “ftpusers” in the /home directory:

# find /home -group ftpusers

To find all *.c file belongs to a group called “ftpusers” in /data/project directory, run:

# find /data/project -group ftpusers -name "*.c"

OR do case insensitive search:

# find /data/project -group ftpusers -iname "*.c"
Find file owned by user

The syntax is: find directory-location -user {username} -name {file-name}
Where,

  • directory-location : Locate files or directories in this directory location.
  • -user { user-name } : Find the file belongs to user.
  • -name {file-name} : File name or pattern.

In this example, locate or find all file belongs to a user called “vivek” in /var directory:

# find /var -user vivek

To find all *.pl (perl files) file belongs to a user called “vivek” in /var/www directory, enter:

# find /var/www -user vivek -name "*.pl"