Fifi LEMP (Nginx, PHP, MySQL pẹlu ẹrọ MariaDB ati PhpMyAdmin) sori Arch Linux


Nitori awoṣe Tu sẹsẹ ti o gba sọfitiwia ọjọ ori Arch Linux ko ṣe apẹrẹ ati idagbasoke lati ṣiṣẹ bi olupin lati pese awọn iṣẹ nẹtiwọọki ti o gbẹkẹle nitori pe o nilo akoko afikun fun itọju, awọn igbesoke igbagbogbo ati awọn atunto faili ti o ni oye.

Ṣugbọn, sibẹ, nitori Arch Linux wa pẹlu fifi sori ẹrọ ipilẹ CD pẹlu sọfitiwia ti o ni iṣaaju ti a fi sii tẹlẹ, o le ṣe aṣoju aaye ibẹrẹ to lagbara lati fi sii pupọ julọ awọn iṣẹ nẹtiwọọki olokiki ni awọn ọjọ yii, eyi pẹlu < b> LEMP tabi atupa , Olupin Wẹẹbu afun, Nginx, PHP, awọn apoti isura infomesonu SQL, Samba, awọn olupin FTP, BIND ati awọn miiran, ọpọlọpọ wọn ni a pese lati Arch Awọn ibi ipamọ osise Lainos ati awọn miiran lati AUR .

Itọsọna yii yoo ṣe itọsọna nipasẹ fifi sori ẹrọ ati tunto LEMP akopọ (Nginx, PHP, MySQL pẹlu ẹrọ MariaDB ati PhpMyAdmin) lati latọna jijin lilo SSH, eyiti o le pese ipilẹ to lagbara lati kọ Awọn ohun elo Server Web.

Itọsọna Fifiranṣẹ Linux Arch ti tẹlẹ, ayafi ipin to kẹhin lori nẹtiwọọki pẹlu DHCP.

Igbesẹ 1: Sọtọ IP Aimi lori Ọlọpọọmídíà Nẹtiwọọki

1. Lẹhin ti o kere ju Arch Linux fifi sori ẹrọ atunbere olupin rẹ, buwolu wọle pẹlu akọọlẹ gbongbo tabi iroyin sudo iṣakoso deede, ati idanimọ eto awọn orukọ ẹrọ NICs rẹ nipa lilo ip ọna asopọ pipaṣẹ.

# ip link

2. Lati fi awọn atunto nẹtiwọọki aimi duro a yoo lo package Netctl lati ṣakoso awọn isopọ nẹtiwọọki. Lẹhin ti o ti ṣaṣeyọri aṣeyọri ti awọn orukọ rẹ Awọn atọkun Nẹtiwọọki daakọ ethernet-static awoṣe faili si ọna netctl ki o yi orukọ rẹ pada si ero orukọ sisọ apejuwe kan ( gbiyanju lati lo okun “ aimi ” ni idapo pelu oruko NIC), nipa ipinfunni aṣẹ atẹle.

# cp /etc/netctl/examples/ethenet-static  /etc/netctl/static.ens33

3. Igbese ti n tẹle ni lati satunkọ faili awoṣe tuntun yii nipa yiyipada awọn itọsọna faili ati pipese awọn eto nẹtiwọọki rẹ gangan (Ọlọpọọmídíà, IP/Netmask, Ẹnubode, Broadcast, DNS) bii ninu iyasọtọ ni isalẹ.

# nano  /etc/netctl/static.ens33
Description='A basic static ethernet connection for ens33'
Interface=ens33
Connection=ethernet
IP=static
Address=('192.168.1.33/24')
Gateway='192.168.1.1'
Brodcast='192.168.1.255'
DNS=('192.168.1.1' '8.8.8.8')

4. Igbese ti n tẹle ni lati bẹrẹ asopọ nẹtiwọọki rẹ nipasẹ irinṣẹ netctl ati rii daju sisopọ eto rẹ nipa ipinfunni awọn ofin wọnyi.

# netctl start static.ens33
# netctl status static.ens33

5. Ti o ba gba ipo ijade alawọ ti nṣiṣe lọwọ o ti ni atunto ni ifijišẹ rẹ Ọlọpọọmídíà Nẹtiwọọki ati pe o to akoko lati muu ṣiṣẹ ni aifọwọyi lori awọn iṣẹ jakejado eto. Tun ṣe idanwo nẹtiwọọki rẹ nipasẹ ṣiṣe pipaṣẹ kan ping lodi si orukọ ìkápá kan ati pẹlu, fi sori ẹrọ package apapọ-irinṣẹ awọn oludasilẹ ka si irufẹ ibajẹ ati rọpo rẹ pẹlu iproute2 ).

