Gentoo Linux-da LEMP (Linux, Nginx, MySQL/MariaDB, PHP/PHP-FPM we PhpMyAdmin) gurmak
Gentoo, çeşmeleriň ugrundan gurulmagy we programma üpjünçiligini dolandyrmak programmasy - Portage tarapyndan üpjün edilmegi sebäpli iň çalt Linux paýlanyşynyň biridir - örän çalt hereket edýän we işleýän doly web dörediji platforma gurmak üçin zerur gurallar we, şeýle hem, özleşdirmegiň ýokary derejesine eýe.
Bu mowzuk, LEMP (Linux Nginx, MySQL/MariaDB, PHP-FPM/PhpMyadmin) bilen doly Web gurşaw platformasyny gurmak üçin ädimme-ädim gurlar we Toplama paket dolandyryşy tarapyndan üpjün edilen baýdaklary ulanyň , düzmek prosesinde bir topar paket funksiýasyny hödürleýär - web platformasy üçin zerur modullar ýa-da sazlamalar, serwer konfigurasiýalaryny ýokary derejede üýtgeder.
- Internete seredýän serwer üçin gatylaşdyrylan profil bilen Gentoo gurnama - Gentoo gurmak boýunça gollanma.
- Tor statiki IP adresi bilen düzüldi.
1-nji ädim: Nginx web serwerini guruň
1. Nginx gurnamaga başlamazdan ozal, NIC-iňiziň Statik IP adresi bilen sazlanandygyna göz ýetiriň we Portage çeşmeleriniň we ulgamyňyzyň täzelenendigine göz ýetiriň.
$ sudo su - # emerge --sync # emerge --update --deep --with-bdeps=y @world
2. Täzelenme prosesi gutarandan soň, make.conf faýlyna Nginx USE baýdaklaryny gaýtalap, islenýän sazlamalary we modullary saýlap, Nginx gurnamasyny dowam etdiriň. Ilki bilen aşakdaky buýrugy işledip Nginx deslapky gurnama modullaryny sanaň.
# emerge -pv nginx
Jikme-jik modul maglumatlary üçin (paketler üçin baýdaklary ulanyň) deňleme buýrugyny ulanyň.
# equery uses nginx
Soňra Nginx-i aşakdaky buýruk bilen guruň.
# emerge --ask nginx
Dymmaklyklardan başga-da goşmaça modullar (WebDAV, fancyindex, GeoIP we ş.m.) gerek bolsa, Nginx-iň düzjekleri, hemmesini NGINX_MODULES_HTTP
# echo 'NGINX_MODULES_HTTP="dav auth_pam fancyindex geoip fastcgi uwsgi gzip rewrite"' >> /etc/portage/make.conf # emerge --ask nginx
3. Portage täze dörän Nginx gutarandan soň, http daemony başlaň we brauzeriňizi http:// localhost ugrukdyryp barlaň.
2-nji ädim: PHP guruň
4. Nginx serweri bilen PHP dinamiki web programmirleme dilini ulanmak üçin, fpm we beýleki möhüm PHP goşmak bilen PHP-FastCGI Prosess Manager ( FPM ) guruň. Portage USE baýdaklaryndaky giňeltmeler we Apache giňeltmesini aýyrýandygyňyza göz ýetiriň.
# emerge -pv php
# equery uses php
# echo " dev-lang/php fpm cgi curl gd imap mysql mysqli pdo zip json xcache apc zlib zip truetype -apache2 " >> /etc/portage/package.use # emerge --ask php
5. PHP-FPM başlamazdan ozal hyzmat konfigurasiýa faýlynda käbir üýtgeşmeler ulanylmaly. php-fpm konfigurasiýa faýly açyň we aşakdaky üýtgeşmeleri giriziň.
# nano /etc/php/fpm-php5.5/php-fpm.conf
Şuňa meňzeş aşakdaky görkezmeleri tapyň we ulanmaň.
error_log = /var/log/php-fpm.log listen = 127.0.0.1:9000 ## Here you can use any HTTP socket (IP-PORT combination ) you want ## pm.start_servers = 20
6. PHP-FPM konfigurasiýa faýly redaktirlenenden soň, PHP-FPM gündelik faýl rugsatlaryny üýtgediň we hyzmaty başlaň.
# chmod 755 /var/log/php-fpm.log # /etc/init.d/php-fpm start
PHP-FPM hyzmaty başlasa-da, Nginx PHP şlýuzasy bilen aragatnaşyk gurup bilmeýär, şonuň üçin Nginx konfigurasiýa faýllarynda käbir üýtgeşmeler edilmeli.
3-nji ädim: Nginx konfigurasiýalaryny redaktirläň
7. Nginx deslapky şablon konfigurasiýa faýly diňe ýerlihost üçin esasy HTTP rozetkasyny üpjün edýär. Bu häsiýeti üýtgetmek we Wirtual Hostlary işletmek üçin /etc/nginx/ ýolunda ýerleşýän nginx.conf faýly açyň we aşakdaky konfigurasiýalary düzüň.
# nano /etc/nginx/nginx.conf
Localerlihost-a gabat gelýän we 127.0.0.1 IP adresini diňleýän ilkinji serwer blokuny tapyň we ähli sözlerini aşakdaky skrinshotdaky ýaly öwüň.
Faýly entek ýapmaň we iň aşaky tarapa geçmäň we iň soňky egrilen ýaýlary ýapmazdan ozal aşakdaky jümläni goşuň \}\.
Include /etc/nginx/sites-enabled/*.conf;
8. Ondan soň saýtlar bilen işleýän we saýtlar elýeterli dörediň (ulanylmaýan wirtual hostlar üçin) Nginx kataloglaryny we HTTP we HTTPS protokollarynda ýerlihost üçin konfigurasiýa faýllaryny dörediň.
# mkdir /etc/nginx/sites-available # mkdir /etc/nginx/sites-enabled
“Localhost” üçin aşakdaky faýl konfigurasiýasyny dörediň.
# nano /etc/nginx/sites-available/localhost.conf
Aşakdaky faýl mazmunyny goşuň.
server { listen 80; server_name localhost; access_log /var/log/nginx/localhost_access_log main; error_log /var/log/nginx/localhost_error_log info; root /var/www/localhost/htdocs; location / { index index.html index.htm index.php; autoindex on; autoindex_exact_size off; autoindex_localtime on; } location ~ \.php$ { # Test for non-existent scripts or throw a 404 error # Without this line, nginx will blindly send any request ending in .php to php-fpm try_files $uri =404; include /etc/nginx/fastcgi.conf; fastcgi_pass 127.0.0.1:9000; ## Make sure the socket corresponds with PHP-FPM conf file } }
SSL bilen ýerlihost üçin aşakdaky konfigurasiýa faýly dörediň.
# nano /etc/nginx/sites-available/localhost-ssl.conf
Aşakdaky faýl mazmunyny goşuň.
server { listen 443 ssl; server_name localhost; ssl on; ssl_certificate /etc/ssl/nginx/nginx.pem; ssl_certificate_key /etc/ssl/nginx/nginx.key; access_log /var/log/nginx/localhost.ssl_access_log main; error_log /var/log/nginx/localhost.ssl_error_log info; root /var/www/localhost/htdocs; location / { index index.html index.htm index.php; autoindex on; autoindex_exact_size off; autoindex_localtime on; } location ~ \.php$ { # Test for non-existent scripts or throw a 404 error # Without this line, nginx will blindly send any request ending in .php to php-fpm try_files $uri =404; include /etc/nginx/fastcgi.conf; fastcgi_pass 127.0.0.1:9000; } }
9. Indi Nginx Wirtual Hostlary işjeňleşdirmek ýa-da öçürmek üçin buýruk hökmünde işleýän ulgam ýerine ýetirip boljak ýolda (PATH gabyk üýtgeýjisi) iki skript döretmegiň wagty geldi.
n2ensite atly ilkinji Baş skriptini dörediň, bu wirtual Hostlar konfigurasiýa faýllaryny saýtlar elýeterli dan saýtlar bilen işleýän .
# nano /usr/local/bin/n2eniste
Aşakdaky faýl mazmunyny goşuň.
#!/bin/bash if test -d /etc/nginx/sites-available && test -d /etc/nginx/sites-enabled ; then echo "-----------------------------------------------" else mkdir /etc/nginx/sites-available mkdir /etc/nginx/sites-enabled fi avail=/etc/nginx/sites-available/$1.conf enabled=/etc/nginx/sites-enabled/ site=`ls /etc/nginx/sites-available/` if [ "$#" != "1" ]; then echo "Use script: n2ensite virtual_site" echo -e "\nAvailable virtual hosts:\n$site" exit 0 else if test -e $avail; then sudo ln -s $avail $enabled else echo -e "$avail virtual host does not exist! Please create one!\n$site" exit 0 fi if test -e $enabled/$1.conf; then echo "Success!! Now restart nginx server: sudo /etc/init.d/ nginx restart" else echo -e "Virtual host $avail does not exist!\nPlease see available virtual hosts:\n$site" exit 0 fi fi
10. Soňra n2dissite atly ikinji skript dörediň, bu aşakdaky mazmun bilen saýtlar bilen işleýän Nginx ýolundan görkezilen işjeň Wirtual Hostlary ýok eder.
# nano /usr/local/bin/n2dissite
Aşakdaky mazmuny goşuň.
#!/bin/bash avail=/etc/nginx/sites-enabled/$1.conf enabled=/etc/nginx/sites-enabled site=`ls /etc/nginx/sites-available/` if [ "$#" != "1" ]; then echo "Use script: n2dissite virtual_site" echo -e "\nAvailable virtual hosts: \n$site" exit 0 else if test -e $avail; then sudo rm $avail else echo -e "$avail virtual host does not exist! Exiting!" exit 0 fi if test -e $enabled/$1.conf; then echo "Error!! Could not remove $avail virtual host!" else echo -e "Success! $avail has been removed!\nPlease restart Nginx: sudo /etc/init.d/nginx restart" exit 0 fi fi
11. Baş skriptleri redaktirläniňizden soň, ýerine ýetiriş rugsatlaryny goşuň we ýerlihost Wirtual Hostlary işjeňleşdiriň - .conf giňeltmesiz Wirtual Host konfigurasiýa faýlyň adyny ulanyň, soňra üýtgeşmeler girizmek üçin Nginx we PHP-FPM hyzmatlaryny täzeden açyň.
# chmod +x /usr/local/bin/n2dissite # chmod +x /usr/local/bin/n2ensite # n2ensite localhost # n2ensite localhost-ssl # service nginx restart # service php-fpm restart
12. Konfigurasiýalary barlamak üçin web faýllary (/var/www/localhost/htdocs ) üçin ýerlihost başlangyç kök ýolunda PHP maglumat faýly dörediň we brauzeriňizi https:/localhost/info .php ýa-da http://localhost/info.php .
echo "<?php phpinfo(); ?>" /var/www/localhost/htdocs/info.php
“Localhost Wirtual Hosts” konfigurasiýa faýllaryny şablon we Nginx n2enmod we n2dismod ulanyp, indi islän web sahypaňyzy aňsatlyk bilen goşup bilersiňiz, emma internet üçin DNS görkezijileriniň bardygyna göz ýetiriň - web serweri bilen baglanyşyk ýa-da ulgam host faýlynda ýerli ýazgylary ulanyň.
4-nji ädim: MySQL/MariaDB + PhpMyAdmin guruň
MySQL üçin MySQL maglumat bazasyny we PhpMyAdmin web interfeýsini gurmak üçin, Gentoo-da LAMP gurmakda görkezilen prosedurany ulanyň.
13. Munuň öwezine MySQL-iň ýerine çalyşýan MariaDB-ni ulanmak isleseňiz, baýdaklary ulanyň almak we gurmak üçin aşakdaky buýruklary ulanyň.
# emerge -pv mariadb # emerge --ask mariadb
MySQL bilen paket gapma-garşylygy ýüze çykan halatynda Portage package.accept.keywords -a aşakdaky setirleri goşuň.
# echo “=dev-db/mariadb-5.5.37-r1 ~amd64” >> /etc/portage/package.accept.keywords # echo “=virtual/mysql-5.5 ~amd64” >> /etc/portage/package.accept.keywords # emerge --ask mariadb
14.
# service mysql start # mysql_secure_installation
15. Onuň işleýşini barlamak we çykyş buýrugy bilen goýmak üçin mysql -u root -p buýrugyny ulanyp, MySQL maglumat bazasyna giriň.
# mysql -u root -p MariaDB > show databases; MariaDB > exit;
16. MySQL buýruk setiri bilen gaty gowy däl bolsaňyz. Aşakdaky buýruklary ýerine ýetirip, PhpMyAdmin Web frontendini guruň.
# emerge -pv dev-db/phpmyadmin # echo “dev-db/phpmyadmin setup vhosts” >> /etc/portage/package.use # emerge --ask dev-db/phpmyadmin
17. PhpMyAdmin gurnamagy tamamlandan soň, nusga konfigurasiýa faýly esasynda konfigurasiýa faýly dörediň, tötänleýin setir bilen blowfish_secret parol sözüni üýtgediň, soňra /usr/share/webapps/phpmyadmin/-den simwoliki baglanyşyk dörediň. phpmyadmin_version_number/htdocs/ PhpMyAdmin web interfeýsine girmek isleýän wirtual hostlaryň resminama kök ýoluna.
# cd /usr/share/webapps/phpmyadmin/4.2.2/htdocs/ # cp config.sample.inc.php config.inc.php # nano config.inc.php
# ln -s /usr/share/webapps/phpmyadmin/4.2.2/htdocs/ /var/www/localhost/htdocs/phpmyadmin
18. PhpMyAdmin web interfeýsi arkaly MySQL maglumat bazasyna girmek üçin brauzer açyň we aşakdaky URL adresini ulanyň https:/localhost/phpmyadmin .
19. Iň soňky ädim, bütin ulgam boýunça hyzmatlary işjeňleşdirmek, gaýtadan açylandan soň awtomatiki başlamak.
# rc-update add nginx default # rc-update add php-fpm default # rc-update add mysql default
Indi web hosting üçin iň az gurşaw gurnaýarys, diňe HTML, JavaScript we PHP dinamiki döredilen sahypalary ulanýan bolsaňyz we SSL web sahypalary gerek däl bolsa, ýokardaky konfigurasiýa siziň üçin kanagatlanarly bolmaly.