Ubuntu:Gutsy pl/Serwery

From

Jump to: navigation, search

Contents

Serwer DHCP

Jak zainstalować serwer DHCP i skonfigurować go aby automatycznie przydzielał adresy IP

np. Zakładamy że "eth0" jest interfejsem karty sieciowej
IP Address Range: 192.168.0.100 to 192.168.0.200
Subnet Mask: 255.255.255.0
DNS Servers: 202.188.0.133, 202.188.1.5
Domains: tm.net.my
Gateway Address: 192.168.0.1
sudo apt-get install dhcp3-server
sudo cp /etc/default/dhcp3-server /etc/default/dhcp3-server_backup
gksudo gedit /etc/default/dhcp3-server
  • Znajdź linię:
...
INTERFACES=""
  • Zastąp ją:
INTERFACES="eth0"
  • Zapisz edytowany plik.
sudo cp /etc/dhcp3/dhcpd.conf /etc/dhcp3/dhcpd.conf_backup
gksudo gedit /etc/dhcp3/dhcpd.conf
  • Znajdź sekcję:
...
# option definitions common to all supported networks...
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;
default-lease-time 600;
max-lease-time 7200;
...
  • Zastąp ją:
# option definitions common to all supported networks...
#option domain-name "example.org";
#option domain-name-servers ns1.example.org, ns2.example.org;
#default-lease-time 600;
#max-lease-time 7200;
  • Znajdź sekcję:
...
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
...
  • Zastąp ją:
# A slightly different configuration for an internal subnet.
subnet 192.168.0.0 netmask 255.255.255.0 {
 range 192.168.0.100 192.168.0.200;
 option domain-name-servers 202.188.0.133, 202.188.1.5;
 option domain-name "tm.net.my";
 option routers 192.168.0.1;
 option broadcast-address 192.168.0.255;
 default-lease-time 600;
 max-lease-time 7200;
}
  • Zapisz edytowany plik.
sudo invoke-rc.d dhcp3-server restart

Kopia bezpieczeństwa Ubuntu

Jeśli chcesz stworzyć backup systemu zainteresuj się tymi aplikacjami:

Sbackup

Dar and Kdar

Serwer baz danych

Jak zainstalować serwer baz danych MYSQL

sudo apt-get install mysql-server
  • MySQL początkowo pozwala na połączenia z adresu localhosta (127.0.0.1). Potrzebujesz usunąć te ograniczenie jeśli chcesz aby serwer był dostępny dla każdego z internetu. Otwórz plik /etc/mysql/my.cnf
gksudo gedit /etc/mysql/my.cnf
  • Znajdź line bind-address = 127.0.0.1 i zakomentuj ją
...
#bind-address           = 127.0.0.1
...
  • MySQL domyślnie nie ma ustawionego hasła dla użytkownika root. Jest to ogromnym zagrożeniem dla bezpieczeństwa więc będziesz potrzebował ustawić hasło. Aby komputer lokalny miał dostęp do konta root, potrzebujesz ustawić hasło również dla niego. nazwa-komputera-lokalnego jest nazwą komputera na którym pracujesz. Aby dowiedzieć się więcej zobacz tutaj
mysqladmin -u root password your-new-password
mysqladmin -h root@nazwa-komputera-lokalnego -u root -p password your-new-password
sudo invoke-rc.d mysql restart

##MySQL Database backup using AutoMySQLBackup

  • AutoMySQLBackup is a script to take daily, weekly and monthly backups of your MySQL databases using mysqldump.
  • AutoMySQLBackup Script Features
    • Backup mutiple MySQL databases with one script. (Now able to backup ALL databases on a server easily. no longer need to specify each database seperately)
    • Backup all databases to a single backup file or to a seperate directory and file for each database.
    • Automatically compress the backup files to save disk space using either gzip or bzip2 compression.
    • Can backup remote MySQL servers to a central server.
    • Runs automatically using cron or can be run manually.
    • Can e-mail the backup log to any specified e-mail address instead of “root”. (Great for hosted websites and databases).
    • Can email the compressed database backup files to the specified email address.
    • Can specify maximun size backup to email.
    • Can be set to run PRE and POST backup commands.
    • Choose which day of the week to run weekly backups.
  • AutoMySQLBackup Requirements

