LEMP + Cacti 0.8.7i

This is my setup of LEMP with Cacti 0.8.7i.
LEMP stands for Linux nginx (prounounced Engine x) MySQL and PHP.  Most notably, LEMP is just replacing Apache (LAMP) with nginx.
My base linux distribution is Debian 6 AMD64.
Software Required:
Debian 6 AMD64 (6.0.3) Business Card:  http://cdimage.debian.org/debian-cd/6.0.3/amd64/iso-cd/debian-6.0.3-amd64-businesscard.iso
PHP 5.3
Nginx 1.0.11
MySQL 5
I boot my system from the ISO and go through the basic install.  On the software installation screen, I chose only SSH Server and Standard System Utilities as noted in the screenshot below.

width=800
Software

After install finishes up and a fresh reboot, I log in as root and add the following to my apt repository at the bottom:
# vim.tiny/etc/apt/sources.list
deb http://nginx.org/packages/debian/ squeeze nginx
deb-src http://nginx.org/packages/debian/ squeeze nginx
Add the key for nginx.org:

root@cacti-087i:~# wget http://nginx.org/packages/keys/nginx_signing.key
--2012-01-16 11:45:38--  http://nginx.org/packages/keys/nginx_signing.key
Resolving nginx.org... 206.251.255.63
Connecting to nginx.org|206.251.255.63|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 1561 (1.5K) [text/plain]
Saving to: nginx_signing.key
100%[======================================>] 1,561       --.-K/s   in 0s
2012-01-16 11:45:38 (156 MB/s) - nginx_signing.key
root@cacti-087i:~# cat nginx_signing.key | apt-key add -
OK

Then run apt-get update
Now we’ll be downloading the latest version 1.0.11-1. You can verify this went as expected with apt-cache show nginx and look at the package’s version.

Install nginx

apt-get install nginx

Verify it is installed and running by visiting http://127.0.0.1/ or whatever the IP address of your server is configured as. You should see a “Welcome to nginx!” page displayed.

Install MySQL Server

root@cacti-087i:/var/www# apt-get install mysql-server
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libnet-daemon-perl
  libplrpc-perl mysql-client-5.1 mysql-server-5.1 mysql-server-core-5.1
Suggested packages:
  libipc-sharedcache-perl libterm-readkey-perl tinyca
The following NEW packages will be installed:
  libdbd-mysql-perl libdbi-perl libhtml-template-perl libnet-daemon-perl
  libplrpc-perl mysql-client-5.1 mysql-server mysql-server-5.1
  mysql-server-core-5.1
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 22.0 MB of archives.
After this operation, 56.3 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Note:  You will need to provide a root password for MySQL during installation.

Install PHP CGI

The version I’m installing as of this writing is from the stable repository for Squeeze (Version: 5.3.3-7+squeeze3).

root@cacti-087i:~# apt-get install php5-cgi
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libonig2 libqdbm14 php5-common php5-suhosin
Suggested packages:
  php-pear
The following NEW packages will be installed:
  libonig2 libqdbm14 php5-cgi php5-common php5-suhosin
0 upgraded, 5 newly installed, 0 to remove and 0 not upgraded.
Need to get 6,827 kB of archives.
After this operation, 17.7 MB of additional disk space will be used.
Do you want to continue [Y/n]?

Install PHP5 MySQL module

root@cacti-087i:/var/www# apt-get install php5-mysql
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  libmysqlclient16 mysql-common
The following NEW packages will be installed:
  libmysqlclient16 mysql-common php5-mysql
0 upgraded, 3 newly installed, 0 to remove and 0 not upgraded.
Need to get 2,132 kB of archives.
After this operation, 5,050 kB of additional disk space will be used.
Do you want to continue [Y/n]? y

Now I need to setup spawn fast cgi since this will be the PHP backend for nginx.

Install spawn-fcgi

root@cacti-087i:~# apt-get install spawn-fcgi

Install Daemontools service manager

I will use daemontools as my service manager for fastcgi process.

root@cacti-087i:~# aptitude install daemontools daemontools-run

Now to configure the service…

