Własna chmura – OwnCloud 5 – Debian Wheezy cz.1

Mając stary komputer podpięty do sieci z odpowiednio dużą przestrzenią dyskową możemy mieć nieograniczony dostęp do naszych plików. Instalując oprogramowanie OpenSource:
1) ownCloud
2) LEMP – Linux + nginx  + MySQL + PHP
3) Skonfigurowana karta sieciowa naszego komputer (proces opisywałem kilka razy we wpisach związanych z Debianem)

Zaczynamy.

1) Instalacja LEMP:

apt-get install mysql-server mysql-client

New password for the MySQL „root” user: Hasło roota bazy

Repeat password for the MySQL „root” user: Ponowne wpisanie hasła

apt-get install nginx

/etc/init.d/nginx start

W przeglądarkę wpisujemy IP naszej karty, powinniśmy zobaczyć informację potwierdzającą poprawne działanie serwera www:




Domyślnie pliki ngix dostępne są w tej ścieżce: /usr/share/nginx/www.

Na koniec instalujemy PHP:

apt-get install php5-fpm



2) Konfiguracja ngix:


nano /etc/nginx/nginx.conf


Dodajmy 2 opcje do pliku nginx.conf:

# Liczba działających procesów, ograniczenie pozwala ochronić serwer przed atakami typu DDOS

worker_processes  4;

# Sprawdzenie połączenia między dwoma urządzeniami

keepalive_timeout   2;

Musimy skonfigurować jeszcze wirtualne hosty:

nano /etc/nginx/sites-available/default


Aktywujemy wpisy dotyczące nasłuchu na porcie 80, dla IPv4 jak i v6, wpisujemy rodzaje plików które ma „rozumieć” nasz serwer: php,html,htm oraz takie bez rozszerzenia. 

server {
        listen   80; ## listen for ipv4; this line is default and implied
        listen   [::]:80 default_server ipv6only=on; ## listen for ipv6

        root /usr/share/nginx/www;
        index index.php index.html index.htm;

        # Make site accessible from http://localhost/
        server_name localhost;

        location / {
                # First attempt to serve request as file, then
                # as directory, then fall back to displaying a 404.
                try_files $uri $uri/ /index.html;
                # Uncomment to enable naxsi on this location
                # include /etc/nginx/naxsi.rules
        }

        location /doc/ {
                alias /usr/share/doc/;
                autoindex on;
                allow 127.0.0.1;
                allow ::1;
                deny all;
        }

        # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests
        #location /RequestDenied {
        #       proxy_pass http://127.0.0.1:8080;
        #}

        #error_page 404 /404.html;

        # redirect server error pages to the static page /50x.html
        #
        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
                root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        location ~ .php$ {
                try_files $uri =404;
                fastcgi_split_path_info ^(.+.php)(/.+)$;
                # NOTE: You should have „cgi.fix_pathinfo = 0;” in php.ini

                # With php5-cgi alone:
                #fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;
        }

        # deny access to .htaccess files, if Apache’s document root
        # concurs with nginx’s one
        #
        location ~ /.ht {
                deny all;
        }
}


Po konfiguracji zapisujemy ustawienia oraz restartujemy serwer:

/etc/init.d/nginx reload

Następnie musimy włączyć CGI, tak aby współpracowało z PHP:

nano /etc/php5/fpm/php.ini

; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP’s
; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
; http://php.net/cgi.fix-pathinfo
cgi.fix_pathinfo=0


Musimy przeładować ustawienia PHP:

/etc/init.d/php5-fpm reload

Sprawdzimy czy PHP działa poprawnie, w tym celu utworzyzmy prosty plik .php:

nano /usr/share/nginx/www/info.php

do niego wpisujemy:

 < ? php
 phpinfo(); 
?>

Ponownie uruchamiamy przeglądarkę wpisując adres IP naszej karty, powinniśmy zobaczyć poniższy widok:




3) Integracja MySQL z PHP:

Na początek musimy zainstalować kilka dodatkowych bibliotek dla PHP:

apt-get install php5-mysql php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ming php5-ps php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl

Warto dodać moduł optymalizujący działanie PHP:

apt-get install php-apc 

Na koniec przeładujemy konfiguracje PHP:

/etc/init.d/php5-fpm reload


Skonfigurujemy:

nano /etc/php5/fpm/pool.d/www.conf


;listen = /var/run/php5-fpm.sock
listen = 127.0.0.1:9000


Na koniec ponownie zaktualizujemy ustawienia PHP:

/etc/init.d/php5-fpm reload



Edutyjemy:



nano /etc/nginx/sites-available/default



Dodajemy:


location ~ .php$ {
       try_files $uri =404;
       fastcgi_split_path_info ^(.+.php)(/.+)$;
       # NOTE: You should have „cgi.fix_pathinfo = 0;” in php.ini

                # With php5-cgi alone:
                fastcgi_pass 127.0.0.1:9000;
                # With php5-fpm:
                #fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                include fastcgi_params;

        }



Aktualizujemy ustawienia nginx:

/etc/init.d/nginx reload



4) Opcjonalne dodanie CGI:

apt-get install fcgiwrap


Jeżeli po instalacji usługa nie wystartuje uruchomimy są ręcznie:

/etc/init.d/fcgiwrap

nano /etc/nginx/sites-enabled/www.example.com.vhost


Dodamy do pliku poniższą konfiguracje:

server {

   location /cgi-bin/ {
     # Disable gzip (it makes scripts feel slower since they have to complete
     # before getting gzipped)
     gzip off;
     # Set the root to /usr/lib (inside this location this means that we are
     # giving access to the files under /usr/lib/cgi-bin)
     root  /var/www/www.example.com;
     # Fastcgi socket
     fastcgi_pass  unix:/var/run/fcgiwrap.socket;
     # Fastcgi parameters, include the standard ones
     include /etc/nginx/fastcgi_params;
     # Adjust non standard parameters (SCRIPT_FILENAME)
     fastcgi_param SCRIPT_FILENAME  $document_root$fastcgi_script_name;
   }

}


Robimy reload nginx:

/etc/init.d/nginx reload

Tworzymy katalog na pliki:

mkdir /var/www/www.example.com/cgi-bin


Sprawdzimy czy CGI działa:


nano /var/www/www.example.com/cgi-bin/hello_world.cgi


Dodajemy do niego:

#!/usr/bin/perl -w
     # Tell perl to send a html header.
     # So your browser gets the output
     # rather then (command line
     # on the server.)
print „Content-type: text/htmlnn”;
     # print your basic html tags.
     # and the content of them.
print „Hello World!! n”;

print „

Hello world


n”;

Nadajemy odpowiednie prawa dla naszego pliku:

chmod 755 /var/www/www.example.com/cgi-bin/hello_world.cgi

Po uruchomieniu przeglądarki oraz wpisaniu adresu http://www.example.com/cgi-bin/hello_world.cgi:



W części drugiej zajmiemy się instalacją ownCloud 5.



Dziękuję Ci, za poświęcony czas na przeczytanie tego artykułu. Jeśli był on dla Ciebie przydatny, to gorąco zachęcam Cię do zapisania się na mój newsletter, jeżeli jeszcze Cię tam nie ma. Proszę Cię także o “polubienie” mojego bloga na Facebooku oraz kanału na YouTube – pomoże mi to dotrzeć do nowych odbiorców. Raz w tygodniu (niedziela punkt 17.00) otrzymasz powiadomienia o nowych artykułach / projektach zanim staną się publiczne. Możesz również pozostawić całkowicie anonimowy pomysł na wpis/nagranie.

Link do formularza tutaj: https://beitadmin.pl/pomysly

Pozostaw również komentarz lub napisz do mnie wiadomość odpisuję na każdą, jeżeli Masz jakieś pytania:).

Dodaj komentarz

beitadmin.pl - Droga Administratora IT