Własny Dedyk - ServUbu 10.10+PHP+MySQL+FTP+Webmin
: 17 lut 2011, 13:38
Zapewne wielu z was chciałoby mieć własny serwer dedykowany, żeby postawić swoją stronki czy udostępnić komuś pliki, dlatego też powstał ten TUTORIAL
Jestem dobrej myśli że ktoś podwiesi temat 
1. Instalacja Systemu Linux
2. Instalacja APACHE2 + MySQL + PHP5
3. INSTALACJA FTP
4. Instalacja Webmina
WIĘC ZACZNIJMY:
1. Instalujemy system Linux - nie będę się rozpisywał nad instalką, gdyż jest tak intuicyjna że każdy sobie z tym poradzi - zarówno z wersją serwerową, jak i desktopem. Zaznaczam że instalujemy sobie jedynie podstawową wersję systemu.
A) Po zainstalowaniu systemu wchodzimy do konsoli (wersja desktop) lub po prostu logujemy się do systemu (wersja server)
podajemy swój login, oraz hasło, aby przejść do konta admina
instalujemy sobie serwer SSH (Shell) aby móc się łączyć zdalnie z naszym serwerem z każdego innego komputera majacego dostęp do internetu
wszelkie aktualizacje
2. INSTALACJA APACHE2 + MySQL + PHP:
Instalacja serwera apache2
Instalacja PHP5
Instalacja wtyczek do PHP5
Instalacja serwera MySQL
Instalacja MySQL w Apache i PHP
Instalacja PHPMYADMIN -> aby działał poprawnie musimy skopiować zawartość pliku /etc/phpmyadmin/apache.conf <-> na koniec pliku <-> /etc/apache2/apache2.conf
by otworzyć pierwszy wpisujemy w konsoli: <- wersja server
<- wersja desktop
Identycznie postępujemy, by otworzyć plik drugi, po skopiowaniu zawartości pierwszego pliku i wklejamy na końcu skopiowaną zawartość.
TERAZ - aby wszystko funkcjonowało poprawnie należy zresetować serwer APACHE:
3. Instalacja pureFTPd
Instalujemy pure ftpd dla MySQL
Tworzenie grupy "ftp", oraz użytkownika "ftp"
EBMINA
Aby zalogować się do naszego webmina wpisujemy w przeglądarce adres https://localhost:10000 <- wyskoczy nam powiadomienie o akceptację klucza, akceptujemy go i logujemy się kontem admina systemu


