LEMP: Difference between revisions

From ICO wiki
Jump to navigationJump to search
Plillele (talk | contribs)
No edit summary
Plillele (talk | contribs)
No edit summary
 
(36 intermediate revisions by the same user not shown)
Line 1: Line 1:
== Linux, nginx (Engine x), MySQL, PHP (LEMP) komplekti paigaltamine Ubuntu 12.04 serverisse ==
= Linux, nginx (Engine x), MySQL, PHP (LEMP) komplekti paigaldamine Ubuntu 12.04 serverisse =


näites kasutatud server
 
== Autor ==
 
Priit Lilleleht
 
----
== Sissejuhatus ==
Nginx on tasuta ja avatud lähtekoodiga suurejõutlusega HTTP server ja revers proxy, samuti ka IMAP/POP3 proxy server.
 
Igor Sysoev hakkas nginx arendama 2002.aastal ja esimene versioon tuli välja 2004.aastal.
 
Nginx on tuntud oma suure jõudluse, lihtsa seadistamise, madal ressursside tarbimisega ja stabiilsus.
 
Nginx on kirjutatud haldama C10K probleemi(10000 klienti haldamine ühekorraga). Nginx kasutab skaleeritavaid asünkroonnseid arhitektuure. Selline arhitektuur kasutab vähe mälu koormuse all.
 
 
 
 
== VM masinad ==
 
näites kasutasin klientmasinat Ubuntu Desktop 12.04 (64bit) ja serverit Ubuntu-12.04-server-amd64.
 
näites kasutatud server:


RAM 512MB
RAM 512MB


HDD dynamicly allocated 8GB
HDD dynamically allocated 8GB


2 Võrgukaarti
2 Võrgukaarti
Line 15: Line 37:
OS Ubuntu-12.04-server-amd64
OS Ubuntu-12.04-server-amd64


paigaltatud SSH




=== esimene samm ===
----
Selleks, et minna juurkasutajaks üle, kasuta käsklust.
== Esimene samm ==
Selleks, et saada juurkasutajaks kasuta käsklust:


<pre>sudo -i</pre>
<pre>sudo -i</pre>


Uuentame kohalikud tarkvara repositooriumid.
Uuendame kohalikud tarkvara repositooriumid:


<pre>apt-get update</pre>
<pre>apt-get update</pre>




===teine samm paigalda MySQL===
== Paigalda MySQL ==


MySQLi tarkvara paigaldamiseks kasuta Ubuntu serveri all käsklust
MySQLi tarkvara paigaldamiseks kasuta Ubuntu serveri käsklust:


<pre>apt-get install mysql-server php5-mysql</pre>
<pre>apt-get install mysql-server php5-mysql</pre>


MySQL root kasutaja parooli märamine. antud näites: password
MySQL root kasutaja parooli määramine. Antud näites:"password"
 
 
MySQLi aktiveerimine:


MySQLi aktiverimine
<pre>mysql_install_db</pre>
<pre>mysql_install_db</pre>
lõpetuseks käivita skript:
<pre>/usr/bin/mysql_secure_installation</pre>
Küsitakse root kasutaja parooli, sisestage see.
Küsitakse, kas soovite vahetada root kasutaja parooli, vastake "N".
Järgmistele küsimustele vastake "Y". Pärast seda MySQL taaskäivitub ja rakendab muudatused.
<pre>
By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y                                           
... Success!
Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] y
... Success!
By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y
... Success!
Cleaning up...
</pre>
== Nginx paigaldamine ==
Paigaldan nginx:
<pre>apt-get install nginx</pre>
Nginx käivitamine, nginx ei käivitu automaatselt.
<pre>service nginx start</pre>
Kontrollimaks, et nginx töötab, suuna oma brauser serveri IP-aadressile (192.168.56.210).
== PHP paigaldamine ==
php5-fpm paigaldamine
<pre>apt-get install php5-fpm</pre>
=== PHP seadistamine ===
Muudame failis:
<pre>nano /etc/php5/fpm/php.ini</pre>
:rida
:<pre>cgi.fix_pathinfo=1</pre>
:muuta reaks
:<pre>cgi.fix_pathinfo=0</pre>
Kui cgi.fix_pathinfo=1 siis üritab php leida lähimat faili mis sobib päringuga.
See aga on turva risk mita on lihtne eemaltata kui muuda cgi.fix_pathinfo=0,
siis annab php ainult täpseid vasteid päringutele. 
Veel üks muudatus failis:
<pre>nano /etc/php5/fpm/pool.d/www.conf</pre>
:rida
:<pre>listen = 127.0.0.1:9000</pre>
:muuta reaks
:<pre>listen = /var/run/php5-fpm.sock</pre>
== nginx seadistamine ==
Avame vaikimisi virtual host faili
<pre>nano /etc/nginx/sites-available/default</pre>
faile muutetud kuju peab olema järgne.
Uuemad ubuntu versioonid võivad "www" asemel kasutada "html" kausta.
 
