LEMP
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.