root@cacti-087i:~# mkdir -p /etc/sv/spawn-fcgi
root@cacti-087i:~# cd /etc/sv/spawn-fcgi

Create a file called ‘run’ in this directory. Use your favorite editor, like VIM!?

root@cacti-087i:/etc/sv/spawn-fcgi# vim.tiny run

Use the following content (tweaked to your environment) in the run file.

root@cacti-087i:/etc/sv/spawn-fcgi# cat run
#!/bin/sh
exec /usr/bin/spawn-fcgi -n -a 127.0.0.1 -p 9000 -u www-data -g www-data -C 5 /usr/bin/php5-cgi

Give the file executable permissions and add it to the services.

root@cacti-087i:/etc/sv/spawn-fcgi# chmod +x run

root@cacti-087i:/etc/sv/spawn-fcgi# update-service –add /etc/sv/spawn-fcgi spawn-fcgi
Service spawn-fcgi added.
Check to see if it is now running…

root@cacti-087i:/etc/sv/spawn-fcgi# ps -edf | grep cgi
root      1943  1931  0 11:59 ?        00:00:00 supervise spawn-fcgi
www-data  1944  1943  0 11:59 ?        00:00:00 /usr/bin/php5-cgi
www-data  1945  1944  0 11:59 ?        00:00:00 /usr/bin/php5-cgi
www-data  1946  1944  0 11:59 ?        00:00:00 /usr/bin/php5-cgi
www-data  1947  1944  0 11:59 ?        00:00:00 /usr/bin/php5-cgi
www-data  1948  1944  0 11:59 ?        00:00:00 /usr/bin/php5-cgi
www-data  1949  1944  0 11:59 ?        00:00:00 /usr/bin/php5-cgi

Sweet, looks good so far!

Configure Nginx

Modify nginx’s default configuration file in /etc/ngxin/conf.d/default.conf
Change the following to reflect where your web content will be stored. I use /var/www and had to make the directory first.

root@cacti-087i:~#  mkdir /var/www

Modify /etc/nginx/conf.d/default.conf:

server {
    listen       80;
    server_name  localhost;
    root /var/www;
    include /etc/nginx/fastcgi_php;
    location / {
        index  index.php;
        if (!-e $request_filename) {
                rewrite ^(.*)$ /index.php last;
        }
    }
}

Create /etc/nginx/fastcgi_php file now with the following:

location ~ .php$ {
    include /etc/nginx/fastcgi_params;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    if (-f $request_filename) {
        fastcgi_pass 127.0.0.1:9000;
    }
}

Once these files are saved, restart nginx.

root@cacti-0871i:~# /etc/init.d/nginx/restart

I created a test file in /var/www/ named index.php:

root@cacti-0871i:~# echo <?php phpinfo(); ?> >/var/www/index.php

Test Nginx + PHP

Then I browsed to the site http://127.0.0.1/phptest.php.

Install rrdtool

apt-get install rrdtool

Install PHP5 needed modules

root@cacti-087i:~# apt-get install php5-snmp php5-ldap php5-xmlrpc
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following extra packages will be installed:
  fancontrol libperl5.10 libsensors4 libsnmp-base libsnmp15 lm-sensors
Suggested packages:
  snmp-mibs-downloader sensord read-edid i2c-tools
The following NEW packages will be installed:
  fancontrol libperl5.10 libsensors4 libsnmp-base libsnmp15 lm-sensors
  php5-ldap php5-snmp php5-xmlrpc
0 upgraded, 9 newly installed, 0 to remove and 0 not upgraded.
Need to get 3,612 kB of archives.
After this operation, 7,008 kB of additional disk space will be used.
Do you want to continue [Y/n]?

Install Cacti Pre-requisites

PHP5-CLI

apt-get install php5-cli

SNMP tools

apt-get install snmp

Install Cacti 0.8.7i

I’m going to download 0.8.7i with PIA (plugin architecture):  http://www.cacti.net/downloads/cacti-0.8.7i-PIA-3.1.tar.gz