<pre>
#[...]
server {
        listen  80;
   
        root /usr/share/nginx/www;
        index index.php index.html index.htm;
        server_name 192.168.56.210;
        location / {
                try_files $uri $uri/ /index.html;
        }
        error_page 404 /404.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 the php-fpm socket
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
               
        }
}
#[...]
</pre>
:Muudatused:
::lisa index.php index rida.
::muuda "server_name"  asendades "local host" kas domeeni nimega või IP-aadresiga (nt. 192.168.56.210).
::muuda vastavad read (location ~ \.php$ {) lõigus.
== Loo PHP infoleht ==
Esmalt loo uus dokument
<pre>nano /usr/share/nginx/www/info.php </pre>
lisa read:
<pre>
<?php
phpinfo();
?>
</pre>
salvesta ja välju.
Taaskäivita nginx:
<pre>service nginx restart</pre>
Aadressilt "http://192.168.56.210/info.php" näed oma nginx ja php seadeid.(192.168.56.210 on serveri ip).
LEMP komplekt on nüüd paigaltatud sinu serverisse.
----
== Kokkuvõte ==
Nginx paigaltamine tundub lihtsam ja kiirem kui seda oli abache.
Samuti on nginx kõrgemajõutlusega ning kasutab vähem mälu.
Koos php ja MySQL on server juba valmis enamuste veebi lehtete jaoks.
----
== Kasutatud allikad ==
# https://www.digitalocean.com/community/articles/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-12-04
# http://wiki.nginx.org/
[[Category:IT infrastruktuuri teenused]]

Latest revision as of 09:55, 26 May 2014

Linux, nginx (Engine x), MySQL, PHP (LEMP) komplekti paigaldamine Ubuntu 12.04 serverisse

Autor

Priit Lilleleht


Sissejuhatus

Nginx on tasuta ja avatud lähtekoodiga suurejõutlusega HTTP server ja revers proxy, samuti ka IMAP/POP3 proxy server.

Igor Sysoev hakkas nginx arendama 2002.aastal ja esimene versioon tuli välja 2004.aastal.

Nginx on tuntud oma suure jõudluse, lihtsa seadistamise, madal ressursside tarbimisega ja stabiilsus.

Nginx on kirjutatud haldama C10K probleemi(10000 klienti haldamine ühekorraga). Nginx kasutab skaleeritavaid asünkroonnseid arhitektuure. Selline arhitektuur kasutab vähe mälu koormuse all.



VM masinad

näites kasutasin klientmasinat Ubuntu Desktop 12.04 (64bit) ja serverit Ubuntu-12.04-server-amd64.

näites kasutatud server:

RAM 512MB

HDD dynamically allocated 8GB

2 Võrgukaarti

NIC1 - NAT (eth0 - Ubuntus)
NIC2 - HostOnly (eth1 – Ubuntus) [192.168.56.210]

OS Ubuntu-12.04-server-amd64

paigaltatud SSH



Esimene samm

Selleks, et saada juurkasutajaks kasuta käsklust:

sudo -i

Uuendame kohalikud tarkvara repositooriumid:

apt-get update


Paigalda MySQL

MySQLi tarkvara paigaldamiseks kasuta Ubuntu serveri käsklust:

apt-get install mysql-server php5-mysql

MySQL root kasutaja parooli määramine. Antud näites:"password"


MySQLi aktiveerimine:

mysql_install_db

lõpetuseks käivita skript:

/usr/bin/mysql_secure_installation

Küsitakse root kasutaja parooli, sisestage see.

Küsitakse, kas soovite vahetada root kasutaja parooli, vastake "N".

Järgmistele küsimustele vastake "Y". Pärast seda MySQL taaskäivitub ja rakendab muudatused.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y                                            
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...


Nginx paigaldamine

Paigaldan nginx:

apt-get install nginx


Nginx käivitamine, nginx ei käivitu automaatselt.

service nginx start

Kontrollimaks, et nginx töötab, suuna oma brauser serveri IP-aadressile (192.168.56.210).


PHP paigaldamine

php5-fpm paigaldamine

apt-get install php5-fpm


PHP seadistamine

Muudame failis:

nano /etc/php5/fpm/php.ini
rida
cgi.fix_pathinfo=1
muuta reaks
cgi.fix_pathinfo=0

Kui cgi.fix_pathinfo=1 siis üritab php leida lähimat faili mis sobib päringuga.

See aga on turva risk mita on lihtne eemaltata kui muuda cgi.fix_pathinfo=0,

siis annab php ainult täpseid vasteid päringutele.


Veel üks muudatus failis:

nano /etc/php5/fpm/pool.d/www.conf
rida
listen = 127.0.0.1:9000
muuta reaks
listen = /var/run/php5-fpm.sock


nginx seadistamine

Avame vaikimisi virtual host faili

nano /etc/nginx/sites-available/default

faile muutetud kuju peab olema järgne.

Uuemad ubuntu versioonid võivad "www" asemel kasutada "html" kausta.

#[...]

server {
        listen   80;
     

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

        server_name 192.168.56.210;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.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 the php-fpm socket
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                
        }

}

#[...]
Muudatused:
lisa index.php index rida.
muuda "server_name" asendades "local host" kas domeeni nimega või IP-aadresiga (nt. 192.168.56.210).
muuda vastavad read (location ~ \.php$ {) lõigus.


Loo PHP infoleht

Esmalt loo uus dokument

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

lisa read:

<?php
phpinfo();
?>

salvesta ja välju.


Taaskäivita nginx:

service nginx restart


Aadressilt "http://192.168.56.210/info.php" näed oma nginx ja php seadeid.(192.168.56.210 on serveri ip).

LEMP komplekt on nüüd paigaltatud sinu serverisse.


Kokkuvõte

Nginx paigaltamine tundub lihtsam ja kiirem kui seda oli abache.

Samuti on nginx kõrgemajõutlusega ning kasutab vähem mälu.

Koos php ja MySQL on server juba valmis enamuste veebi lehtete jaoks.



Kasutatud allikad

  1. https://www.digitalocean.com/community/articles/how-to-install-linux-nginx-mysql-php-lemp-stack-on-ubuntu-12-04
  2. http://wiki.nginx.org/