The AutoMySQLBackup script only requires mysqldump (A standard utility provided with the mysql client) and gzip or bzip2 for compression of the backup files. If you would like to have the log emailed to you then you will need to have permission to execute the “mail” program. If you want the compressed backup files mailed to you then Mutt must be available on the server. Finally you will need a bash shell and the standard system tools and utilities (all these requirements should be the default on most linux system.)

  • What AutoMySQLBackup does

Every day AutoMySQLBackup will run (if setup in /etc/cron.daily) and using mysqldump and gzip will dump your specified databases to the /backups/daily directory, it will rotate daily backups weekly so you should never have more than 7 backups in there..

Every Saturday AutoMySQLBackup will again backup the databases you have chosen but they will be placed into /backups/weekly, these will be rotated every 5 weeks so there should never be more than 5 backups in there..

Every 1st of the month AutoMySQLBackup will create a backup of all databases and place them into /backups/monthly. These will never be rotated so it will be up to you to do your own house keeping. I would suggest taking a copy of this offline every month or two so that if you have a hard drive failure you will be able to restore your database

  • AutoMySQLBackup Installation

The install is as simple as editing a few variables in the AutoMySQLBackup file. The full setup is documented in the AutoMySQLBackup script file below the variables section.

  • Download automysqlbackup.sh and place it into your /etc/cron.daily directory or your home directory.
  • Edit (at least) the following lines :
...
USERNAME=dbuser 
PASSWORD=password DBNAMES=”DB1 DB2 DB3″
...
  • Note:The user must have at least select privileges to the databases and make sure to keep the quotes ” ” otherwise it won’t work
  • Make the file executable :
sudo chmod u+rwx
  • Create the following directory
./backups
  • That’s it...Now you can run it using the command line “./automysqlbackup.sh” or if it is in /etc/cron.daily it will run each day when cron

Jak zainstalować MYSQL Administrator

sudo apt-get install mysql-admin

Jak zainstalować MySQL Query Browser (SQL Client)

sudo apt-get install mysql-query-browser

Jak zainstalować Oracle Database XE

  • Otwórz plik sources.list:
sudo gedit /etc/apt/sources.list
  • Dodaj tą linijkę do pliku sources.list:
deb http://oss.oracle.com/debian unstable main non-free
  • Zainstaluj potrzebne pakiety używając apt-get
sudo apt-get update
sudo apt-get install oracle-xe
  • Dodaj swoją nazwę użytkownika do grupy 'dba' (Zakładając, że twoja nazwa to username).
sudo usermod -G dba -a username
  • Uruchom podstawową konfigurację:
sudo /etc/init.d/oracle-xe configure

Możesz definiować tylko te porty, z których nie korzystają inne usługi. Możesz wybierać domyślne porty naciskając enter zamiast wpisywania numeru.

Serwer HTTP Apache

Jak zainstalować serwer WWW Apache?

sudo apt-get install apache2

Jak zainstalować PHP dla serwera Apache?

Jak zainstalować PHP4
sudo apt-get install php4
sudo apt-get install libapache2-mod-php4
sudo invoke-rc.d apache2 restart
  • Aby sprawdzić, czy PHP4 zostało zainstalowane poprawnie
gksudo gedit /var/www/testphp.php
  • Wstaw poniższą linię do nowego pliku
<?php phpinfo(); ?>
  • Zapisz tak przygotowany plik
  • http://localhost/testphp.php
  • Upewnij się potem, że usunąłeś plik testphp.php, który może być zagrożeniem dla bezpieczeństwa