wget http://www.cacti.net/downloads/cacti-0.8.7i-PIA-3.1.tar.gz
tar zxvf cacti-0.8.7i-PIA-3.1.tar.gz
cd cacti-0.8.7i-PIA-3.1/

Follow install instructions per Cacti: http://docs.cacti.net/manual:087:1_installation.1_install_unix.5_install_and_configure_cacti
After following the instructions you should be able to get to the Cacti logon screen now.
This is for my own documentation notes.

Apache Segfault when Navigating to WP-Admin

width=588
Apache

Argh!
When trying to get into WordPress’ administration panel, Apache segfaults.
First troubleshooting steps involved moving all plugins/ to a temporary folder.
This didn’t produce any new results, still segfaulting.
Here are some notes on how I went about debugging this with GDB 7.3
wp-admin crashing
setup core dump in /etc/apache2.conf

CoreDumpDirectory /tmp-apache2/

Restart apache.

/etc/init.d/apache2 restart

install GDB 7.1+ for PIE support (See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=346409)
gdb Download: http://www.gnu.org/software/gdb/download/

root@nitrous:/tmp-apache2# wget -d http://ftp.gnu.org/gnu/gdb/gdb-7.3a.tar.bz2
root@nitrous:/tmp-apache2# bzip2 -d gdb-7.3a.tar.bz2
root@nitrous:/tmp-apache2# tar xvf gdb-7.3a.tar
root@nitrous:/tmp-apache2# cd gdb-7.3/
root@nitrous:/tmp-apache2# apt-get install gcc make ncurses-dev apache2-dbg php5-dbg
root@nitrous:/tmp-apache2/gdb-7.3# ./configure && make && make install

navigate to page, wp-admin to create crash

/usr/local/bin/gdb /usr/sbin/apache2 /tmp-apache2/core

(gdb) thread apply all bt full

