Saturday, 22 November 2014

Shrink LVM size of root partition

Please refer:

http://rbgeek.wordpress.com/2013/02/11/how-to-reduce-the-root-partition-in-lvm/

Wordpress: Missing a temporary folder while uploading media

Upon reading many wordpress forums, finally got a solution.

Simply follow the below steps to solve this,


1. Create a  custom php.ini file in public_html folder.

2. Add the following lines in php.ini file:

upload_max_filesize = 16M
upload_tmp_dir = on
upload_tmp_dir = /home/username/tmp

Please make sure to replace username with your hosting username

3. Copy the same php.ini file to your wp_admin folder.

Saturday, 15 November 2014

Can access WHM, but cannot through SSH

Try with the below URL

http://ip:2086/scripts2/doautofixer?autofix=safesshrestart

  This will reset the SSH configuration. 

Friday, 27 June 2014

Move magento site from subdomain to main domain

Its quite easy to move magento site from subdomain to main domain (and vice-versa). You can do it by two different ways and it is more easy when you go with the below steps.

Step 1:


  1. Go to Magento Admin Page –> System –> Configurations –> Web –> Unsecure URL & Secure URL. Change both the secure URL and unsecure URL to the domain that you are going to be moved to. Be sure to include the “/” at the end of the domain name.
  2. Go to your File Manager and click “Select All”. Click “Move” and key in “/public_html” to move it to the main domain’s directory.
  3. You need to clear the caches at “var/cache” and “var/session” after you have moved all files over.


Step 2:


  1. Go to phpMyAdmin. Find and and choose your database on which your magento site is running. Scroll down and look for core_config_data table and click “Browse”.
  2. Find the path “web/unsecure/base_url” and “web/secure/base_url”.
  3. Click on the "Edit" of both of the path above and edit the URLs accordingly. Click “Go” after the URLs have been edited.
  4. Once the URLs has been edited, you need to clear the caches at “var/cache” and “var/session” 


Note:- It is always good to have backup your files and databases before doing these exercises.

Thursday, 26 June 2014

SSH not working after removing Cloudlinux

   Usually we just remove Cloudlinux kernel from the server and reboot the server to run with normal CentOS kernel. After rebooting the server, we might face SSH access to the server. The server will prompt password and after entering the password, it will show 'Lost Login' details then you face "Connection Closed" issue.

Cause:

   While removing Cloud-Linux from the server, the pam module of sshd service still remains on the server. This caused unable to access the server through SSH.

   The caused pam module is pam_lve.so.


Solution:

  You need to comment the below line in the file called /etc/pam.d/sshd (login the server through KVM or any other interface you have to access the server shell)

   session required pam_lve.so 500 1 wheel,other

Saturday, 21 June 2014

Swap Partition Change

   This tutorial will explain about how to change that Swap space partition to the newly attached drive[ here its /dev/sdd]

   Currently the swap space has been allocated on the drive /dev/sdc. In order to check the swap space details, use the below command.

# swapon -s
Filename    Type  Size Used Priority
/dev/sdc1                             partition 4192924 102580 -1

   Also check the mounted partitions details on /etc/fstab file

# cat /etc/fstab
/dev/sda / ext4 usrjquota=quota.user,jqfmt=vfsv0 0 0
/usr/tmpDSK             /tmp                    ext3    defaults,noauto        0 0
/dev/sdc1   swap swap defaults 0 0

   Then look onto the details about the newly attached drive using fdisk command. The output in our case is below. Here the older swap disk is /dev/sdc with Linux Swap partition and the new raw drive [/dev/sdd] has been attached.

Disk /dev/sdc: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9fc28f0c

    Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1         522     4192933+  82  Linux swap / Solaris

Disk /dev/sdd: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000


   Now, create a swap partition on the newly attached drive by using the below commands,

# fdisk /dev/sdd -- accessing the drive to create a partition
then press 'm' for help, there you can see many command option to create partition and make it as swap partition. command 'n' for creating new partition, 't' to change the partition type.
  Once the partition has been created with Linux Swap type, you can see these details by pressing 'p' to print the partition lists, once verified the new settings, press 'w' to write the changes on the disk.

Disk /dev/sdd: 4294 MB, 4294967296 bytes
255 heads, 63 sectors/track, 522 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x9c471342

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1         522     4192933+  82  Linux swap / Solaris


   Lets issue the command 'partprobe' to tell about the new changes on the disk to the kernel, in order to reboot the server. Then make swap space on the newly created partition by using the below command.
