wait_timeout Mysql :

wait_timeout defines the number of seconds a mysql thread waits in idle state before mysql kills it.

MySQL uses a lot of different timeout variables at different stages.when connection is just being established connect_timeout is used. When server waits for another query to be sent to it wait_timeout.
By default, the server closes the connection after eight hours if nothing has happened.
You can change the time limit by setting the wait_timeout variable when you
start mysqld.
How to find default wait_timeout value?
Use below Query:

mysql> show variables like 'wait_timeout';
| Variable_name | Value |
| wait_timeout  | 28800 |
1 row in set (0.00 sec)

=>Default: 28800 seconds. 

The most common reason for the MySQL server has gone away error is that the
server timed out and closed the connection.
1.MySQL: "Warning: MySQL server has gone away"
2.Mysql error:Too many connections error:

For handling Mysql:Too many connections error:Do not use mysql_pconnect for connecting with the mysql database. you can use mysql_connect.You need to change the  time limit by setting the wait_timeout variable when you start mysqld.

1.Edit the my.cnf  and try to change the following setting:
3.save it.
4.Restart Mysql server.
5. Cheeck below command
mysql> show variables like 'wait_timeout';


Run below command in mysql prompt
  mysql> set global wait_timeout = 30

Instead of use wait_timeout, you can set interactive_timeout to short period of time (for ex. 18 sec.)
this is a lot better solution in apache + mysql environment than wait_timeout