root@nitrous:/tmp-apache# /usr/local/bin/gdb `which apache2` core
GNU gdb (GDB) 7.3
Copyright (C) 2011 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law. Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-unknown-linux-gnu".
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>...
Reading symbols from /usr/sbin/apache2...(no debugging symbols found)...done.
[New LWP 5596]
warning: Can't read pathname for load map: Input/output error.
[Thread debugging using libthread_db enabled]
Core was generated by `/usr/sbin/apache2 -k start'.
Program terminated with signal 11, Segmentation fault.
#0 0x00007f28ad87f5f9 in _zend_hash_add_or_update () from /usr/lib/apache2/modules/libphp5.so
(gdb) bt
#0 0x00007f28ad87f5f9 in _zend_hash_add_or_update () from /usr/lib/apache2/modules/libphp5.so
#1 0x00007f28ad82cae5 in php_register_variable_ex () from /usr/lib/apache2/modules/libphp5.so
#2 0x00007f28ad6a21a9 in ?? () from /usr/lib/apache2/modules/libphp5.so
#3 0x00007f28ad826542 in sapi_getenv () from /usr/lib/apache2/modules/libphp5.so
#4 0x00007f28a3d895d4 in suhosin_log () from /usr/lib/php5/20090626/suhosin.so
#5 0x00007f28a3d84b3e in ?? () from /usr/lib/php5/20090626/suhosin.so
#6 0x00007f28ad8858a5 in ?? () from /usr/lib/apache2/modules/libphp5.so
#7 0x00007f28ad885981 in ?? () from /usr/lib/apache2/modules/libphp5.so
#8 0x00007f28ad87d885 in zend_hash_apply () from /usr/lib/apache2/modules/libphp5.so
#9 0x00007f28ad885df0 in zend_ini_deactivate () from /usr/lib/apache2/modules/libphp5.so
#10 0x00007f28ad87132f in ?? () from /usr/lib/apache2/modules/libphp5.so
#11 0x00007f28ad81cb65 in php_request_shutdown () from /usr/lib/apache2/modules/libphp5.so
#12 0x00007f28ad8fe177 in ?? () from /usr/lib/apache2/modules/libphp5.so
#13 0x00007f28b16a2880 in ap_run_handler ()
#14 0x00007f28b16a621e in ap_invoke_handler ()
#15 0x00007f28b16b3e48 in ap_process_request ()
#16 0x00007f28b16b0cf8 in ?? ()
#17 0x00007f28b16aa478 in ap_run_process_connection ()
#18 0x00007f28b16b8e97 in ?? ()
#19 0x00007f28b16b91aa in ?? ()
#20 0x00007f28b16b94db in ap_mpm_run ()
#21 0x00007f28b168ea90 in main ()
(gdb) bt full
#0 0x00007f28ad868f84 in zend_cleanup_function_data_full () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#1 0x00007f28ad87d885 in zend_hash_apply () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#2 0x00007f28ad868f50 in zend_cleanup_class_data () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#3 0x00007f28ad87d885 in zend_hash_apply () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#4 0x00007f28ad8648f0 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#5 0x00007f28ad8712a2 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#6 0x00007f28ad81cb65 in php_request_shutdown () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#7 0x00007f28ad8fe177 in ?? () from /usr/lib/apache2/modules/libphp5.so
No symbol table info available.
#8 0x00007f28b16a2880 in ap_run_handler ()
No symbol table info available.
#9 0x00007f28b16a621e in ap_invoke_handler ()
No symbol table info available.
#10 0x00007f28b16b3c6c in ap_internal_redirect ()
No symbol table info available.
#11 0x00007f28aa9e8cb5 in ?? () from /usr/lib/apache2/modules/mod_rewrite.so
No symbol table info available.
#12 0x00007f28b16a2880 in ap_run_handler ()
No symbol table info available.
#13 0x00007f28b16a621e in ap_invoke_handler ()
No symbol table info available.
#14 0x00007f28b16b3e48 in ap_process_request ()
No symbol table info available.
#15 0x00007f28b16b0cf8 in ?? ()
No symbol table info available.
#16 0x00007f28b16aa478 in ap_run_process_connection ()
No symbol table info available.
#17 0x00007f28b16b8e97 in ?? ()
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#18 0x00007f28b16b91aa in ?? ()
No symbol table info available.
#19 0x00007f28b16b9e34 in ap_mpm_run ()
No symbol table info available.
#20 0x00007f28b168ea90 in main ()
No symbol table info available.

I have no idea where the problem is still.
Some googling found some hints at suhosin possibly, so I modified /etc/php5/apache/config.ini and commented out the extension=suhosin.so.
Restarted apache

/etc/init.d/apache2 restart

Navigated to wp-admin – everything works!
Now, why/what is causing suhosin to segfault? That is still under investigation.

Ncurses Motha F##ka

I love when I read through code as I’m hacking it up and I actually laugh out loud.  This one got me today when I was hacking up Linfo (PHP Linux System information script).

// Extensions
runExtensions($info, $settings);
// Make sure we have an array of what not to show
$info['contains'] = array_key_exists('contains', $info) ? (array) $info['contains'] : array();
// From the command prompt? Ncurses motha fucka!
if (defined('LINFO_CLI')) {
        $out = new out_ncurses();
        $out->work($info, $settings, $getter);
}
// Coming from a web server
else {
        // Decide what web format to output in
        switch (array_key_exists('out', $_GET) ? $_GET['out'] : 'html') {
                // Just regular html
                case 'html':
                default:
                        showInfoHTML($info, $settings);
                break;

Ah, makes the day seem not too bad when I see this stuff.

Use hdparm to Benchmark Disk in Linux

I use this often in the vm-land to test VMFS stores/LUN performance of new VMs I setup and I also use a few other benchmark tools to monitor how performance is impacted over the course of time.

root@nitrous:~# hdparm -Tt /dev/sda
/dev/sda:
 Timing cached reads:   12420 MB in  2.00 seconds = 6217.17 MB/sec
 Timing buffered disk reads: 584 MB in  3.00 seconds = 194.43 MB/sec

The -T option: The speed of reading through the buffer cache to the disk without any prior caching of data.
The -t option: The speed of reading directly from the Linux buffer cache without disk access.
That measured sequential access, now lets look at random seeks.

Seeker (http://www.linuxinsight.com/how_fast_is_your_disk.html)

Local download: https://techish.net/wp-content/uploads/2022/06/seeker.c

This is with defaults

root@nitrous:~# gcc -O2 seeker.c -o seeker
root@nitrous:~# ./seeker /dev/sda
Seeker v2.0, 2007-01-15, http://www.linuxinsight.com/how_fast_is_your_disk.html
Benchmarking /dev/sda [51200MB], wait 30 seconds.............................
Results: 278 seeks/second, 3.58 ms random access time

SeekMark (http://learnitwithme.com/?page_id=267)

Local download: https://techish.net/wp-content/uploads/2022/06/seekmark-0.3.c

This is with defaults (Single thread, 0-5000 random seeks on /dev/sda, 512 bytes)

root@nitrous:~# ./seekmark -f/dev/sda
READ benchmarking against /dev/sda 51200 MB
threads to spawn: 1
seeks per thread: 5000
io size in bytes: 512
Spawning worker 0 to do 5000 seeks
thread 0 completed, time: 15.92, 314.09 seeks/sec, 3.2ms per request
total time: 15.92, time per READ request(ms): 3.184
314.09 total seeks per sec, 314.09 READ seeks per sec per thread

This is with 10 threads, 0-5000 random seeks on /dev/sda

root@nitrous:~# gcc -o seekmark -lpthread seekmark-0.9.c
root@nitrous:~# ./seekmark -f/dev/sda -t10
READ benchmarking against /dev/sda 51200 MB
threads to spawn: 10
seeks per thread: 5000
io size in bytes: 512
Spawning worker 0 to do 5000 seeks
Spawning worker 1 to do 5000 seeks
Spawning worker 2 to do 5000 seeks
Spawning worker 3 to do 5000 seeks
Spawning worker 4 to do 5000 seeks
Spawning worker 5 to do 5000 seeks
Spawning worker 6 to do 5000 seeks
Spawning worker 7 to do 5000 seeks
Spawning worker 8 to do 5000 seeks
Spawning worker 9 to do 5000 seeks
thread 4 completed, time: 142.17, 35.17 seeks/sec, 28.4ms per request
thread 7 completed, time: 144.52, 34.60 seeks/sec, 28.9ms per request
thread 2 completed, time: 152.03, 32.89 seeks/sec, 30.4ms per request
thread 9 completed, time: 152.75, 32.73 seeks/sec, 30.5ms per request
thread 8 completed, time: 152.88, 32.70 seeks/sec, 30.6ms per request
thread 5 completed, time: 153.19, 32.64 seeks/sec, 30.6ms per request
thread 3 completed, time: 153.47, 32.58 seeks/sec, 30.7ms per request
thread 6 completed, time: 155.04, 32.25 seeks/sec, 31.0ms per request
thread 1 completed, time: 155.79, 32.10 seeks/sec, 31.2ms per request
thread 0 completed, time: 156.64, 31.92 seeks/sec, 31.3ms per request
total time: 156.64, time per READ request(ms): 3.133
319.21 total seeks per sec, 31.92 READ seeks per sec per thread

Install VMware Tools on Linux Guest

The instructions are outlined by VMware here.
These are my notes.

To install VMware Tools in a Linux guest operating system using Compiler:
  1. Ensure that your Linux virtual machine is powered on.
  2. If you are running a GUI interface, open a command shell.Note: Log in as a root user, or use the sudo command to complete each of these steps.
  3. Click VM in the virtual machine menu, then click Guest > Install/Upgrade VMware Tools and click OK.
  4. To create a mount point, run:mkdir /mnt/cdrom
  5. To mount the CDROM, run:mount /dev/cdrom /mnt/cdrom
  6. To copy the Compiler gzip tar file to a temporary local directory, run:cp /mnt/cdrom/VMwareTools-<version>.tar.gz /tmp/Where <version> is the VMware Tools package version.
  7. To change to the tmp directory and extract the contents of the tar file into a new directory called vmware-tools-distrib, run:
    • cd /tmp
    • tar -zxvf VMwareTools-<version>.tar.gz
  8. To change directory to vmware-tools-distrib and run the vmware-install.pl PERL script to install VMware Tools, run:
    • cd vmware-tools-distrib
    • ./vmware-install.plNotes:
      • Follow the screen prompts to install the VMware Tools. Options in square brackets are default choices and can be selected by pressing Enter.
      • To compile VMware Tools successfully, you need gcc Compiler and Linux Kernel sources provided by your Linux distribution. Consult your Linux distribution documentation for details on how to install these packages.
      • It is normal for the console screen to go blank for a short time during the installation when the display size changes.
      • Some warnings or errors are normal, like when a files does not exist.
      • Depending on the Linux distribution, your network service might restart after installation. VMware recommends that you invoke this command from the console and not remotely.

From my installation.
First, I grabbed GCC, Make and the Linux Headers
apt-get install gcc make linux-headers-`uname -r`

Installing VMware Tools.
In which directory do you want to install the binary files?
[/usr/bin]
What is the directory that contains the init directories (rc0.d/ to rc6.d/)?
[/etc]
What is the directory that contains the init scripts?
[/etc/init.d]
In which directory do you want to install the daemon files?
[/usr/sbin]
In which directory do you want to install the library files?
[/usr/lib/vmware-tools]
In which directory do you want to install the documentation files?
[/usr/share/doc/vmware-tools]
The path /usr/share/doc/vmware-tools does not exist currently. This program
is going to create it, including needed parent directories. Is this what you want? [yes]
The installation of VMware Tools 8.3.7 build-341836 for Linux completed successfully. You can decide to remove this software from your system at any time by invoking the following command: /usr/bin/vmware-uninstall-tools.pl.
Before running VMware Tools for the first time, you need to configure it by invoking the following command: /usr/bin/vmware-config-tools.pl. Do you want
this program to invoke the command for you now? [yes]
 
Initializing…
 
Stopping VMware Tools services in the virtual machine:
Guest operating system daemon: done
Virtual Printing daemon: done
Unmounting HGFS shares: done
Guest filesystem driver: done
 
Before you can compile modules, you need to have the following installed…
 
make
gcc
kernel headers of the running kernel
 
Searching for GCC…
 
Detected GCC binary at /usr/bin/gcc-4.3.
The path /usr/bin/gcc-4.3 appears to be a valid path to the gcc binary.
Would you like to change it? [no]
 
Searching for a valid kernel header path…
Detected the kernel headers of the running kernel at
/lib/modules/2.6.32-5-amd64/build/include.
The path /lib/modules/2.6.32-5-amd64/build/include appears to be a valid path to the kernel headers of the running kernel.
Would you like to change it? [no]
 
Using 2.6.x kernel build system.

[snip — bunch of compilation output]
After compilation, no errors, this is my output.

The module vmxnet3 has already been installed on this system by another installer or package and will not be modified by this installer. Use the flag –clobber-kernel-modules=vmxnet3 to override. The module pvscsi has already been installed on this system by another
installer or package and will not be modified by this installer. Use the flag –clobber-kernel-modules=pvscsi to override. No X install found.
 
Creating a new initrd boot image for the kernel.
update-initramfs: Generating /boot/initrd.img-2.6.32-5-amd64
 
Checking acpi hot plug done
Starting VMware Tools services in the virtual machine:
Switching to guest configuration: done
Guest memory manager: done
VM communication interface: done
VM communication interface socket family: done
Guest operating system daemon: done
Virtual Printing daemon: done
The configuration of VMware Tools 8.3.7 build-341836 for Linux for this running
kernel completed successfully.
You must restart your X session before any mouse or graphics changes take
effect.
 
You can now run VMware Tools by invoking the following command:
/usr/bin/vmware-toolbox during an X server session.
 
To enable advanced X features (e.g., guest resolution fit, drag and drop, and file and text copy/paste), you will need to do one (or more) of the following:
1. Manually start /usr/bin/vmware-user
2. Log out and log back into your desktop session; and,
3. Restart your X session.
 
 
Enjoy,
–the VMware team
 
Found VMware Tools CDROM mounted at /mnt/cdrom. Ejecting device /dev/sr0 …

That is all.