Install minimal CentOS 6.6 with latest PHP and Percona Server 5.6

Being FreeBSD user for years make lazy to try something new 🙂 . CentOS and Ubuntu server are two distros that brought my attention via distrowatch. Today I have time to try latest CentOS 6 release (6.6) in my virtualbox and I love minimal installation and for that reason I choose CentOS 6.6 minimal iso (CentOS-6.6-x86_64-minimal.iso).

For target installation I choose LAMP and try to use latest component (PHP 5.6, MariaDB 10 or Percona server 5.6 and stock Apache (2.2) ).

Lets get start!

1. Install CentOS 6.6

Let default installation till finished.

2. Configure network

Everything located in /etc/sysconfig/network-scripts/ and every lan card installed in server you see using “ip a” command (remove ” sign).

In most case just change these properties :

  • ONBOOT -> yes

  • BOOTPROTO -> static (change to dhcp for dynamic address)

  • IPADDR -> enter ipv4 address

  • NETMASK -> enter subnet mask

  • GATEWAY -> enter ip4 address of your gateway

If you use vps, all these information available from control panel or check your email from provider.

# service network start

To restart network

3. Install basic stuff

# yum install nano bc wget lynx

4. Update yum

# yum update

5. Install Database

For MariaDB

# cd /etc/yum.repos.d/
# nano MariaDB.repo

Enter these lines :

# MariaDB 10.0 CentOS repository list – created 2015-04-14 06:56 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.0/centos6-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

save the file.

# yum install MariaDB-server MariaDB-client

For Percona Server

# yum install http://www.percona.com/downloads/percona-release/redhat/0.1-3/percona-release-0.1-3.noarch.rpm

# yum install Percona-Server-client-56 Percona-Server-server-56

6. Install PHP 5.6

# rpm -Uvh https://mirror.webtatic.com/yum/el6/latest.rpm
# yum install php56w php56w-opcache php56w-mysql

7. Configuration

# chkconfig httpd --add
# chkconfig httpd on --level 235
# chkconfig mysql --add
# chkconfig mysql on --level 235

# iptables -I INPUT -p tcp -m tcp --dport 80 -j ACCEPT
# service iptables save

8. Run the service

# service httpd start
# service mysql start

Done. Basic LAMP server is successfully installed.

9. Create phpinfo page

# cd /var/www/html/
# echo "<?php echo phpinfo();?>" > info.php

10. Test

# lynx localhost/info.php

PHP logo

PHP Version 5.6.7

System Linux localhost.localdomain 2.6.32-504.el6.x86_64 #1 SMP Wed Oct 15 04:27:16 UTC 2014 x86_64
Build Date Mar 21 2015 20:29:45
Server API Apache 2.0 Handler
Virtual Directory Support disabled
Configuration File (php.ini) Path /etc
Loaded Configuration File /etc/php.ini
Scan this dir for additional .ini files /etc/php.d
Additional .ini files parsed /etc/php.d/bz2.ini, /etc/php.d/calendar.ini, /etc/php.d/ctype.ini, /etc/php.d/curl.ini, /etc/php.d/exif.ini,
/etc/php.d/fileinfo.ini, /etc/php.d/ftp.ini, /etc/php.d/gettext.ini, /etc/php.d/gmp.ini, /etc/php.d/iconv.ini, /etc/php.d/json.ini, /etc/php.d/mysql.ini,
/etc/php.d/mysqli.ini, /etc/php.d/opcache.ini, /etc/php.d/pdo.ini, /etc/php.d/pdo_mysql.ini, /etc/php.d/pdo_sqlite.ini, /etc/php.d/phar.ini,
/etc/php.d/shmop.ini, /etc/php.d/simplexml.ini, /etc/php.d/sockets.ini, /etc/php.d/sqlite3.ini, /etc/php.d/tokenizer.ini, /etc/php.d/xml.ini,
/etc/php.d/zip.ini
PHP API 20131106
PHP Extension 20131226
Zend Extension 220131226
Zend Extension Build API220131226,NTS
PHP Extension Build API20131226,NTS
Debug Build no
Thread Safety disabled
Zend Signal Handling disabled
Zend Memory Manager enabled
Zend Multibyte Support disabled
IPv6 Support enabled
DTrace Support enabled
Registered PHP Streams https, ftps, compress.zlib, php, file, glob, data, http, ftp, compress.bzip2, phar, zip
Registered Stream Socket Transports tcp, udp, unix, udg, ssl, sslv3, sslv2, tls, tlsv1.0, tlsv1.1, tlsv1.2
Registered Stream Filters zlib.*, string.rot13, string.toupper, string.tolower, string.strip_tags, convert.*, consumed, dechunk, bzip2.*, convert.iconv.*
Zend logo This program makes use of the Zend Scripting Language Engine:
Zend Engine v2.6.0, Copyright (c) 1998-2015 Zend Technologies
with Zend OPcache v7.0.4-dev, Copyright (c) 1999-2015, by Zend Technologies

11. Test Percona Server

# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.6.23-72.1 Percona Server (GPL), Release 72.1, Revision 0503478

Copyright (c) 2009-2015 Percona LLC and/or its affiliates
Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the current input statement.

mysql> show engines;

+——————–+———+—————————————————————————-+————–+——+————+
| Engine | Support | Comment | Transactions | XA | Savepoints |
+——————–+———+—————————————————————————-+————–+——+————+
| InnoDB | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES | YES | YES |
| CSV | YES | CSV storage engine | NO | NO | NO |
| MRG_MYISAM | YES | Collection of identical MyISAM tables | NO | NO | NO |
| BLACKHOLE | YES | /dev/null storage engine (anything you write to it disappears) | NO | NO | NO |
| MEMORY | YES | Hash based, stored in memory, useful for temporary tables | NO | NO | NO |
| PERFORMANCE_SCHEMA | YES | Performance Schema | NO | NO | NO |
| ARCHIVE | YES | Archive storage engine | NO | NO | NO |
| MyISAM | YES | MyISAM storage engine | NO | NO | NO |
| FEDERATED | NO | Federated MySQL storage engine | NULL | NULL | NULL |
+——————–+———+—————————————————————————-+————–+——+————+
9 rows in set (0,00 sec)

mysql>

Reference : (for more tuning Database and Apache setting)

  1. Percona Tools Wizard
  2. MySQL Tuner
  3. ApacheBuddy
  4. MySQL Tuning Primer