# netctl enable static.ens33
# pacman -S net-tools

6. Bayi o le ṣiṣe ifconfig pipaṣẹ lati jẹrisi awọn eto rẹ Awọn atọkun Nẹtiwọọki ati ṣayẹwo ti ohun gbogbo ba han ni deede, lẹhinna atunbere eto rẹ lati rii daju ohun gbogbo wa ni ipo ati tunto daradara.

# ping linux-console.net

Igbesẹ 2: Fi Software LEMP sii

Gẹgẹbi a ṣe tọka ninu iṣafihan nkan yii LEMP duro fun Linux + Nginx + PHP/PhpMyAdmin + MySQL/MariaDB eyiti o jẹ ọkan ninu awọn iru ẹrọ ohun elo wẹẹbu ti o tan kaakiri loni lẹhin LAMP (awọn akopọ kanna pẹlu Apache ni idogba).

7. Ṣaaju ki o to fi sori ẹrọ gangan LEMP akopọ a nilo lati ṣe imudojuiwọn eto ati lẹhinna jere iṣakoso latọna jijin si olupin Arch Linux . Bi o ṣe le mọ OpenSSH ni oludije akọkọ fun iṣẹ yii nitorinaa lọ siwaju ki o fi sii, bẹrẹ daemon SSH ki o mu ki eto jakejado wa.

$ sudo pacman -Syu
$ sudo pacman –S openssh
$ sudo systemctl start sshd
$ sudo systemctl status sshd
$ sudo systemctl enable sshd

Bayi o to akoko lati tẹsiwaju pẹlu fifi sori ẹrọ LEMP . Nitori itumọ yii jẹ lati jẹ bi itọsọna okeerẹ Emi yoo pin LEMP fifi sori ẹrọ akopọ sinu awọn ege kekere, ni igbesẹ nipasẹ igbesẹ.

8. Ni akọkọ fi sori ẹrọ Nginx Web Server , lẹhinna bẹrẹ ati ṣayẹwo ipo rẹ nipasẹ ipinfunni awọn ofin wọnyi.

$ sudo pacman -S nginx
$ sudo systemctl start nginx
$ sudo systemctl status nginx

9. Iṣẹ atẹle ti yoo fi sori ẹrọ ni ibi ipamọ data MySQL . Ṣe aṣẹ atẹle ni lati fi sori ẹrọ olupin data MySQL ki o yan ẹrọ MariaDB , lẹhinna bẹrẹ ati ṣayẹwo ipo daemon.

$ sudo pacman -S mysql
$ sudo systemctl start mysqld
$ sudo systemctl status mysqld

10. Igbese ti n tẹle ni lati pese agbegbe ti o ni aabo giga fun awọn apoti isura data MySQL nipa fifun ọrọ igbaniwọle fun akọọlẹ root MySQL, yọ akọọlẹ olumulo alailorukọ kuro, yọ ibi ipamọ idanwo ati awọn iroyin gbongbo ti o wa ni wiwọle lati ita localhost. Ṣiṣe pipaṣẹ wọnyi lati mu ilọsiwaju aabo MySQL wa, tẹ [ Tẹ ] fun ọrọ igbaniwọle iroyin akọọlẹ lọwọlọwọ, lẹhinna dahun Bẹẹni si gbogbo awọn ibeere (tun ṣeto ọrọ igbaniwọle iroyin gbongbo rẹ).

$ sudo mysql_secure_installation

Akiyesi: Ni ọna eyikeyi maṣe dapo akọọlẹ root MySQL pẹlu akọọlẹ root eto Linux - wọn jẹ awọn ohun oriṣiriṣi meji - kii ṣe iyatọ pupọ ṣugbọn wọn nṣiṣẹ lori awọn ipele oriṣiriṣi.

Lati rii daju iwọle iwọle aabo MySQL si ibi ipamọ data nipa lilo mysql -u root -p sintasi aṣẹ, pese ọrọ igbaniwọle rẹ lẹhinna fi aaye data silẹ pẹlu pipaṣẹ jade; .

# mysql -u root -p

11. Nisisiyi o to akoko lati fi sori ẹrọ PHP ede iwe afọwọkọ olupin lati ni anfani lati dagbasoke ati ṣiṣe awọn ohun elo wẹẹbu ti o lagbara, kii kan sin koodu HTML/CSS .

Nitori a nlo Nginx bi olupin wẹẹbu a nilo lati fi sori ẹrọ PHP-FPM modulu ti a ṣe atilẹyin lati ṣe ibaraẹnisọrọ nipasẹ Ẹnubode Wọpọ Ẹya ati yi akoonu ti o ni agbara ṣiṣẹ nipasẹ awọn iwe afọwọkọ PHP.

