웹사이트 검색

Arch Linux에 LEMP(Nginx, PHP, MariaDB 엔진 및 PhpMyAdmin이 포함된 MySQL) 설치


최신 소프트웨어를 수용하는 롤링 릴리스 모델로 인해 Arch Linux는 유지 관리, 지속적인 업그레이드 및 합리적인 파일 구성에 추가 시간이 필요하기 때문에 안정적인 네트워크 서비스를 제공하기 위해 서버로 실행되도록 설계 및 개발되지 않았습니다.

그러나 Arch Linux는 최소한의 소프트웨어가 사전 설치된 CD 코어 설치와 함께 제공되므로 를 포함하여 요즘 인기 있는 대부분의 네트워크 서비스를 설치할 수 있는 견고한 기본 시작 지점이 될 수 있습니다. b>LEMP 또는 LAMP, Apache 웹 서버, Nginx, PHP, SQL 데이터베이스, Samba, FTP 서버, BIND 및 기타, 이들 중 다수는 Arch AUR의 Linux 공식 저장소 및 기타 저장소.

이 튜토리얼에서는 SSH를 사용하여 원격으로 LEMP 스택(Nginx, PHP, MariaDB 엔진 및 PhpMyAdmin이 포함된 MySQL)을 설치하고 구성하는 방법을 안내합니다. 이는 웹 서버 애플리케이션 구축을 위한 강력한 기반을 제공할 수 있습니다.

요구사항

DHCP를 사용한 네트워킹에 대한 마지막 부분을 제외한 이전 Arch Linux 설치 가이드.

1단계: 네트워크 인터페이스에 고정 IP 할당

1. 최소 Arch Linux 코어 설치 후 서버를 재부팅하고 루트 계정 또는 이에 상응하는 관리 sudo 계정으로 로그인하고 ip 링크<를 사용하여 시스템 NIC 장치 이름을 식별합니다. 명령.

ip link

2. 정적 네트워크 구성을 할당하기 위해 Netctl 패키지를 사용하여 네트워크 연결을 관리하겠습니다. 네트워크 인터페이스 이름을 성공적으로 식별한 후 ethernet-static 파일 템플릿을 netctl 시스템 경로에 복사하고 해당 이름을 설명적인 명명 체계( 다음 명령을 실행하여 NIC 이름과 결합된 "정적" 문자열을 사용해 보십시오.

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

3. 다음 단계는 아래 발췌문과 같이 파일 지시문을 변경하고 실제 네트워크 설정(인터페이스, IP/넷마스크, 게이트웨이, 브로드캐스트, DNS)을 제공하여 이 새 템플릿 파일을 편집하는 것입니다.

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. 다음 단계는 netctl 시스템 도구를 통해 네트워크 연결을 시작하고 다음 명령을 실행하여 시스템 연결을 확인하는 것입니다.

netctl start static.ens33
netctl status static.ens33

5. 활성 녹색 종료 상태가 나타나면 네트워크 인터페이스가 성공적으로 구성된 것이며 이제 시스템 전체 서비스에서 자동으로 활성화할 차례입니다. 또한 도메인 이름에 대해 ping 명령을 실행하여 네트워크를 테스트하고 net-tools 패키지도 설치합니다(이 패키지의 가장 잘 알려진 기능은 Arch에서 사용하는 ifconfig 명령입니다). 개발자는 더 이상 사용되지 않는 것으로 간주하여 iproute2로 대체했습니다).

시스템 전체 NIC 구성 활성화
netctl enable static.ens33
net-tools 패키지 설치
pacman -S net-tools

6. 이제 ifconfig 명령을 실행하여 네트워크 인터페이스 설정을 확인하고 모든 것이 올바르게 표시되는지 확인한 다음 재부팅할 수 있습니다. b> 시스템에 모든 것이 제대로 구성되어 있는지 확인하세요.

ping linux-console.net

2단계: LEMP 소프트웨어 설치

이 기사 소개에서 지적한 바와 같이 LEMP는 Linux+Nginx+PHP/PhpMyAdmin+MySQL/MariaDB를 의미하며 이는 LAMP 다음으로 오늘날 가장 널리 확산된 웹 애플리케이션 플랫폼 중 하나입니다( 방정식에서 Apache와 동일한 스택).

7. 실제로 LEMP 스택을 설치하기 전에 시스템을 업데이트한 다음 Arch Linux 서버에 대한 원격 제어 권한을 얻어야 합니다. 아시다시피 OpenSSH가 이 작업의 주요 후보이므로 설치하고 SSH 데몬을 시작하여 시스템 전체에서 활성화하세요.

sudo pacman -Syu
sudo pacman –S openssh

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