Jak zainstalować PHP5
sudo apt-get install php5
sudo apt-get install libapache2-mod-php5
sudo invoke-rc.d apache2 restart
  • Aby sprawdzić, czy PHP5 zostało zainstalowane poprawnie
gksudo gedit /var/www/testphp.php
  • Wstaw poniższą linię do nowego pliku
<?php phpinfo(); ?>
  • Zapisz tak przygotowany plik
  • http://localhost/testphp.php
  • Upewnij się potem, że usunąłeś plik testphp.php, który może być zagrożeniem dla bezpieczeństwa

Jeżeli nie działa (np. twoja przeglądarka chce zapisać plik testphp.php na dysk), spróbuj tych poloceń:

sudo a2enmod php5
sudo /etc/init.d/apache2 force-reload

Spróbuj otworzyć http://localhost/testphp.php ponownie

  • (Opcjonalne) Zainstaluj rekomendowane moduły PHP5
sudo apt-get install php5-xsl php5-gd php-pear
  • Uruchom ponownie Apache
sudo invoke-rc.d apache2 restart

Many PHP applications use XSLT technology as well as server-side graphic manipulation (via GD). Also, PEAR provides access to PHP's module repository.

pear help

Jak zainstalować obsługę MYSQL dla serwera Apache HTTP

sudo apt-get install libapache2-mod-auth-mysql
  • Wybierz php4-mysql lub php5-mysql w zależności od tego jaką wersję PHP zainstalowałeś
sudo apt-get install php<version-number>-mysql
sudo apt-get install phpmyadmin
  • Aby nakłonić PHP do współpracy z MySQL otwórz plik (gdzie <wersja> to 4 lub 5 w zależności od wersji zainstalowanego PHP)
gksudo gedit /etc/php<version>/apache2/php.ini
  • Odkomentuj linię ";extension=mysql.so" aby wyglądała tak
...
extension=mysql.so
...
  • Zapisz plik i zakończ edycję
sudo invoke-rc.d apache2 restart

Alternatywnie, jeśli powyższe rozwiązanie nie zadziała upewnij się, że serwer bazdanych MySQL jest już zainstalowany:

 sudo apt-get install mysql-server

Jak zainstalować Pythona dla Apache 2

sudo aptitude install python
sudo aptitude install libapache2-mod-python
sudo gedit /etc/apache2/mods-available/mod_python.conf
  • Dopisz następujące linie do pliku
AddType application/x-httpd-python .py
AddHandler mod_python .py
PythonHandler mod_python.publisher
PythonDebug On
  • Zapisz tak przygotowany plik
cd /etc/apache2/mods-enabled
sudo ln -s ../mods-available/mod_python.conf mod_python.conf
sudo invoke-rc.d apache2 restart

Jak zamapować adresy URL dla lokalizacji spoza /var/www/?

gksudo gedit /etc/apache2/conf.d/alias
  • Wstaw poniższe linie do nowego pliku
Alias /URL-path /sciezka_dostepu_do_katalogu/
<Directory /sciezka_dostepu_do_katalogu/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
</Directory>
  • Zapisz tak przygotowany plik
sudo invoke-rc.d apache2 restart
  • Jeżeli otrzymasz błąd "403 - Permission denied", spróbuj:
chmod o+x /sciezka_dostepu_do_katalogu/
  • jeżeli dalej nie działa, to spawdź:
chmod o+r,o+x /sciezka_dostepu_do_katalogu/

Jak zmienić domyślny numer portu dla serwera Apache?

Przyjęto, że nowy numer portu to 78
sudo cp /etc/apache2/ports.conf /etc/apache2/ports.conf_backup
gksudo gedit /etc/apache2/ports.conf
  • Znajdź poniższą linię
Listen 80
  • Zastąp ją następującym wpisem
Listen 78
  • Zapisz tak przygotowany plik
sudo invoke-rc.d apache2 restart

