CentOS — Установка Apache, PHP, MySQL, ProFTPD, Webmin, Bind, phpMyAdmin, IonCube

Шпаргалка по установке Apache, PHP, MySQL, ProFTPD, Webmin, Bind, phpMyAdmin, IonCube в CentOS. Данная инструкция подойдет для VDS, DS и для системы которая, используется для тестов при разработке скриптов и т.д.
Итак приступим. Начнем с того что удалим yum-updatesd, который проверяет наличие обновлений, пользы от него мало, а вот cpu он использовать может наоборот много.
service yum-updatesd stop
rpm -e yum-updatesd
Обновим пакеты:
yum update
Вместо yum-updatesd установим yum-cron:
yum install yum-cron
chkconfig --level 235 yum-cron on
service yum-cron start
Установим и настроим firewall:
yum install iptables system-config-securitylevel-tui
запускаем и настраиваем:
system-config-securitylevel-tui
Выставляем — security levels (*), далее Custumize — и открываем порты — ssh, http, https, ftp в строке Custom ports — откроем порты для webmin — 10000:tcp, dns — 53:tcp 53:udp, и 60000-65000:tcp.
PHP
Удалим старый php 5.2 и установим новый 5.3. Для этого подключим нужные репозитории:
yum install yum-priorities
rpm -Uvh https://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
rpm -Uvh https://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-6.ius.el5.noarch.rpm
Удалим старый php и его модули:
yum remove php php-*
Установим новый php 5.3:
yum install php53u-pear php53u php53u-cli php53u-common php53u-devel php53u-gd php53u-mbstring php53u-mcrypt php53u-mysql php53u-pdo php53u-soap php53u-xml php53u-xmlrpc php53u-bcmath php53u-pecl-apc php53u-pecl-memcache php53u-snmp
Apache
Установим Apache:
yum install httpd mod_ssl curl
Настроим авто-запуск Apache:
chkconfig --level 235 httpd on
Включим VirtualHosts в Apache (перед этим установим редактор nano):
yum install nano
nano /etc/httpd/conf/httpd.conf
Разкаментим строку убрав впереди неё #
NameVirtualHost *:80
Запустим Apache:
service httpd start
MySQL
Установим MySQL:
yum install mysql mysql-server
Настроим авто-запуск MySQL:
chkconfig --level 235 mysqld on
Запустим MySQL:
service mysqld start
Зададим root пароль для MySQL:
mysqladmin -u root password VASHPAROLI
Отредактируем конфиг файл MySQL:
nano /etc/my.cnf
Заменим содержимое конфиг файла на следующее:
[client]
port = 3306
socket = /var/lib/mysql/mysql.sock
[mysqld_safe]
socket = /var/lib/mysql/mysql.sock
nice = 0
pid-file = /var/run/mysqld/mysqld.pid
[mysqld]
user = mysql
socket = /var/lib/mysql/mysql.sock
port = 3306
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking
bind-address = 127.0.0.1
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8
myisam-recover = BACKUP
query_cache_limit = 1M
query_cache_size = 16M
log_error = /var/log/mysql/error.log
expire_logs_days = 10
max_binlog_size = 100M
[mysqldump]
quick
quote-names
max_allowed_packet = 16M
[isamchk]
key_buffer = 16M
Перезапустим MySQL:
service mysqld restart
BIND (DNS)
Установим BIND:
yum install bind
Настроим его авто-запуск:
chkconfig --level 235 named on
ProFTPD
Удалим установленный VsFTPD:
yum remove vsftpd
Установим пакеты которые понадобятся для сборки и установки ProFTPD:
yum install gcc gcc-c++
Скачаем, соберем и установим ProFTPD:
cd /tmp/
wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
tar xvfz proftpd-1.3.3e.tar.gz
cd proftpd-1.3.3e/
./configure --sysconfdir=/etc
make
make install
cd ..
rm -fr proftpd-1.3.3e*
ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd
Создадим файл для авто-запуска ProFTPD:
nano /etc/init.d/proftpd
#!/bin/sh
# $Id: proftpd.init,v 1.1 2004/02/26 17:54:30 thias Exp $
#
# proftpd This shell script takes care of starting and stopping
# proftpd.
#
# chkconfig: - 80 30
# description: ProFTPD is an enhanced FTP server with a focus towards \
# simplicity, security, and ease of configuration. \
# It features a very Apache-like configuration syntax, \
# and a highly customizable server infrastructure, \
# including support for multiple 'virtual' FTP servers, \
# anonymous FTP, and permission-based directory visibility.
# processname: proftpd
# config: /etc/proftp.conf
# pidfile: /var/run/proftpd.pid
# Source function library.
. /etc/rc.d/init.d/functions
# Source networking configuration.
. /etc/sysconfig/network
# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0
[ -x /usr/sbin/proftpd ] || exit 0
RETVAL=0
prog="proftpd"
start() {
echo -n $"Starting $prog: "
daemon proftpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && touch /var/lock/subsys/proftpd
}
stop() {
echo -n $"Shutting down $prog: "
killproc proftpd
RETVAL=$?
echo
[ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/proftpd
}
# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
status proftpd
RETVAL=$?
;;
restart)
stop
start
;;
condrestart)
if [ -f /var/lock/subsys/proftpd ]; then
stop
start
fi
;;
reload)
echo -n $"Re-reading $prog configuration: "
killproc proftpd -HUP
RETVAL=$?
echo
;;
*)
echo "Usage: $prog {start|stop|restart|reload|condrestart|status}"
exit 1
esac
exit $RETVAL
Выставим права на файл:
chmod 755 /etc/init.d/proftpd
Отредактируем конфиг файл:
nano /etc/proftpd.conf
Изменим строки в конфиг файле на эти:
Group nobody
PassivePorts 60000 65000
И в конец файла добавим следующие строки для входа по FTP от пользователя root:
RootLogin on
Настроим авто-запуск ProFTPD:
chkconfig --levels 235 proftpd on
Запустим ProFTPD:
service proftpd start
Webmin
Установим модули необходимые для работы Webmin:
yum install perl-Net-SSLeay
Скачаем последнюю версию Webmin:
wget https://www.webmin.com/download/rpm/webmin-current.rpm
Установим Webmin:
rpm -Uvh imea_skachannogo_paketa.rpm
phpMyAdmin
Установим phpMyAdmin:
yum install phpmyadmin
Отредактируем конфиг файл:
nano /etc/httpd/conf.d/phpMyAdmin.conf
Приведем его к виду:
# phpMyAdmin - Web based MySQL browser written in php
#
# Allows only localhost by default
#
# But allowing phpMyAdmin to anyone other than localhost should be considered
# dangerous unless properly secured by SSL
Alias /phpMyAdmin /usr/share/phpMyAdmin
Alias /phpmyadmin /usr/share/phpMyAdmin
order deny,allow
Allow from all
# deny from all
# allow from 127.0.0.1
# allow from ::1
# This directory does not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
Order Deny,Allow
Deny from All
Allow from None
# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc. This may break your mod_security implementation.
#
#
#
# SecRuleInheritance Off
#
#
Настроим авторизацию в phpMyAdmin:
nano /usr/share/phpMyAdmin/config.inc.php
Найдем строку:
$cfg['Servers'][$i]['auth_type'] = ‘cookies‘;
И приведем её к виду:
$cfg['Servers'][$i]['auth_type'] = ‘http‘;
Перезапустим Apache чтобы изменения вступили в силу:
service httpd restart
IonCube
Качаем и разархивируем IonCube:
wget https://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
tar zxvf ioncube_loaders_lin_x86.tar.gz
mv ioncube /usr/local/
Добавим IonCube в конфиг PHP:
nano /etc/php.ini
В конец файла добавим следующую строку:
zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so
Для работы IonCube необходимо отключить повышенный уровень безопасности в CentOS:
nano /etc/selinux/config
Изменим конфиг файл:
SELINUX=disabled
Перезапустим Apache для применения изменений:
service httpd restart
Всё установлено можно перезапустить систему, для проверки нормального старта всех модулей:
reboot