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

Шпаргалка по установке Apache, PHP, MySQL, ProFTPD, Webmin, Bind, phpMyAdmin, IonCube в CentOS. Данная инструкция подойдет для VDS, DS и для системы которая, используется для тестов при разработке скриптов и т.д.
Итак приступим. Начнем с того что удалим yum-updatesd, который проверяет наличие обновлений, пользы от него мало, а вот cpu он использовать может наоборот много.

root@computer:$ service yum-updatesd stop
root@computer:$ rpm -e yum-updatesd

Обновим пакеты:

root@computer:$ yum update

Вместо yum-updatesd установим yum-cron:

root@computer:$ yum install yum-cron
root@computer:$ chkconfig --level 235 yum-cron on
root@computer:$ service yum-cron start

Установим и настроим firewall:

root@computer:$ yum install iptables system-config-securitylevel-tui

запускаем и настраиваем:

root@computer:$ 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. Для этого подключим нужные репозитории:

root@computer:$ yum install yum-priorities
root@computer:$ rpm -Uvh https://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-4.noarch.rpm
root@computer:$ rpm -Uvh https://dl.iuscommunity.org/pub/ius/stable/Redhat/5/i386/ius-release-1.0-6.ius.el5.noarch.rpm

Удалим старый php и его модули:

root@computer:$ yum remove php php-*

Установим новый php 5.3:

root@computer:$ 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:

root@computer:$ yum install httpd mod_ssl curl

Настроим авто-запуск Apache:

root@computer:$ chkconfig --level 235 httpd on

Включим VirtualHosts в Apache (перед этим установим редактор nano):

root@computer:$ yum install nano
root@computer:$ nano /etc/httpd/conf/httpd.conf

Разкаментим строку убрав впереди неё #

NameVirtualHost *:80

Запустим Apache:

root@computer:$ service httpd start

MySQL

Установим MySQL:

root@computer:$ yum install mysql mysql-server

Настроим авто-запуск MySQL:

root@computer:$ chkconfig --level 235 mysqld on

Запустим MySQL:

root@computer:$ service mysqld start

Зададим root пароль для MySQL:

root@computer:$ mysqladmin -u root password VASHPAROLI

Отредактируем конфиг файл MySQL:

root@computer:$ 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:

root@computer:$ service mysqld restart

BIND (DNS)

Установим BIND:

root@computer:$ yum install bind

Настроим его авто-запуск:

root@computer:$ chkconfig --level 235 named on

ProFTPD

Удалим установленный VsFTPD:

root@computer:$ yum remove vsftpd

Установим пакеты которые понадобятся для сборки и установки ProFTPD:

root@computer:$ yum install gcc gcc-c++

Скачаем, соберем и установим ProFTPD:

root@computer:$ cd /tmp/
root@computer:$ wget --passive-ftp ftp://ftp.proftpd.org/distrib/source/proftpd-1.3.3e.tar.gz
root@computer:$ tar xvfz proftpd-1.3.3e.tar.gz
root@computer:$ cd proftpd-1.3.3e/
root@computer:$ ./configure --sysconfdir=/etc
root@computer:$ make
root@computer:$ make install
root@computer:$ cd ..
root@computer:$ rm -fr proftpd-1.3.3e*
root@computer:$ ln -s /usr/local/sbin/proftpd /usr/sbin/proftpd

Создадим файл для авто-запуска ProFTPD:

root@computer:$ 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

Выставим права на файл:

root@computer:$ chmod 755 /etc/init.d/proftpd

Отредактируем конфиг файл:

root@computer:$ nano /etc/proftpd.conf

Изменим строки в конфиг файле на эти:

Group                           nobody
PassivePorts           60000 65000

И в конец файла добавим следующие строки для входа по FTP от пользователя root:

<Global>
RootLogin on
</Global>

Настроим авто-запуск ProFTPD:

root@computer:$ chkconfig --levels 235 proftpd on

Запустим ProFTPD:

root@computer:$ service proftpd start

Webmin

Установим модули необходимые для работы Webmin:

root@computer:$ yum install perl-Net-SSLeay

Скачаем последнюю версию Webmin:

root@computer:$ wget https://www.webmin.com/download/rpm/webmin-current.rpm

Установим Webmin:

root@computer:$ rpm -Uvh imea_skachannogo_paketa.rpm

phpMyAdmin

Установим phpMyAdmin:

root@computer:$ yum install phpmyadmin

Отредактируем конфиг файл:

root@computer:$ 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
<Directory /usr/share/phpMyAdmin/>
   order deny,allow
   Allow from all
#   deny from all
#   allow from 127.0.0.1
#   allow from ::1
</Directory>
 
# This directory does not require access over HTTP - taken from the original
# phpMyAdmin upstream tarball
#
<Directory /usr/share/phpMyAdmin/libraries>
    Order Deny,Allow
    Deny from All
    Allow from None
</Directory>
 
# This configuration prevents mod_security at phpMyAdmin directories from
# filtering SQL etc.  This may break your mod_security implementation.
#
#<IfModule mod_security.c>
#    <Directory /usr/share/phpMyAdmin>
#        SecRuleInheritance Off
#    </Directory>
#</IfModule>

Настроим авторизацию в phpMyAdmin:

root@computer:$ nano /usr/share/phpMyAdmin/config.inc.php

Найдем строку:

$cfg['Servers'][$i]['auth_type'] = ‘cookies‘;

И приведем её к виду:

$cfg['Servers'][$i]['auth_type'] = ‘http‘;

Перезапустим Apache чтобы изменения вступили в силу:

root@computer:$ service httpd restart

IonCube

Качаем и разархивируем IonCube:

root@computer:$ wget https://downloads2.ioncube.com/loader_downloads/ioncube_loaders_lin_x86.tar.gz
root@computer:$ tar zxvf ioncube_loaders_lin_x86.tar.gz
root@computer:$ mv ioncube /usr/local/

Добавим IonCube в конфиг PHP:

root@computer:$ nano /etc/php.ini

В конец файла добавим следующую строку:

zend_extension = /usr/local/ioncube/ioncube_loader_lin_5.3.so

Для работы IonCube необходимо отключить повышенный уровень безопасности в CentOS:

root@computer:$ nano /etc/selinux/config

Изменим конфиг файл:

SELINUX=disabled

Перезапустим Apache для применения изменений:

root@computer:$ service httpd restart

Всё установлено можно перезапустить систему, для проверки нормального старта всех модулей:

root@computer:$ reboot

Добавить комментарий