Jak przetwarzać kanał RSS za pomocą PHP i serwera Apache?

Przyjęto że kanałem RSS jest kanał serwisu DistroWatch.com - News
wget -c http://easylinux.info/uploads/magpierss-0.71.1.tar.gz
sudo mkdir /var/www/feeds
sudo tar zxvf magpierss-0.71.1.tar.gz -C /var/www/feeds/
sudo mv /var/www/feeds/magpierss-0.71.1/* /var/www/feeds/
sudo rm -fr /var/www/feeds/magpierss-0.71.1/
sudo chown -R www-data:root /var/www/feeds/
gksudo gedit /var/www/feeds/index.php
  • Wstaw poniższe linie do nowego pliku
 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
 
 <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
 
 <head>
 
 <title>DistroWatch.com - News</title>
 
 <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"/>
 
 <style type="text/css">
 /*<![CDATA[*/
 /* 
 DEFAULT TAG STYLES
 */
 
 body {
  background: #ffffff;
  margin-left: 20px;
  font-family: bitstream vera sans,sans-serif;
  font-size: 9pt;
 }
 
 h1 {
  font-family: luxi sans,sans-serif;
  font-size: 15pt;
 }
 
 /*]]>*/
 </style>
 
 </head>
  
 <body>
 
 <?php

 require_once 'rss_fetch.inc';
 error_reporting(E_ERROR);
 
 $url = 'http://distrowatch.com/news/dw.xml';
 $rss = fetch_rss($url);
 
 if ($rss) {
 
  echo "<h1>";
  echo "<a href=$url>", $rss->channel[title], "</a><br/>";
  echo "</h1>";
 
  foreach ($rss->items as $item ) {
   $url = $item[link];
   $title = $item[title];
   $description = $item[description];
   echo "<li>";
   echo "<b>Temat:</b> <a href=$url><b><u>$title</u></b></a><br/><br/>";
   echo "$description<br/><br/>";
   echo "</li>";
  }
 
 }
 else {
  echo "<a href=$url>", $url, "</a> - serwer nie odpowiada!<br/>";
 }
 
 ?>
 
 </body>
 
 </html>
 


Serwer FTP

Jak zainstalować serwer FTP?

sudo apt-get install proftpd

Jak określić prawa użytkownika, by mógł się on poruszać jedynie po swoim katalogu domowym?

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Znajdź tę sekcję
...
DenyFilter           \*.*/
...
  • Dodaj poniższą linię na jej końcu
DefaultRoot           ~

  • Zapisz tak przygotowany plik
sudo invoke-rc.d proftpd restart

Jak skonfigurować serwer FTP tak, aby użytkonicy anonimowi mieli jedynie prawo do odczytu?

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Dodaj następujący fragment na końcu pliku
<Anonymous ~ftp>
 User            ftp
 Group            nogroup
 UserAlias          anonymous ftp
 DirFakeUser on ftp
 DirFakeGroup on ftp
 RequireValidShell      off
 MaxClients         10
 DisplayLogin        welcome.msg
 DisplayFirstChdir      .message
 <Directory *>
  <Limit WRITE>
   DenyAll
  </Limit>
 </Directory>
</Anonymous>
  • Zapisz tak przygotowany plik
sudo invoke-rc.d proftpd restart

Jak skonfigurować serwer FTP tak, aby użytkownicy anonimowi mieli prawo do odczytu i zapisu?

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Dodaj następujący fragment na końcu pliku
<Anonymous ~ftp>
 User            ftp
 Group            nogroup
 UserAlias          anonymous ftp
 DirFakeUser on ftp
 DirFakeGroup on ftp
 RequireValidShell      off
 MaxClients         10
 DisplayLogin        welcome.msg
 DisplayFirstChdir      .message
</Anonymous>
  • Zapisz tak przygotowany plik
sudo invoke-rc.d proftpd restart

