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
# on the server.)
print „Content-type: text/htmlnn”;
# print your basic html tags.
# and the content of them.
print „
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:).