Instalacja LEMP - Nginx, PHP5, MySQL, Mail, Roundcube (iRedMail)

Archiwalne, stare wpisy FAQ i HowTo Użytkowników
piotrd14
Posty: 27
Rejestracja: 03 października 2010, 13:40
Lokalizacja: Kraków

Instalacja LEMP - Nginx, PHP5, MySQL, Mail, Roundcube (iRedMail)

Post autor: piotrd14 »

Witam,
Odświeżona instalacja iRedMail dla Debian Squeeze oraz dodatkowo instalacja i podstawowa konfiguracja Nginx + PHP5-FPM.

Oryginalny opis http://www.piotrdyduch.pl/ubuntu-debian ... roundcube/ (również dla Ubuntu)

W tym poradniku będę się posługiwał edytorem "nano". Oczywiście można korzystać ze swojego ulubionego :) .

Przypominam jeszcze, że wszystko co będziemy robić, robimy jako administrator (root)!

1. Aktualizacja systemu i dodanie repozytoriów
Edytujemy /etc/apt/sources.list i dopisujemy poniższe linijki

Kod: Zaznacz cały

deb http://packages.dotdeb.org squeeze all
deb-src http://packages.dotdeb.org squeeze all
Następnie pobieramy klucze GPG

Kod: Zaznacz cały

wget http://www.dotdeb.org/dotdeb.gpg
cat dotdeb.gpg | apt-key add -
Aktualizujemy system (i ew. restartujemy)

Kod: Zaznacz cały

aptitude update
aptitude upgrade
reboot
2. Pobieramy niezbędne narzędzia (jeśli ich nie ma)

Kod: Zaznacz cały

aptitude install bzip2
3. Pobieramy paczkę iRedMail i ją rozpakowujemy

Kod: Zaznacz cały

cd /root
wget http://iredmail.googlecode.com/files/iRedMail-0.7.4.tar.bz2
tar jxvf iRedMail-0.7.4.tar.bz2
4. Konfigurujemy i instalujemy iRedMail

Kod: Zaznacz cały

cd iRedMail-0.7.4/
bash iRedMail.sh
4.1. Potwierdzamy
Obrazek

4.2. Ustawiamy katalog przechowywania wiadomości e-mail
Obrazek

4.3. Wybieramy MySQL (to w tej bazie będą trzymane ustawienia, użytkownicy, domeny, itd.)
Obrazek

4.4. Ustawiamy hasło administratora MySQL
Obrazek

4.5. Ustawiamy swoją pierwszą wirtualną domenę
Powinna to być "normalna" domena, i nie może być to nazwa hosta!
Obrazek

4.6. Ustawiamy hasło dla administratora poczty -> [email protected]
Obrazek

4.7. Ustawiamy hasło dla pierwszego użytkownika poczty -> [email protected]
Obrazek

4.8. Wybieramy składniki jakie chcemy zainstalować
Wszystko oprócz Awstats powinno być zaznaczone
Obrazek

4.9. Wybieramy język dla webmail'a
Obrazek

4.10. Instalujemy pakiety :)
Jeśli jesteśmy pewni konfiguracji, wklepujemy klawisz "Y" i naciskamy Enter :)
Obrazek

4.11. Kończenie instalacji
Po jakimś czasie (zależy od szybkości łącza i sprzętu :) ) odpowiadamy na 3 pytania (po kolei):
1. Czy chcesz użyć reguł firewalla dostarczonych przez iRedMail? (jak chcecie ;) )
2. Zrestartować firewalla? (n)
3. Włączyć postfixa? (n)
Obrazek

4.12. Restart

Kod: Zaznacz cały

reboot
5. Zmiana portów Apache2
Skrypt iRedMail zainstalował nam Apache2. Musimy w takim razie zmienić mu port na jakim ma nasłuchiwać.
Musimy wyedytować dwa pliki i zmienić port 80 na jakiś inny (np. 8080)

Kod: Zaznacz cały

nano /etc/apache2/ports.conf

Kod: Zaznacz cały

nano /etc/apache2/sites-available/default
5.1 Restart Apache

Kod: Zaznacz cały

/etc/init.d/apache2 restart
5.2. Regułki iptables

Jeśli zainstalowaliśmy firewalla trzeba odblokować porty. W tym celu edytujemy plik /etc/rc.local, który włącza się jako ostatni podczas odpalania systemu i dopisujemy w nim regułki iptables (wszystko co napiszemy musi być przed „exit 0″)

Kod: Zaznacz cały

iptables -A INPUT -p tcp –dport 8080 -m state –state NEW -j ACCEPT
iptables -A OUTPUT -p tcp –dport 8080 -m state –state NEW -j ACCEPT
6. Instalacja Nginx i PHP5

Kod: Zaznacz cały

aptitude install nginx php5-fpm
7. Zmiana w konfiguracji PHP5-FPM adresu na którym ma nasłuchiwać skryptów

Kod: Zaznacz cały

nano /etc/php5/fpm/pool.d/www.conf
Średnikujemy linijkę Listen i wpisujemy pod nią:

Kod: Zaznacz cały

listen = /tmp/php5-fpm.sock
8. Konfiguracja VirtualHost dla Nginx
8.1. Usuwamy katalog /etc/nginx/sites-enabled , a w jego miejsce tworzymy dowiązanie symboliczne

Kod: Zaznacz cały

cd /etc/nginx/
rm -rf sites-enabled
ln -s sites-available sites-enabled
8.2. Domyślny Wirtualny Host

Zmieniamy nazwę domyślnego/podstawowego Wirtualnego Hosta

Kod: Zaznacz cały

cd sites-available
mv default 000.default
Następnie edytujemy 000.default i wpisujemy poniższe dane. Będzie to tzw. Catch-All VirtualHost (czyli wszystkie nieustawione domeny będą wskazywały na domyślną lokalizację stron www.

Kod: Zaznacz cały

server {
    listen 80;
    server_name _;
    root /var/www;
    
    index index.php index.html;
    
    location = /favicon.ico {
        log_not_found off;
        access_log off;
    }
    
    location ~ /\.ht {
        deny all;
    }
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/tmp/php5-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
8.4. Tworzymy index.php

Przechodzimy do katalogu /var/www , usuwamy plik index.html i tworzymy index.php

Kod: Zaznacz cały

cd /var/www
rm index.html
nano index.php
Wklepujemy:

Kod: Zaznacz cały

<?php
echo 'Hello';
?>
Zapisujemy, zamykamy

8.5. Restart Nginx i PHP5-FPM

Kod: Zaznacz cały

/etc/init.d/nginx restart
/etc/init.d/php5-fpm restart
Testujemy wchodząc przez przeglądarkę na adres hosta lub domeny i jeżeli naszym oczom ukaże się napis „Hello”, to wszystko jest w porządku :)

9. Wirtualny Host dla Roundcube
Tworzymy sobie pliczek o nazwie np. 01.poczta.domena.pl.vhost

Kod: Zaznacz cały

nano /etc/nginx/sites-available/01.poczta.domena.pl.vhost
I wklejamy poniższą konfigurację

Kod: Zaznacz cały

server {
    listen 80;
    server_name poczta2.piotrdyduch.pl;
    root /usr/share/apache2/roundcubemail-0.7;
    
    index index.php index.html;
    
    location ~ /\.ht {
        deny all;
    }
    
    location / {
        try_files $uri $uri/ /index.php?$args;
    }
    
    location ~ \.php$ {
        include /etc/nginx/fastcgi_params;
        fastcgi_pass unix:/tmp/php5-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }
}
9.1. Restartujemy Nginx i sprawdzamy pocztę :)

Kod: Zaznacz cały

/etc/init.d/nginx restart
W przeglądarce wpisujemy adres http://poczta.domena.pl i logujemy się używając nazwy użytkownika [email protected] i hasła jakie podaliśmy przy konfiguracji iRedMail'a

10. Aliasy
Serwer www działa, poczta działa, teraz czas na dodawanie skrzynek pocztowych. Żeby je dodać, najpierw musimy „zrobić” sobie dostęp do panelu iRedAdmin. Do zarządzania użytkownikami będziemy korzystać przy pomocy serwera Apache2. Tak więc musimy dopisać aliasy w już gotowych plikach w /etc/apache2/conf.d/.

10.1. Alias iRedAdmin

Edytujemy pliczek /etc/apache2/conf.d/iredadmin.conf i wklejamy poniższą konfigurację

Kod: Zaznacz cały

nano /etc/apache2/conf.d/iredadmin.conf

Kod: Zaznacz cały

WSGIScriptAlias /iredadmin /usr/share/apache2/iredadmin/iredadmin.py/
Alias /iredadmin/static /usr/share/apache2/iredadmin/static/

WSGISocketPrefix /var/run/wsgi
WSGIDaemonProcess iredadmin user=iredadmin threads=15
WSGIProcessGroup iredadmin

AddType text/html .py

<Directory /usr/share/apache2/iredadmin/>
Order allow,deny
Allow from all
</Directory>
10.2. Alias phpMyAdmin

Przy okazji utworzymy sobie alias do phpMyAdmin

Kod: Zaznacz cały

nano /etc/apache2/conf.d/phpmyadmin.conf

Kod: Zaznacz cały

Alias /phpmyadmin /usr/share/phpmyadmin
<Directory /usr/share/apache2/phpmyadmin/>
Options -Indexes
</Directory>
10.3. Restart Apache2

Kod: Zaznacz cały

/etc/init.d/apache2 restart
10.4. Dodanie użytkowników poczty

Dodawanie skrzynek pocztowych odbywa się przez adres: http://domena.pl:8080/iredadmin . Jako login podajemy [email protected] , a hasło jakie podaliśmy w konfiguracji. Po zalogowaniu dodajemy sobie użytkownika i następnie sprawdzamy pocztę wchodząc na adres http://poczta.domena.pl

11. Przydatne linki
http://www.howtoforge.com
http://www.iredmail.com
http://www.nginx.org
Zablokowany