# mkswap /dev/sdd1
Setting up swapspace version 1, size = 4192928 KiB
no label, UUID=09e7d007-2459-4d9d-bc6b-8d8cd1825596

   Once the swap partition has been created on the new partition, use the 'swapon' command to use this drive as follows and to see the active swap partition, you can use 'swapon -s' command.
# swapon /dev/sdd1
# swapon -s
Filename    Type  Size Used Priority
/dev/sdc1                             partition 4192924 102580 -1
/dev/sdd1                              partition 4192924 0 -2

   We have achieved the target now, and the server is using two partitions for swap space. Here the drives /dev/sdc and /dev/sdd being used for Swap Space.
   If you want to remove the old drive from the Swap partition, yes we can do this by simply issuing the below command with the drive name.
# swapoff /dev/xdc1

   Once the old drive has been swap off, we can ensure this by issuing the 'swapon -s' command to see the current swap space details. Also make the necessary changes for swap on the /etc/fstab, in order to take effect on next boot. This means, change the drive name on /etc/fstab to new one.

# swapon -s
Filename    Type  Size Used Priority
/dev/sdd1                              partition 4192924 0 -1

Friday, 20 September 2013

Install WHM/cPanel on CentOS Server

Install WHM/cPanel:

   WHM is known as Web Hosting Manager, is a powerful administrative panel to access the back end of the cPanel.
   cPanel is web hosting control panel software that lets you quickly manage the web sites and hosting options using a graphical, web-based interface.

  • Login to the CentOS Server through SSH.
  • Before proceeding with the installation of cPanel & WHM, you must have Perl installed on your server.
  • You can install Perl using either yum or up2date.
  • Yum users should run the following command:  # yum install perl
  • up2date users should run the following command: # up2date -i perl
  • Go to the home folder, by running the following command:  cd /home 
  • Download the installer file by running the following command:
  • wget -N http://httpupdate.cpanel.net/latest 
  • Finally you'll run the below command to install the cPanel & WHM.
  • sh latest

If licensing fails (due to a strict firewall or modified IP), run the command /usr/local/cpanel/cpkeyclt to activate your cPanel & WHM license.

Note: Use 'screen' mode, because cPanel installation will take more time based on your network speed.

Install cPanel Plugins - Trendy Flash

Trendy Flash Site Builder - Installation
  • Login to your cPanel Server via SSH
  • Download the installer file by running the following command:
    • # wget http://www.trendyflashdownload.com/installer/cp/ipbased/trendysitebuilder.sh
  • Next, we need to adjust the permissions of the installer file, so please do:
    • # chmod 755 trendysitebuilder.sh
  • Finally, you’ll need to run the installer file, by doing the following command:
    • # ./trendysitebuilder.sh
     Once you have completed all the aforementioned steps, you’ll be able to login to your cPanel/WHM web hosting server and locate the "Trendy SiteBuilder Icon" under the "Plugins" section within your cPanel accounts.

Trendy Flash Site Builder - Uninstall
  • Login to your cPanel Server via SSH
  • Download the installer file by running the following command:
    • # cd /usr/local/cpanel/base/frontend/x3
    • # wget “http://www.trendyflashdownload.com/installer/cp/uninstall.sh”
  • Next, we need to adjust the permissions of the uninstaller file, so please do:
    • # chmod 755 uninstall.sh
  • Finally, you’ll need to run the uninstaller file, by doing the following command:
    • # sh uninstall.sh
Now the Trendy Flash Site Builder has been successfully removed from the cPanel.

Thursday, 18 October 2012

FTP Log file Format

The CentOS FTP log file format:

Fri May 14 05:16:12 2010 0 ::ffff:1.2.3.4 11974 /home/user/public_html/index.php a _ i r user ftp 0 * c

Fri May 14 05:16:12 2010 -- Date/time stamp, nothing complicated.

0 -- Transfer time, in whole seconds (this transfer took less than a second, so zero).

::ffff:1.2.3.4 -- Remote host where the user connected from.

11974 -- Size of the transferred file (in bytes).

/home/user/public_html/index.php --  Full path to the uploaded file.

a -- Transfer type, a = ASCII (plain-text files), b = binary (everything else)

