LAMP је скраћеница од Linux, Apache http server, МySQL и Php тако да ћемо кроз овај текст инсталирати и исконфигурисати ове програме на ЦентОС 6.6 минимал Линуксу о коме сам писао раније а који је идеалан за оваква играња и самообуку. LAMP ћете користити уколико желите да развијате неке своје веб сајтове које раде на горепоменутим сервисима, учити се веб програмирању и слично.

Наочаре за компјутер
У овом примеру LAMP ћемо инсталирати на ЦентОС 6 минимал машини која има интернет приступ, IP адреса јој је 192.168.1.123, а уз LAMP ћемо инсталирати и phpMyAdmin за лакшу администрацију базе и корисника на бази као и Вордпрес на локацији http://192.168.1.123/websajt.

Server јесте накачен на интернет али му није додат никакав домен већ користимо IP адресу (немам VPS нити статичку јавну адресу па вам не могу то појаснити).

Све радимо даљински, путем ssh клијента PuTTY и са машине на којој је инсталиран Windows 8.1 (да не испадне да смо тотални гикови дигитронци).

УКРАТКО:

Линукс знате шта је (ево овде текст) користи велика већина свих сервера и 97% свих суперкомпјутера на планети.

Apache је бесплатни веб сервер отвореног кода доступан за већину оперативних система од Линукса до Виндовса и покреће огроман број сајтова у свету, чини ми се чак и већину сајтова. Више о Apache-у прочитајте на њиховом званичном сајту (линк овде).

MySQL је вишекориснички SQL систем за управљење базама података а која се већински користи за веб апликације и сајтове, и као и претходне две ставке је апсолутно бесплатна за сваку употребу и слободан је софтвер. Пример ради – Твитер, који има трилијарде милијарди трансакција дневно – користи MySQL.

PHP је програмски језик који се користи за израду динамичких веб страница односно за динамичко генерисање HTML кода који дефинише једну једну веб страницу.

phpMyAdmin који ћемо инсталирати, јесте графички кориснички интерфејс који позивате из веб браузера за управљање базама података (тако да не морате да се бакћете са терминалом кад хоћете нешто да промените у бази, направите нову базу, корисника и слично).

Инсталација потребних пакета

# Требаће нам због phpMyAdmin-a
rpm -iUvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm

yum install httpd mod_ssl mysql mysql-server php php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-mbstring php-mcrypt php-mssql php-snmp php-soap php-tidy curl curl-devel phpmyadmin wget vim

Измене конфигурационих фајлова за phpMyAdmin

# Бекап фајла, за сваки случај
cp /etc/httpd/conf.d/phpMyAdmin.conf ~/BEKAP_phpMyAdmin_conf

# Измена IP aдресе у фајлу са нашом IP адресом:
sed -i s/"127.0.0.1"/"192.168.1.123"/g /etc/httpd/conf.d/phpMyAdmin.conf

Обришите или закоментаришите тарабама следеће линије у том фајлу, елем, извршите ово па баците поглед на screenshot: vim /etc/httpd/conf.d/phpMyAdmin.conf
phpMyAdmin

# Прављење иницијалног conf фајла:
cp /usr/share/doc/phpMyAdmin-*/examples/config.sample.inc.php /usr/share/phpMyAdmin/config.inc.php

# Измена начина аутентификације са cookie на http у phpMyAdmin-у
sed -i s/"= 'cookie';"/"= 'http';"/g /usr/share/phpMyAdmin/config.inc.php

Измена PHP поставки

Променићемо максималну величину поста као и максималну дозвољену величину фајла који се сме upload-овати на сајт. Ово у принципу не морате да радите мада ја понекад радим аплоуд већих фајлова па ми је потребно.

# Промена максималне величине поста са 8M на 100M
sed -i s/"post_max_size = 8M"/"post_max_size = 100M"/g /etc/php.ini

# Промена максималне величине фајла који се може аплоудовати
sed -i s/"upload_max_filesize = 2M"/"upload_max_filesize = 80M"/g /etc/php.ini

Измена Apache конфигурационих фајлова

…ћемо урадити да би дозволили пермалинкове (sajt.com/blabla уместо sajt.com/?p=123) испод линије која почиње са „<Directory „/var/www/html“>“