이제 LEMP 설치를 진행할 차례입니다. 이 튜토리얼은 포괄적인 가이드를 제공하기 위해 LEMP 스택 설치를 작은 부분으로 나누어 단계별로 설명하겠습니다.

8. 먼저 Nginx 웹 서버를 설치한 후 시작하고 다음 명령을 실행하여 상태를 확인하세요.

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

9. 다음으로 설치할 서비스는 MySQL 데이터베이스입니다. 다음 명령을 실행하여 MySQL 데이터베이스 서버를 설치하고 MariaDB 엔진을 선택한 다음 데몬 상태를 시작하고 확인하세요.

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

10. 다음 단계는 MySQL 루트 계정에 대한 비밀번호 제공, 익명 사용자 계정 제거, 로컬 호스트 외부에서 액세스할 수 있는 테스트 데이터베이스 및 루트 계정 제거를 통해 MySQL 데이터베이스에 매우 안전한 환경을 제공하는 것입니다. MySQL 보안을 강화하려면 다음 명령을 실행하고 현재 루트 계정 비밀번호에 대해 [Enter]를 누른 다음 모든 질문에 로 대답하세요(루트 계정 비밀번호도 설정하세요).

sudo mysql_secure_installation

참고: 어떤 경우에도 MySQL 루트 계정과 Linux 시스템 루트 계정을 혼동하지 마십시오. 두 계정은 서로 다릅니다. 크게 다르지는 않지만 서로 다른 수준에서 실행됩니다.

mysql -u root -p 명령 구문을 사용하여 데이터베이스에 대한 MySQL 보안 로그인을 확인하려면 루트 비밀번호를 제공한 다음 exit; 명령을 사용하여 데이터베이스를 종료하세요.

mysql -u root -p

11. 이제 HTML/CSS를 제공하는 것뿐만 아니라 복잡한 동적 웹 애플리케이션을 개발하고 실행할 수 있도록 PHP 서버측 스크립트 언어를 설치할 차례입니다. b> 코드.

Nginx를 웹 서버로 사용하고 있기 때문에 Fast Common Gateway를 통해 통신하고 생성된 동적 콘텐츠를 변경하려면 PHP-FPM 지원 모듈을 설치해야 합니다. PHP 스크립트로.

다음 명령줄을 실행하여 PHP-FPM 서비스를 설치한 후 데몬을 시작하고 상태를 확인하세요.

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

사용 가능한 모든 PHP 모듈을 나열하려면 다음 명령을 실행하십시오.

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

12. 마지막 단계 중 하나는 MySQL 데이터베이스용 PhpMyAdmin 웹 인터페이스를 설치하는 것입니다. 다음 명령을 실행하여 PHP가 필요한 모듈과 함께 PhpMyAdmin을 설치한 다음 Nginx 기본 루트 경로에 대한 PhpMyaAdmin 시스템 경로에 대한 심볼릭 링크를 만듭니다.

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

13. 그런 다음 PhpMyAdmin 애플리케이션에 필요한 확장 기능을 포함하도록 php.ini 파일을 구성합니다.

sudo nano /etc/php/php.ini

[CTRL+W] 키를 사용하여 다음 줄을 찾아 주석 처리를 해제합니다(줄 시작 부분에서 ; 제거).

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

동일한 파일에서 다음 포함된 디렉터리와 유사하도록 open_basedir 지시문을 찾아 편집하세요.

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

14. 다음 단계는 localhost Nginx 지시문에서 PHP-FPM FastCGI를 활성화하는 것입니다. 다음 명령을 실행하여 nginx.conf 웹 서버 파일 구성을 백업한 후 다음 내용으로 바꿉니다.

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

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. 모든 파일 구성이 완료된 후 NginxPHP-FPM 서비스를 다시 시작하고 브라우저에 다음을 지정하기만 하면 됩니다. 로컬 노드의 http://localhost/phpmyadmin URL 또는 http://arch_IP/phpmyadmin이 다른 컴퓨터를 형성합니다.

sudo systemctl restart php-fpm
sudo systemctl restart nginx

16. 모든 것이 의도한 대로 실행되면 마지막 단계는 다음 명령을 사용하여 시스템 전체에서 LEMP를 활성화하는 것입니다.

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

축하합니다! Arch LinuxLEMP를 설치하고 구성했으며 이제 웹 애플리케이션을 시작하고 개발할 수 있는 완전한 동적 인터페이스를 갖게 되었습니다.

Arch Linux는 커뮤니티 중심의 롤링 릴리스 모델로 인해 프로덕션 서버에서 실행하기에 가장 적합한 시스템은 아니지만 소규모의 중요하지 않은 프로덕션 환경에서는 매우 빠르고 안정적인 소스가 될 수 있습니다.