2014 m. gegužės 28 d., trečiadienis

Ubuntu + Apache + php5 + mysql + phpmyadmin

APACHE

Pagrindinis failų talpinimo katalogas            /var/www/html/
# apt-get install apache2 # Debian apache instaliavimas
# yum install httpd # CentOS 6/7
# yum install "Web Server" # Visi CentOS 7 web serveriui reikalingi paketai

Paleidimas:

# systemctl enable httpd # Įgalinam servisą CentOS 7/Ubuntu - apache paketas.
# systemctl start httpd # Paleidžiam httpd servisą.
# systemctl staus httpd # Tikrinam httpd stausą.
# service httpd start start # CentOS 6.8
# /etc/init.d/httpd start 
# apache2ctl start                                

Perkrovimas:

# systemctl restart httpd.service # CentOS 7/Ubuntu - apache paketas.
# service httpd restart # CentOS 6.8  
# /etc/init.d/httpd restart                    
# apache2ctl restart                                           

Stabdymas:

# systemctl stop httpd.service # CentOS 7/Ubuntu - apache paketas.

# service httpd stop # CentOS 6.8  
# /etc/init.d/apache2 stop 
# apache2ctl stop                            


Apache konfiguracijos tikrinimas:

# apachectl configtest
# apachectl graceful

Teisių priskirimas apache vartotojui, kad galėtų kurti ir keisti dokumentus:
# chown -R www-data:www-data /var/www/ # Ubuntu

# chown -R apache:apache /var/www/ # CentOS


PHP diegimas

Ubuntu

# apt-get install php5
# apt-get install libapache2-mod-php5
# /etc/init.d/apache2 start /stop/restart

# apachectl start /stop/restart

CentOS 6/7

# yum install php

conf.d/ kataloge atsirado naujas modulis.
Perkraunam httpd, tam kad įsigaliotų naujas modulis.
# systemctl restart httpd

# tree /etc/httpd/conf.d/
├── autoindex.conf
├── main.conf
├── manual.conf
├── moodle.conf
├── php.conf * 
├── README
├── userdir.conf
└── welcome.conf

PHP Direktyvos:

Siuntimo maksimalus dokumento dydis 2MB.
upload_max_filesize 

Dokumentų siuntimo į serverį dydis, neturėtų būti mažesnis už "upload_max_filesize".
post_max_size

Numatytoji reikšmė apie 13s. Siunčiant didesnį dokumentą laiką reiktų pakeisti didesne reikšme.
max_execution_time

php informacija per komandinę eilutę.
php -i

php konfigūracijos keitimas.
vim /etc/php.ini

php atvaizdavimas puslapyje.

#file:/var/www/html/info.php
<?php
 phpinfo();
?>

mysql diegimas

CentOS 6

# yum install mysql-server php php-mysql

CentOS7

Reikalingas php modelis, kad php galėtų bendrauti su mysq.
# yum install php-mysql mariadb mariadb-server

# systemctl status mariadb.service # tikrinam servisą
● mariadb.service - MariaDB database server
   Loaded: loaded (/usr/lib/systemd/system/mariadb.service; disabled; vendor preset: disabled)
   Active: inactive (dead)

Įgalinam ir paleidžiam mysql servisą.
# systemctl enable mariadb.service
# systemctl start mariadb.service

Apsaugom duomenų bazę.
# mysql_secure_installation
/usr/bin/mysql_secure_installation

Pavyzdys, kaip kurti mysql db ir vartotojus per cli.
# mysql -u root -e "create database wordpress; GRANT ALL PRIVILEGES ON wordpress.* TO username@localhost IDENTIFIED BY 'password'"

Darbas su duomenų bazėmis.

Kaip automatiškai įjungti mysql, apache po perkrovimo ?

# chkconfig --list | egrep "http|mysql" # Tikrinam servisus
# chkconfig httpd on && chkconfig mysqld on # Įgalinam servisus

CentOS6
chkconfig mysqld on
chkconfig httpd on

CentOS7
chkconfig mariadb on
chkconfig httpd on

phpadmin

# apt-get -y install mysql-server
# apt-get -y install phpmyadmin

# dpkg-reconfigure phpmyadmin # phpadmin perkonfigūravimas

curl

# apt-get install curl libcurl3 libcurl3-dev php5-curl

Ugniasienė ir iptables su RHEL6/7:

Redhad 7 firewall nustatymus galima pakeisti, Firewall gui programoje.

Redhad 6 ar senesnėse versijose taisyklės turi būti įrašytos:  /etc/sysconfig/iptables kataloge:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 443 -j ACCEPT

Arba komanda:
sudo iptables -I INPUT -p tcp --dport 80 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 443 -j ACCEPT
sudo service iptables save #išsaugome pakeitimus

Cenos7 httpd konfigūraciniai dokumentai:

[root@localhost httpd]# tree
.
├── conf
│   ├── httpd.conf
│   └── magic
├── conf.d
│   ├── autoindex.conf
│   ├── manual.conf
│   ├── README
│   ├── userdir.conf
│   └── welcome.conf
├── conf.modules.d
│   ├── 00-base.conf
│   ├── 00-dav.conf
│   ├── 00-lua.conf
│   ├── 00-mpm.conf
│   ├── 00-proxy.conf
│   ├── 00-systemd.conf
│   └── 01-cgi.conf
├── logs -> ../../var/log/httpd
├── modules -> ../../usr/lib64/httpd/modules
└── run -> /run/httpd

conf -pagrindiniai konfigūraciniai failai
conf.d - nustatymai, kur bus virtualus hostai ir modeliai kuri užkrauna apache, pvz:, php.
logs -> simboliniai linkai

Ubuntu 16.04 apache2/ konfigūraciniai dokumentai:

/etc/apache2 $ tree
.
├── apache2.conf
├── conf-available
│   ├── charset.conf
│   ├── javascript-common.conf
│   ├── localized-error-pages.conf
│   ├── other-vhosts-access-log.conf
│   ├── security.conf
│   └── serve-cgi-bin.conf
├── conf-enabled
│   ├── charset.conf -> ../conf-available/charset.conf
│   ├── localized-error-pages.conf -> ../conf-available/localized-error-pages.conf
│   ├── other-vhosts-access-log.conf -> ../conf-available/other-vhosts-access-log.conf
│   ├── security.conf -> ../conf-available/security.conf
│   └── serve-cgi-bin.conf -> ../conf-available/serve-cgi-bin.conf
├── envvars
├── magic
├── mods-available
│   ├── access_compat.load
│   ├── actions.conf
│   ├── actions.load
│   ├── alias.conf
│   ├── alias.load
│   ├── allowmethods.load
│   ├── asis.load
│   ├── auth_basic.load
│   ├── auth_digest.load
│   ├── auth_form.load

...
│   ├── status.conf -> ../mods-available/status.conf
│   └── status.load -> ../mods-available/status.load
├── ports.conf
├── sites-available
│   ├── 000-default.conf
│   └── default-ssl.conf
└── sites-enabled
    └── 000-default.conf -> ../sites-available/000-default.conf


Virtualaus hosto kūrimas

CentOS7 /etc/httpd/conf.d/moodle.conf

<VirtualHost *:80>
ServerName "192.168.56.111"
DocumentRoot "/var/www/http/moodle"
</VirtualHost>

<VirtualHost *:80# "*" rodo visus ip adresus,  :80 -  priskiria portą.
ServerName - # vardas kuriuo bus bus atpažintas virtualus host.
DocumentRoot - Nurodo kur talpinami pirminiai tinklapio dokumentai.

Dabar serveryje galima bus prieiti prie localhost/moodle puslapio.

SSL konfigūravimas:

CentOS7
# yum install mod_ssl 

Ranktas yra sugeneruojamas kai įdiegiamas mod_ssl paketas ir patalpinamas:
/etc/pki/tls/private/localhost.key  - raktas
/etc/pki/tls/certs/localhost.crt   - sukuriamas self-signed sertifikatas, panaudojant raktą.

Konfigūracinėje rinkmenoje reikia pakeisti SSLCertificateFile ir SSLCertificateKeyFile
/etc/httpd/conf.d/ssl.conf 


- www Pagrindinė .conf rinkmena Paketo pavadinimas
Cenos 6/7 /var/www/html/ /etc/httpd/conf/httpd.conf httpd
Ubuntu 16.04 /var/www/html/ /etc/apache2/apache2.conf apache2

Kitos konfigūracijos.
Apache raidžių jautrumo išjungimas Ubuntu serveriui.
Darbas su duomenų bazėm.
Kaip leisti priėjimą iš remote.