Jak zamapować użytkownika anonimowego do katalogu spoza /home/ftp/?

sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Dodaj następujący fragment na końcu pliku
<Anonymous /location_of_folder/>
 User            ftp
 Group            nogroup
 UserAlias          anonymous ftp
 DirFakeUser on ftp
 DirFakeGroup on ftp
 RequireValidShell      off
 MaxClients         10
 DisplayLogin        welcome.msg
 DisplayFirstChdir      .message
 <Directory *>
  <Limit WRITE>
   DenyAll
  </Limit>
 </Directory>
</Anonymous>
  • Zapisz tak przygotowany plik
sudo invoke-rc.d proftpd restart

Jak zmienić domyślny numer portu dla serwera FTP?

Przyjęto że nowym numerem portu jest 77
sudo cp /etc/proftpd/proftpd.conf /etc/proftpd/proftpd.conf_backup
gksudo gedit /etc/proftpd/proftpd.conf
  • Znajdź tę linię
Port              21
  • Zastąp ją następującym wpisem
Port              77
  • Zapisz tak przygotowany plik
sudo invoke-rc.d proftpd restart

Jak połączyć się z serwerem FTP za pomocą komputera z systemem Windows?

Przyjęto że komputer zdalny posiada zainstalowaną usługę FTP
Przeczytaj #Jak zainstalować serwer FTP?
  • Pobierz FileZilla: Tutaj

Prywatne repozytorium APT

Ustaw repozytorium

  • Zainstaluj paczki narzędziowe
sudo apt-get install dpkg-dev
  • Stwórz repozytorium w systemie plików
mkdir /somewhere/apt
mkdir /somewhere/apt/archives
mkdir /somewhere/apt/archives/binary
  • Stwórz listę paczek w repozytorium
cd /somewhere/apt/archives
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz
  • Publikuj repozytorium przez Apache
cd /var/www
sudo ln -s /somewhere/apt/archives apt
  • Dodaj repo do źródeł w /etc/apt/sources.list

Otwórz /etc/apt/sources.list

sudo gedit /etc/apt/sources.list

Dodaj poniższą linię na końcu pliku:

# My Repos
deb http://localhost/apt binary/
  • Odśwież bazę danych APT
sudo apt-get update

Odświeżanie repozytorium

Skopiuj lub pobierz pliki ".deb" do /somewhere/apt/archives/binary/ i wtedy odswież listę paczek:

cd /somewhere/apt/archives
dpkg-scanpackages binary /dev/null | gzip -9c > binary/Packages.gz

Serwer mediów strumieniowych

Jak zainstalować serwer mediów strumieniowych GNUMP3d?

Przyjęto, że katalog /var/music/ zawiera pliki multimedialne
sudo apt-get install gnump3d

Jak zmienić domyślny folder zawierający pliki multimedialne dla GNUMP3d

Przyjęto, że nowy folder zawierający pliki multimedialne to /home/music/
sudo cp /etc/gnump3d/gnump3d.conf /etc/gnump3d/gnump3d.conf_backup
gksudo gedit /etc/gnump3d/gnump3d.conf
  • Znajdź poniższą linię
root = /var/music
  • Zastąp ją następującym wpisem
root = /home/music
  • Znajdź poniższą linię
user = gnump3d
  • Zastąp ją następującym wpisem
user = root
  • Zapisz tak przygotowany plik
sudo invoke-rc.d gnump3d restart

Jak zmienić domyślny numer portu dla GNUMP3d

Przyjęto, że nowy numer portu to 7878
sudo cp /etc/gnump3d/gnump3d.conf /etc/gnump3d/gnump3d.conf_backup
gksudo gedit /etc/gnump3d/gnump3d.conf
  • Znajdź poniższą linię
port = 8888
  • Zastąp ją następującym wpisem
port = 7878
  • Zapisz tak przygotowany plik
sudo invoke-rc.d gnump3d restart
Personal tools
DONATE