_   --  Action flag, C = compressed, U = uncompressed; T = tar'ed; _ = no action was taken.

i -- Direction, i = incoming, o = outgoing, d = deleted.

r -- Access mode, a = anonymous user, r = real (normal) user.

user -- Local username authenticated with.

ftp -- The service being invoked (almost always FTP).

0 -- Authentication method, 0 = none, 1 = RFC931 authetication.

* --  User ID or * if not available (virtual user).

c -- Completion status, c = completed, i = incomplete.

Linux / UNIX setup SSH with DSA public key authentication (password less login)

Step #1: Generate DSA Key Pair

Use ssh-keygen command as follows:

$ ssh-keygen -t dsa

Output:

Enter file in which to save the key (/home/vivek/.ssh/id_dsa): Press [Enter] key
Enter passphrase (empty for no passphrase): myPassword
Enter same passphrase again: myPassword
Your identification has been saved in /home/vivek/.ssh/id_dsa.
Your public key has been saved in /home/vivek/.ssh/id_dsa.pub.
The key fingerprint is:
04:be:15:ca:1d:0a:1e:e2:a7:e5:de:98:4f:b1:a6:01 vivek@vivek-desktop
Caution: a) Please enter a passphrase different from your account password and confirm the same.
b) The public key is written to /home/you/.ssh/id_dsa.pub.
c) The private key is written to /home/you/.ssh/id_dsa.
d) It is important you never-ever give out your private key.


Step #2: Set directory permission

Next make sure you have correct permission on .ssh directory:

$ cd
$ chmod 755 .ssh


Step #3: Copy public key

Now copy file ~/.ssh/id_dsa.pub on Machine #1 (tom) to remote server jerry as ~/.ssh/authorized_keys:

$ scp ~/.ssh/id_dsa.pub user@jerry:.ssh/authorized_keys

Command to type on your remote server called jerry

Login to your remote server and make sure permissions are set correct:

$ chmod 600 ~/.ssh/authorized_keys

Task: How do I login from client to server with DSA key?

Use scp or ssh as follows from your local computer:
$ ssh user@jerry
$ ssh user@remote-server.com
$ scp file user@jerry:/tmp

You will still be asked for the passphrase for the DSA key file each time you connect to remote server called jerry, unless you either did not enter a passphrase when generating the DSA key pair.

Task: How do I login from client to server with DSA key but without typing a passhrase i.e. password-less login?

Type the following command at shell prompt:

$ exec /usr/bin/ssh-agent $SHELL
$ ssh-add


Output:

Enter passphrase for /home/vivek/.ssh/id_dsa: myPassword
Identity added: /home/vivek/.ssh/id_dsa (/home/vivek/.ssh/id_dsa)
Type your passhrase once. Now, you should not be prompted for a password whenever you use ssh, scp, or sftp command.

If you are using GUI such as Gnome use the command:

$ ssh-askpass

OR

$ /usr/lib/openssh/gnome-ssh-askpass

To save your passphrase during your GNOME session under Debian / Ubuntu, do as follows:
a) Click on System
b) Select Preferences
c) Select Session
d) Click on New
e) Enter "OpenSSH Password Management" in the Name text area
f) Enter /usr/lib/openssh/gnome-ssh-askpass in the command text area.

g) Click on close to save the changes
h) Log out and then log back into GNOME. After GNOME is started, a dialog box will appear prompting you for your passphrase. Enter the passphrase requested. From this point on, you should not be prompted for a password by ssh, scp, or sftp.

MySQL database server remote access

You need type the following commands which will allow remote connections.

Step # 1: Login Using SSH (if server is outside your data center)

First, login over ssh to remote MySQL database server:

ssh user@server1.cyberciti.biz


Step # 2: Edit my.cnf File

Once connected you need to edit the MySQL server configuration file my.cnf using a text editor such as vi.

If you are using Debian Linux file is located at /etc/mysql/my.cnf location
If you are using Red Hat Linux/Fedora/Centos Linux file is located at /etc/my.cnf location
If you are using FreeBSD you need to create a file /var/db/mysql/my.cnf
Edit /etc/my.cnf, run:

# vi /etc/my.cnf

Step # 3: Once file opened, locate line that read as follows

[mysqld]
Make sure line skip-networking is commented (or remove line) and add following line

