Arch Linux'ta LEMP'nin (Nginx, PHP, MariaDB motorlu MySQL ve PhpMyAdmin) kurulumu


Arch Linux, son çağ yazılımlarını benimseyen Rolling Release modeli nedeniyle, bakım, sürekli yükseltmeler ve mantıklı dosya yapılandırmaları için ekstra zaman gerektirdiğinden, güvenilir ağ hizmetleri sağlamak üzere bir sunucu olarak çalışacak şekilde tasarlanmamıştır ve geliştirilmemiştir.

Ancak yine de, Arch Linux minimum düzeyde yazılım önceden yüklenmiş bir CD çekirdek kurulumuyla birlikte geldiğinden, günümüzün popüler ağ hizmetlerinin çoğunu yüklemek için sağlam bir temel başlangıç noktası temsil edebilir; bu b>LEMP veya LAMP, Apache Web Sunucusu, Nginx, PHP, SQL veritabanları, Samba, FTP sunucuları, BIND ve diğerleri; bunların çoğu Arch AUR'dan Linux resmi depoları ve diğerleri.

Bu eğitim, Web Sunucusu Uygulamaları oluşturmak için güçlü bir temel sağlayabilecek SSH'yi uzaktan kullanarak LEMP yığınını (Nginx, PHP, MariaDB motorlu MySQL ve PhpMyAdmin) kurma ve yapılandırma konusunda rehberlik edecektir.

Gereksinimler

Önceki Arch Linux Kurulum kılavuzu, DHCP ile ağ oluşturmaya ilişkin son bölüm hariç.

Adım 1: Ağ Arayüzüne Statik IP Atayın

1. Minimum Arch Linux çekirdek kurulumundan sonra sunucunuzu yeniden başlatın, kök hesapla veya eşdeğer idari sudo hesabıyla oturum açın ve ip bağlantısını< kullanarak sistem NIC'lerinizin cihaz adlarını tanımlayın. komutu.

ip link