1. Instalacja Systemu Linux
2. Instalacja APACHE2 + MySQL + PHP5
3. INSTALACJA FTP
4. Instalacja Webmina
WIĘC ZACZNIJMY:
1. Instalujemy system Linux - nie będę się rozpisywał nad instalką, gdyż jest tak intuicyjna że każdy sobie z tym poradzi - zarówno z wersją serwerową, jak i desktopem. Zaznaczam że instalujemy sobie jedynie podstawową wersję systemu.
A) Po zainstalowaniu systemu wchodzimy do konsoli (wersja desktop) lub po prostu logujemy się do systemu (wersja server)
Kod: Zaznacz cały
sudo su
Kod: Zaznacz cały
sudo apt-get install openssh-server
Kod: Zaznacz cały
sudo apt-get upgrade && apt-get update
2. INSTALACJA APACHE2 + MySQL + PHP:
Kod: Zaznacz cały
sudo apt-get install apache2
Kod: Zaznacz cały
sudo apt-get install PHP5
Kod: Zaznacz cały
sudo apt-get install php-pear
sudo apt-get install php5-xsl
sudo apt-get install php5-gd
sudo apt-get install php5-ming
Kod: Zaznacz cały
sudo apt-get install mysql-server
Kod: Zaznacz cały
sudo apt-get install libapache2-mod-auth-mysql
sudo apt-get install php5-mysql
Kod: Zaznacz cały
sudo apt-get install phpmyadmin
by otworzyć pierwszy wpisujemy w konsoli:
Kod: Zaznacz cały
sudo nano /etc/phpmyadmin/apache.conf
Kod: Zaznacz cały
sudo gedit /etc/phpmyadmin/apache.conf
Identycznie postępujemy, by otworzyć plik drugi, po skopiowaniu zawartości pierwszego pliku i wklejamy na końcu skopiowaną zawartość.
TERAZ - aby wszystko funkcjonowało poprawnie należy zresetować serwer APACHE:
Kod: Zaznacz cały
sudo /etc/init.d/apache2 restart
Kod: Zaznacz cały
apt-get install pure-ftpd-mysql
Kod: Zaznacz cały
groupadd -g 2001 ftpgroup
useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser
Kod: Zaznacz cały
mysql -u root -p
podajemy nasze hasło do bazy danych i się do niej logujemy, można też wpisać
mysql -u root nasze_hasło <- ale nie zalecam tej opcji przy łączeniu zdalnym z naszym serwerem (dla bezpieczeństwa)
CREATE DATABASE pureftpd;
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost' IDENTIFIED BY 'ftpdpass';
GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP ON pureftpd.* TO 'pureftpd'@'localhost.localdomain' IDENTIFIED BY 'ftpdpass';
FLUSH PRIVILEGES;
Tworzymy bazę danych pureftpd, oraz nadajemy jej odpowiednie atrybuty. Zamiast 'ftpdpass' <-> wpisujemy 'nasze_haslo_uzytkownika_pureftpd_do_bazy_MySQL'
USER pureftpd;
Przechodzimy do bazy pureftpd
CREATE TABLE ftpd (
varchar użytkownika ( 16 ) NOT NULL DEFAULT '' ,
STATUS enum ( '0 ' , '1 ' ) NOT NULL DEFAULT '0 ' ,
varchar Hasło ( 64 ) NOT NULL DEFAULT '' ,
varchar Uid ( 11 ) NIE NULL DEFAULT "-1" ,
Gid varchar ( 11 ) NOT NULL DEFAULT "-1" ,
Dir varchar ( 128 ) NOT NULL DEFAULT '' ,
smallint ULBandwidth ( 5 ) NOT NULL DEFAULT '0 ' ,
smallint DLBandwidth ( 5 ) NOT NULL DEFAULT '0 ' ,
komentarz tinytext NOT NULL ,
ipaccess varchar ( 15 ) NOT NULL DEFAULT '*' ,
smallint QuotaSize ( 5 ) NOT NULL DEFAULT '0 ' ,
int QuotaFiles ( 11 ) NOT NULL DEFAULT 0 ,
PRIMARY KEY ( użytkownika ) ,
UNIQUE KEY użytkownika ( User )
) TYPE = MyISAM;
Tworzymy w naszej bazie odpowiednie tabele :-)
quit;
wychodzimy z edycji MySQL
cp /etc/pure-ftpd/db/mysql.conf /etc/pure-ftpd/db/mysql.conf_orig
cat /dev/null > /etc/pure-ftpd/db/mysql.conf
vim /etc/pure-ftpd/db/mysql.conf
aby skopiować plik conf naszej bazy (utworzyć kopię zapasową), oraz wyedytować plik conf
MYSQLSocket /var/run/mysqld/mysqld.sock
#MYSQLServer localhost
#MYSQLPort 3306
MYSQLUser pureftpd
MYSQLPassword ftpdpass
MYSQLDatabase pureftpd
#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext
MYSQLCrypt md5
MYSQLGetPW SELECT Password FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
MySQLGetQTAFS SELECT QuotaFiles FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
To jest zawartość naszego pliku MySQL.conf
MYSQLUser pureftpd
MYSQLPassword ftpdpass
MYSQLDatabase pureftpd
Te trzy linijki edytujemy według naszych wcześniejszych ustawień, zmienialiśmy jedynie hasło "ftpdpass" <- wpisujemy hasło, którego użytliśmy wcześniej.
Tworzymy teraz trzy pliki niezbędne do działania FTP ;-)
sudo nano /etc/pure-ftpd/conf/ChrootEveryone
w środku pliku wpisujemy jedynie słowo -> yes <- i zapisujemy poprzez naciśnięcie F2
sudo nano /etc/pure-ftpd/conf/CreateHomeDir
w środku pliku wpisujemy jedynie słowo -> yes <- i zapisujemy poprzez naciśnięcie F2
sudo nano /etc/pure-ftpd/conf/DontResolve
w środku pliku wpisujemy jedynie słowo -> yes <- i zapisujemy poprzez naciśnięcie F2
aby nasz FTP działał trzeba go jeszcze tylko zresetować
sudo /etc/init.d/pure-ftpd-mysql restart
Aby dodać teraz użytkownika FTP wchodzimy do naszego php my admina -> http://localhost/phpmyadmin, podajemy dane do logowania, wchodzimy w bazę "pureftpd" i klikamy na zakładkę "SQL" w okienku które nam się pojawi wklepujemy:
INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES (NASZ_UŻYTKOWNIK_FTP', '1', MD5('HASŁO_NASZEGO_USERA_FTP'), '2001', '2001', '/var/www', '100', '100', '', '*', '50', '0');
podmieniamy dane:
-> NASZ_UŻYTKOWNIK_FTP
-> HASŁO_NASZEGO_USERA_FTP
oraz jeśli chcemy to ostatnie trzy liczby -> pierwsza liczba 100 to limit Uploadu (podany w megabajtach) dla naszego usera, druga liczba 100 to limit download (podany w megabajtach) dla naszego usera, a trzecia liczba 50, to pojemność konta (podana w megabajtach) naszego usera FTP na dysku
logujemy się teraz przez obojętnie jakiego klienta FTP na nasz serwer podając dane usera i hasła, które utworzyliśmy przed chwilą, w folderze /var/www/* zostanie utworzony katalog z nazwą użytkownika FTP i tam będą jego pliki :-)
4. INSTALACJA WEBMINA (zarządzanie serwerem przez www)
sudo nano /etc/apt/sources.list
i na końcu wpisujemy linijkę -> deb http://download.webmin.com/download/repository sarge contrib <- zapisujemy plik poprzez naciśnięcie F2
cd /root
przechodzimy do katalogu root`a
sudo wget http://www.webmin.com/jcameron-key.asc
sudo apt-key add jcameron-key.asc
dodajemy klucz CPG
sudo apt-get update
aktualizujemy nasze repozytoria
sudo apt-get install webmin
Aby zalogować się do naszego webmina wpisujemy w przeglądarce adres https://localhost:10000 <- wyskoczy nam powiadomienie o akceptację klucza, akceptujemy go i logujemy się kontem admina systemu