# Измена мејл адресе (не морате ово да мењате ако вас мрзи)
sed -i s/"ServerAdmin root@localhost"/"ServerAdmin vasmail@kompjuterash.kom"/g /etc/httpd/conf/httpd.conf

# Malo bezbednost ovo-ono
sed -i s/"ServerSignature On"/"ServerSignature Off"/g /etc/httpd/conf/httpd.conf

vim /etc/httpd/conf/httpd.conf

Подешавање iptables-а (фајервола)

Ако вам је подигнут фајервол (iptables) потребно је пустити подразумевани порт да буде видљив људима ван и то ћете урадити следећим командама:

/sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/rc.d/init.d/iptables restart

Startовање Apache-а и MySQL-а

# Стартовање потребних сервиса
service httpd start
service mysqld start

# Нек се дижу приликом стартовања система
chkconfig httpd on
chkconfig mysqld on

Подешавање MySQL-а

Поставићете root лозинку која мора бити ултра зајебана и одрадићете неке безбедоносне поставке.

# Покрените
/usr/bin/mysql_secure_installation

# Одрадите кад вас пита
Enter current password for root (enter for none): (притисните ЕНТЕР)
Set root password? [Y/n] (притисните ЕНТЕР)
New password: (поставите неку зајебану лозинку)
Re-enter new password: (поновите лозинку од малопре)
Remove anonymous users? [Y/n] (притисните ЕНТЕР)
Disallow root login remotely? [Y/n] (притисните ЕНТЕР)
Remove test database andaccess to it? [Y/n] (притисните ЕНТЕР)
Reload privilege tables now? [Y/n] (притисните ЕНТЕР)

Почетни тест да ли све ради

# Тестирање ради ли веб на машини:
echo "Radi OK" > /var/www/html/index.html

Идите преко веб браузера на адресу (у овом случају): http://192.168.1.123 и ако вам се отвори страница – све је ОК. Ако се не отвори – најјаче да неће да се отвори, шта ја причам…

Инсталација Вордпреса

Улогујте се у phpMyAdmin (root лозинку сте креирали у делу са MySQL-ом) креирајте базу и корисника. У овом примеру направићемо и корисника на бази и саму базу
http://192.168.1.123/phpmyadmin

Клик на USERS па на Add user

Попуните тражене податке везане за саму базу, зачекирајте као што је наведено на овом скриншоту па кликните на GO

Кад сте креирали базу података крените са инсталацијом Вордпреса. Ајмо опет у PuTTY па…

wget http://wordpress.org/latest.tar.gz
tar -xzvf latest.tar.gz
mv wordpress /var/www/html/websajt
rm -f latest.tar.gz

cd /var/www/html/
chown -R apache:apache websajt/

Selinux (скраћеница од Security Enhanced Linux), као што му име и каже јесте додатни безбедонсни слој на Линуксу који контролише приступ апликацијама. Сви предлажу да се он гаси у оваквим ситуацијама али то није ОК јер тиме – губите на сигурности. Боље је бунарити по Гуглу како исконфигурисати selinux да ради са вашом апликацијом како треба.

restorecon -r /var/www/html

# Ако сте решили да ипак угасите selinux или вам је сервер у затвореној мрежи или
# немате неке сигурносне параноје гашење радите следећом командом, само без # на почетку
sed -i s/"SELINUX=enforcing"/"SELINUX=disabled"/g /etc/selinux/config

Покрените инсталацију кроз веб браузер на адреси (у овом случају) http://192.168.1.123/websajt па крените лагано. Тај део нећу описивати јер је толико интиутиван да ми је просто непријатно како нам добро иде – а и имате упутства по нету и YouTube-у па само још фали и моје упутство.

ШТА БИ ЈОШ ТРЕБАЛО ОВДЕ УРАДИТИ?
Ако вам је сервер јаван и свако може да му приступи – онда сигурносна подешавања, почевши од iptables, fail2ban, постављање лог мониторинга, забрана логовања на Линукс путем корисничког имена и лозинке, ажурирање свега (радите једноставним: yum -y update), промена SSH порта, ревизија сервиса који се стартују са Линуксом, гашење непотребних httpd модула, мало паметније исконфигурисати Apache, скривање потписа сервера и свашта нешто, али отом-потом.