Ṣe ila ila aṣẹ atẹle lati fi sori ẹrọ iṣẹ PHP-FPM , lẹhinna bẹrẹ daemon ati ṣayẹwo ipo.

$ sudo pacman –S php php-fpm
$ sudo systemctl start php-fpm
$ sudo systemctl status php-fpm

Lati ṣe atokọ gbogbo awọn ti o wa module PHP ṣe awọn ofin wọnyi.

$ sudo pacman –S php[TAB]
$ sudo pacman –Ss | grep php

12. Ọkan ninu awọn igbesẹ ti o kẹhin ni lati fi sori ẹrọ Oju opo wẹẹbu PhpMyAdmin fun ibi ipamọ data MySQL. Ṣe aṣẹ atẹle lati fi sori ẹrọ PhpMyAdmin pẹlu module ti o nilo PHP lẹhinna ṣẹda ọna asopọ aami fun ọna eto PhpMyaAdmin si ọna root aiyipada Nginx.

$ pacman -S phpmyadmin php-mcrypt
$ sudo ln -s /usr/share/webapps/phpMyAdmin   /usr/share/nginx/html

13. Lẹhinna tunto php.ini faili lati ṣafikun awọn amugbooro pataki ti o nilo nipasẹ ohun elo PhpMyAdmin.

$ sudo nano /etc/php/php.ini

Wa pẹlu awọn bọtini [ CTRL + W ] ati airotẹlẹ (yọ ; ni ila ti o bẹrẹ) awọn ila wọnyi.

extension=mysqli.so
extension=mysql.so
extension=mcrypt.so
mysqli.allow_local_infile = On

Lori faili kanna wa ati satunkọ open_basedir itọsọna lati jọ pẹlu awọn ilana atẹle ti o wa pẹlu.

open_basedir= /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/

14. Igbese ti n tẹle ni lati jẹki PHP-FPM FastCGI lori ilana Nginx localhost. Commanda aṣẹ ti o tẹle si afẹyinti nginx.conf iṣeto faili faili wẹẹbu lẹhinna rọpo rẹ pẹlu akoonu atẹle.

$ sudo mv /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak
$ sudo nano /etc/nginx/nginx.conf

Ṣafikun gbogbo akoonu atẹle lori nginx.conf.

#user html;
worker_processes  2;

#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;

#pid        logs/nginx.pid;

events {
    worker_connections  1024;
}

http {
    include       mime.types;
    default_type  application/octet-stream;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    gzip  on;

    server {
        listen       80;
        server_name  localhost;
            root   /usr/share/nginx/html;
        charset koi8-r;
        location / {
        index  index.php index.html index.htm;
                                autoindex on;
                                autoindex_exact_size off;
                                autoindex_localtime on;
        }

                                location /phpmyadmin {
        rewrite ^/* /phpMyAdmin last;
    }

 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/html;
        }

    location ~ \.php$ {
        #fastcgi_pass 127.0.0.1:9000; (depending on your php-fpm socket configuration)
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }

        location ~ /\.ht {
            deny  all;
        }
    }         
}

15. Lẹhin ti o ti ṣe gbogbo awọn atunto faili, gbogbo ohun ti o nilo lati ṣe ni lati tun bẹrẹ iṣẹ Nginx ati PHP-FPM ki o tọka aṣawakiri rẹ si http:// localhost/phpmyadmin URL lati oju ipade agbegbe tabi http:// arch_IP/phpmyadmin ṣe agbekalẹ kọnputa miiran.

$ sudo systemctl restart php-fpm
$ sudo systemctl restart nginx

16. Ti ohun gbogbo ba n ṣiṣẹ bi a ti pinnu ni igbesẹ ikẹhin ni lati jẹki eto LEMP jakejado pẹlu awọn ofin wọnyi.

$ sudo systemctl enable php-fpm
$ sudo systemctl enable nginx
$ sudo systemctl enable mysqld

Oriire! O ti fi sori ẹrọ ati tunto LEMP lori Arch Linux ati, ni bayi, o ni iwoye ti o ni agbara kikun lati bẹrẹ ati dagbasoke awọn ohun elo wẹẹbu.

Botilẹjẹpe Arch Linux kii ṣe eto ti o dara julọ ti o dara julọ lati ṣiṣẹ lori awọn olupin iṣelọpọ nitori awoṣe idasilẹ yiyi ti iṣalaye agbegbe rẹ o le jẹ iyara pupọ ati igbẹkẹle fun awọn agbegbe iṣelọpọ aiṣe pataki.