2. Statik ağ yapılandırmalarını atamak için ağ bağlantılarını yönetmek üzere Netctl paketini kullanacağız. Ağ Arayüzleri adlarınızı başarıyla belirledikten sonra ethernet-static dosya şablonunu netctl sistem yoluna kopyalayın ve adını açıklayıcı bir adlandırma şemasıyla değiştirin ( Aşağıdaki komutu vererek “statik” dizesini NIC'nin adıyla birlikte kullanmayı deneyin.

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

3. Bir sonraki adım, dosyanın yönergelerini değiştirerek ve aşağıdaki alıntıdaki gibi gerçek ağ ayarlarınızı (Arayüz, IP/Netmask, Ağ Geçidi, Yayın, DNS) sağlayarak bu yeni şablon dosyasını düzenlemektir.

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. Bir sonraki adım, netctl sistem aracı aracılığıyla ağ bağlantınızı başlatmak ve aşağıdaki komutları vererek sistem bağlantınızı doğrulamaktır.

netctl start static.ens33
netctl status static.ens33

5. Etkin bir yeşil çıkış durumu alırsanız Ağ Arayüzünüzü başarıyla yapılandırmışsınız demektir ve sistem genelindeki hizmetlerde bunu otomatik olarak etkinleştirmenin zamanı gelmiştir. Ayrıca, bir alan adına karşı ping komutunu çalıştırarak ağınızı test edin ve ayrıca net-tools paketini yükleyin (bu paketin en bilinen özelliği, Arch'ın kullandığı ifconfig komutudur). geliştiriciler bir nevi kullanımdan kaldırılmış sayıldı ve onu iproute2 ile değiştirdiler.

Sistem genelinde NIC yapılandırmalarını etkinleştirin
netctl enable static.ens33
Net-tools paketini yükleyin
pacman -S net-tools

6. Artık Ağ Arayüzleri ayarlarınızı doğrulamak için ifconfig komutunu çalıştırabilir ve her şeyin doğru şekilde görüntülenip görüntülenmediğini kontrol edebilir, ardından yeniden başlatabilirsiniz b> sisteminizde her şeyin yerinde olduğundan ve doğru şekilde yapılandırıldığından emin olmak için.

ping linux-console.net

Adım 2: LEMP Yazılımını Kurun

Bu makalenin girişinde belirtildiği gibi LEMP, Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB anlamına gelir ve bugün LAMP'ten sonra en yaygın kullanılan web uygulama platformlarından biridir ( Denklemde Apache ile aynı yığın).

7. LEMP yığınını gerçekten kurmadan önce sistemi güncellememiz ve ardından Arch Linux sunucusunun uzaktan kontrolünü sağlamamız gerekiyor. Muhtemelen OpenSSH'nin bu iş için ana aday olduğunu bildiğiniz gibi, devam edin ve kurun, SSH arka plan programını başlatın ve sistem genelinde etkinleştirin.

sudo pacman -Syu
sudo pacman –S openssh

sudo systemctl start sshd
sudo systemctl status sshd
sudo systemctl enable sshd

Artık LEMP kurulumuna devam etme zamanı geldi. Bu eğitimin kapsamlı bir rehber olması amaçlandığından, LEMP yığın kurulumunu adım adım küçük parçalara böleceğim.

8. Önce Nginx Web Sunucusu'nu kurun, ardından başlatın ve aşağıdaki komutları vererek durumunu doğrulayın.

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

9. Kurulacak bir sonraki hizmet MySQL veritabanıdır. MySQL veritabanı sunucusunu kurmak için aşağıdaki komutu verin ve MariaDB motorunu seçin, ardından başlatın ve daemon durumunu doğrulayın.

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

10. Bir sonraki adım, MySQL kök hesabı için bir şifre sağlayarak, anonim kullanıcı hesabını kaldırarak, test veritabanını ve localhost dışından erişilebilen kök hesapları kaldırarak MySQL veritabanları için oldukça güvenli bir ortam sağlamaktır. MySQL güvenliğini geliştirmek için aşağıdaki komutu çalıştırın, geçerli kök hesap parolası için [Enter] tuşuna basın, ardından tüm soruları Evet olarak yanıtlayın (ayrıca kök hesap parolanızı da ayarlayın).

sudo mysql_secure_installation

Not: Hiçbir şekilde MySQL kök hesabını Linux sistem kök hesabıyla karıştırmayın; bunlar iki farklı şeydir; çok farklı değiller ama farklı düzeylerde çalışırlar.

mysql -u root -p komut sözdizimini kullanarak MySQL güvenliğinin veritabanına giriş yaptığını doğrulamak için, root şifrenizi girin ve exit; komutuyla veritabanından çıkın.

mysql -u root -p

11. Artık yalnızca HTML/CSS sunmakla kalmayıp, karmaşık dinamik web uygulamaları geliştirip çalıştırabilmek için PHP sunucu tarafı komut dosyası dilini kurmanın zamanı geldi. b> kodu.

Web sunucusu olarak Nginx kullandığımızdan, Hızlı Ortak Ağ Geçidi üzerinden iletişim kurmak ve oluşturulan dinamik içeriği değiştirmek için PHP-FPM destekli modülü kurmamız gerekiyor PHP betikleri tarafından.

PHP-FPM hizmetini kurmak için aşağıdaki komut satırını çalıştırın, ardından arka plan programını başlatın ve durumu doğrulayın.

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

Mevcut tüm PHP modüllerini listelemek için aşağıdaki komutları verin.

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

12. Son adımlardan biri MySQL veritabanı için PhpMyAdmin Web Arayüzünü kurmaktır. PhpMyAdmin'i PHP'nin gerekli modülüyle birlikte kurmak için aşağıdaki komutu verin ve ardından PhpMyaAdmin sistem yolu için Nginx varsayılan kök yoluna sembolik bir bağlantı oluşturun.

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

13. Daha sonra php.ini dosyasını PhpMyAdmin uygulamasının ihtiyaç duyduğu gerekli uzantıları içerecek şekilde yapılandırın.

sudo nano /etc/php/php.ini

[CTRL+W] tuşlarını kullanarak aşağıdaki satırların açıklamasını kaldırın (satır başındaki ; işaretini kaldırın).

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

Aynı dosyada, aşağıdaki dahil edilen dizinlere benzeyecek şekilde open_ Basedir yönergesini bulun ve düzenleyin.

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

14. Bir sonraki adım, localhost Nginx yönergesinde PHP-FPM FastCGI'yi etkinleştirmektir. nginx.conf web sunucusu dosya yapılandırmasını yedeklemek için sonraki komutu verin ve ardından onu aşağıdaki içerikle değiştirin.

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

Aşağıdaki içeriğin tamamını nginx.conf'a ekleyin.

#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. Tüm dosya yapılandırmaları yapıldıktan sonra tek yapmanız gereken Nginx ve PHP-FPM hizmetlerini yeniden başlatıp tarayıcınızı şu adrese yönlendirmektir: Yerel düğümden http://localhost/phpmyadmin URL'si veya başka bir bilgisayardan http://arch_IP/phpmyadmin URL'si.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. Her şey amaçlandığı gibi giderse son adım, aşağıdaki komutlarla LEMP'i sistem genelinde etkinleştirmek olacaktır.

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

Tebrikler! LEMP'i Arch Linux'a yüklediniz ve yapılandırdınız ve artık web uygulamalarını başlatmak ve geliştirmek için tam dinamik bir arayüze sahipsiniz.

Arch Linux, topluluk odaklı sürekli sürüm modeli nedeniyle üretim sunucularında çalıştırılmaya en uygun sistem olmasa da, küçük, kritik olmayan üretim ortamları için çok hızlı ve güvenilir bir kaynak olabilir.