bind-address=YOUR-SERVER-IP
For example, if your MySQL server IP is 65.55.55.2 then entire block should be look like as follows:

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 65.55.55.2
# skip-networking

....
..
....
Where,

bind-address : IP address to bind to.
skip-networking : Don’t listen for TCP/IP connections at all. All interaction with mysqld must be made via Unix sockets. This option is highly recommended for systems where only local requests are allowed. Since you need to allow remote connection this line should be removed from my.cnf or put it in comment state.

Step# 4 Save and Close the file

If you are using Debian / Ubuntu Linux, type the following command to restart the mysql server:
# /etc/init.d/mysql restart

If you are using RHEL / CentOS / Fedora / Scientific Linux, type the following command to restart the mysql server:

# /etc/init.d/mysqld restart

If you are using FreeBSD, type the following command to restart the mysql server:

# /usr/local/etc/rc.d/mysql-server stop
# /usr/local/etc/rc.d/mysql-server start


OR
# /usr/local/etc/rc.d/mysql-server restart

Step # 5 Grant access to remote IP address

Connect to mysql server:

$ mysql -u root -p mysql

Grant access to a new database
If you want to add a new database called foo for user bar and remote IP 202.54.10.20 then you need to type the following commands at mysql> prompt:

mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'202.54.10.20' IDENTIFIED BY 'PASSWORD';


How Do I Grant Access To An Existing Database?
Let us assume that you are always making connection from remote IP called 202.54.10.20 for database called webdb for user webadmin, To grant access to this IP address type the following command At mysql> prompt for existing database, enter:

mysql> update db set Host='202.54.10.20' where Db='webdb';
mysql> update user set Host='202.54.10.20' where user='webadmin';


Step # 6: Logout of MySQL

Type exit command to logout mysql:

mysql> exit

Step # 7: Open port 3306

You need to open TCP port 3306 using iptables or BSD pf firewall.

A sample iptables rule to open Linux iptables firewall

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

OR only allow remote connection from your web server located at 10.5.1.3:

/sbin/iptables -A INPUT -i eth0 -s 10.5.1.3 -p tcp --destination-port 3306 -j ACCEPT

OR only allow remote connection from your lan subnet 192.168.1.0/24:

/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT

Finally save all rules (RHEL / CentOS specific command):

# service iptables save

A sample FreeBSD / OpenBSD pf rule ( /etc/pf.conf)
pass in on $ext_if proto tcp from any to any port 3306
OR allow only access from your web server located at 10.5.1.3:

pass in on $ext_if proto tcp from 10.5.1.3 to any port 3306 flags S/SA synproxy state

Step # 8: Test it

From your remote system or your desktop type the following command:

$ mysql -u webadmin –h 65.55.55.2 –p

Where,

-u webadmin: webadmin is MySQL username
-h IP or hostname: 65.55.55.2 is MySQL server IP address or hostname (FQDN)
-p : Prompt for password
You can also use the telnet or nc command to connect to port 3306 for testing purpose:
$ echo X | telnet -e X 65.55.55.2 3306

OR

$ nc -z -w1 65.55.55.2 3306

Sample outputs:

Connection to 65.55.55.2 3306 port [tcp/mysql] succeeded!

Monday, 1 October 2012

MySQL Password Reset

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !


To do so, start the server, then issue the following commands:

/usr/bin/mysqladmin -u root password 'new-password'
/usr/bin/mysqladmin -u root -h svnser.ndotcbe.in password 'new-password'


Alternatively you can run:

/usr/bin/mysql_secure_installation

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the manual for more instructions.

You can start the MySQL daemon with:
cd /usr ; /usr/bin/mysqld_safe &

You can test the MySQL daemon with mysql-test-run.pl
cd /usr/mysql-test ; perl mysql-test-run.pl

An Another way to Reset root password:


Stop MySQL:
root#  service mysqld stop

Start MySQL in safe mode:
root#  mysqld_safe --skip-grant-tables &

Log into MySQL as root:
root#  mysql -u root

Reset the password:
mysql>  update mysql.user set password=PASSWORD("YourNewPassW0RD") where User='root';
mysql>  flush privileges; exit;

Log out of MySQL and stop the Safe Mode:
root#  service mysqld stop

Start MySQL in the normal mode:
root#  service mysqld start

Log into MySQL with your new password:
root#  mysql -u root -p
Enter password:
mysql>