VDS 서버의 올바른 구성. VDS 서버의 올바른 구성 구성을 위한 초기 데이터




  • 지도 시간

좋은 오후에요.

최근에 VDS 공급자를 자주 변경해야 했고 매번 시스템을 재구성해야 했기 때문에 구성에 대한 간단한 요약을 작성하기로 결정했습니다. 아래 설명된 모든 내용은 Linux Ubuntu 서버 12.04 LTS에서 올바르게 작동합니다. 이 기사에서는 nginx+apache2, eaccelerator, memcached, fure-ftpd, php, mysql, phpmyadmin 및 오픈 게임 패널의 초기 설정을 설치하고 수행하는 방법을 설명합니다.

몇 가지 용어에 대한 간단한 설명부터 시작하겠습니다.

VDS - VPS라고도 함 - 가상 전용(개인) 서버 - 가상 머신, 서버 - 일반 호스팅이 충분하지 않고 전용 서버가 비싼 경우에 필요합니다. 현대 시장에는 VDS 렌탈 서비스를 제공하는 다양한 제공업체가 있으며 각 제공업체에는 고유한 장단점이 있지만 이에 대해서는 논의하지 않겠습니다.
가상화 유형 - 간단히 말해서 가상 머신이 구성되는 방식입니다. 현재 OpenVZ와 XEN이 가장 일반적입니다. OpenVZ의 장점은 저렴한 비용입니다. 이러한 유형의 가상화에서는 특별히 수정된 호스트 시스템 커널이 하드웨어 서버에서 실행되는 모든 가상 머신에 사용되기 때문입니다. 이러한 유형의 가상화의 단점은 OS 커널의 매개변수를 변경할 수 없으며 과잉 판매가 거의 항상 존재한다는 것입니다(나중에 자세히 설명). 그러나 심각한 프로젝트의 경우 XEN 또는 KVM 가상화를 사용하는 것이 더 좋습니다. 게스트 OS는 가상 머신에 설치되어 있다는 사실조차 알지 못하며 특히 XEN-HWM에서 OS로 원하는 거의 모든 작업을 수행할 수 있습니다. 그리고 KVM.
과잉 판매 - 공급자는 실제 보유하고 있는 것보다 더 많은 리소스를 판매합니다. 이는 고객이 관세에 따라 리소스를 100% 사용하는 경우가 거의 없기 때문에 작동하지만, 과판매 비율이 부풀려진 부도덕한 공급자는 기계 작동이 극도로 느려지거나 메모리 부족으로 인해 스크립트를 실행하지 못하는 등의 문제가 발생할 수 있습니다. XEN 및 KVM의 가상화 유형으로 돌아가서 과잉 판매는 기술적으로 거의 불가능합니다.

호스팅 제공업체 선택

따라서 VDS 서비스를 구매하기로 결정하셨습니다. 공급자를 어떻게 선택해야 합니까? 서버가 지리적으로 위치할 지역부터 시작해야 합니다.

독일 - 장점: 저렴한 관세, 빠른 채널, 무제한 트래픽, 단점 - 러시아까지 꽤 긴 지연 - 약 80ms, 토렌트 추적기, 토렌트 클라이언트, Varese 등을 매우 심각하게 받아들입니다.
네덜란드, 캐나다 - 독일과 동일하지만 조금 더 비싸지만 가장 큰 장점은 다양한 유형의 저장 및 전송 정보에 더 충실한 법안이므로 우리가 머리를 두드리지 않습니다.
미국 - 대부분의 경우 러시아로의 트래픽, 대규모 핑을 고려합니다. 일반적으로 최선의 선택은 아닙니다.
러시아, 우크라이나 - 러시아 청중에 대한 최소한의 지연, 대부분의 경우 의사 무제한 트래픽(특정 임계값 이후 속도 감소 또는 들어오고 나가는 러시아/해외 트래픽의 비율을 유지해야 하는 필요성), 가장 신뢰할 수 있는 데이터 센터는 아님 - 3개의 독립적인 전기 입력, 중복된 인터넷 채널 및 디젤 발전기에도 불구하고 거의 모든 곳에서 정기적으로 몇 시간 동안 대규모 서비스 중단이 발생합니다.
가상화 유형 선택
리소스가 허용된다면 이는 확실히 KVM 또는 XEN입니다. 그러나 모든 공급자가 이러한 유형의 가상 머신을 사용할 수 있는 것은 아니며 OpenVZ보다 약간 더 많은 비용이 듭니다. 따라서 귀하의 프로젝트가 트래픽이 적고(일일 최대 약 10,000개의 고유 호스트) 일종의 ICQ 채팅이 있는 특정 사이트라면 OpenVZ만으로도 충분할 것입니다.
게임 서버 호스팅이나 화상 채팅 등 리소스 집약적인 작업을 수행해야 한다면 XEN | KVM, VPN 터널을 생성해야 하는 경우 이러한 유형의 가상화도 선택할 가치가 있습니다. OpenVZ보다 여기에 VPN을 설치하는 것이 더 쉽습니다.

서버 튜닝

다음으로 내 서버에 구성한 다양한 기능에 대해 이야기하겠습니다. 일부 기능은 여러분에게 유용할 수 있습니다. 제가 사용하는 운영체제는 Ubuntu 12.04.1 LTS입니다. 아래에서 실행되는 대부분의 명령에는 루트 권한이 필요하고 저는 게으른 사람이므로 모든 작업을 루트에서 수행합니다. 일반적으로 루트로 직접 로그인하는 것은 불가능하므로 sudo 권한이 있는 사용자로 로그인한 후 sudo -s 명령을 실행합니다.

커널 재구축

OpenVZ를 선택했다면 이 기사 부분을 건너뛰어도 됩니다.
이 절차는 눈에 띄는 생산성 향상을 제공하지 않으며 자기 개발과 "미래를위한 실천"에만 필요한 절차입니다.
kernel.org 웹사이트에서 커널의 최신 안정 버전 소스를 다운로드하세요. 현재 버전은 3.6.7입니다.
wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.6.7.tar.bz2
아카이브 압축 풀기
tar -xjf linux-3.6.7.tar.bz2
컴파일에 필요한 패키지 설치
적성 업데이트 적성 설치 build-dep linux 커널 패키지
소스 폴더로 이동하여 커널 구성을 생성하십시오. 우리의 경우 모든 것이 자동으로 발생합니다. 현재 하드웨어에 필요한 모듈만 커널에 포함됩니다. 커널을 수동으로 구성하려면 Google make config 또는 make menugonfig를 사용하세요.
CD linux-3.6.7 make localesconfig
커널 컴파일을 시작합니다. 프로세스가 빠르지 않고 15분에서 몇 시간이 걸립니다.
fakeroot make-kpkg --initrd --append-to-version=-custom kernel_image kernel_headers
디렉토리로 이동하여 패키지를 설치하십시오.
cd .. dpkg -i linux-*.deb
재부팅하고 커널이 작동하는지 확인합니다.
재부팅 uname -r
그게 다입니다. 시스템에 새로운 커널이 있습니다.

시간대 및 PC 이름 변경

전용 서버에 Ubuntu를 직접 설치하는 경우 설치 중에 시스템의 언어 및 지리적 매개변수를 설정하지만 VDS의 경우 공급자는 미리 만들어진 시스템 이미지를 가지고 있으며 이를 서버에 롤아웃합니다. 그리고 서버에서 우리 시간대의 정확한 시간을 확인하는 것이 우리 모두에게 더 즐겁습니다.
따라서 시간대를 설정하고 콘솔에서 명령을 실행해 보겠습니다.
dpkg-tzdata 재구성
위치를 선택할 의사 그래픽 인터페이스가 나타납니다.
갑자기(이전에는 본 적이 없음) 날짜/시간에 불일치가 있는 경우 다음 명령을 실행하여 현재 날짜와 시간을 대체합니다.
hwclock --set --date=”2012/11/24 16:19:55"
서버 이름을 변경하려면 /etc/hostname 파일을 열고 내용을 원하는 서버 이름으로 바꾸십시오.

백엔드 apache2, PHP, MySQL, phpmyadmin을 사용하여 nginx 설치

이 기사 부분에서는 많은 수의 연결을 위해 설계된 웹 서버를 설치하고 구성합니다.

먼저 웹 서버용 표준 "어린이용" 패키지 세트를 설치해 보겠습니다.
적성 업데이트 적성 설치 mysql-server mysql-client libmysqlclient15-dev apache2 apache2-doc apache2-mpm-prefork apache2-utils libexpat1 ssl-certlibapache2-mod-php5 libapache2-mod-ruby php5 php5-common php5-curl php5-dev php5- gd php5-idn php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-mhash php5-ming php5-mysql php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl phpmyadmin g++
MySQL에 대한 비밀번호를 설정하라는 요청을 받은 다음 phpmyadmin을 처리하는 방법을 묻습니다. Apache에서 응답해야 하며 phpmyadmin의 요구에 따라 MySQL에 대한 비밀번호를 요청할 것입니다.
이 글을 쓰는 시점에는 phpmyadmin이 apache2 구성에 자동으로 등록되지 않았기 때문에 site_address.zone/phpmyadmin에 404 오류가 표시되므로 /etc/apache2/apache2.conf 파일을 열고 다음 줄을 추가합니다. 끝까지
/etc/phpmyadmin/apache.conf 포함
Apache2 모듈 활성화
a2enmod는 a2enmod를 포함하고 a2enmod suexec a2enmod SSL을 다시 작성합니다.
기본 Apache 구성을 그려 보겠습니다. 이렇게 하려면 /etc/apache2/sites-available/default를 열고 이 파일의 모든 내용을 지우고 다음을 작성하십시오.
ServerAdmin your@e-mail DocumentRoot /home/www/site_address.zone 옵션 FollowSymLinks AllowOverride All 옵션 색인 FollowSymLinks MultiViews AllowOverride 모든 순서 거부, 허용 거부 모든 허용 127.0.0.0/255.0.0.0::1/128 ScriptAlias ​​​​/cgi-bin/ /usr/lib/cgi-bin/ AllowOverride 모든 옵션 +ExecCGI -MultiViews +SymLinksIfOwnerMatch 순서 허용, 거부 모두 허용 ErrorLog /var/log/apache2/error.log # 가능한 값은 다음과 같습니다: 디버그, 정보, 공지, 경고, 오류, 비판, # 경고, 비상. LogLevel crit CustomLog /var/log/apache2/access.log 결합 별칭 ​​/doc/ "/usr/share/doc/" 옵션 인덱스 MultiViews FollowSymLinks AllowOverride 모든 주문 거부, 허용 모두에서 거부 127.0.0.0/255.0.0.0::1/128에서 허용

포트 800이 지정되었다는 사실은 오류가 아닙니다. nginx는 표준 HTTP 포트 80번에서 정지됩니다. 제가 모르는 이유 때문에 대부분의 사람들은 DocumentRoot 매개변수에 /var/www/…를 지정하는 것을 권장합니다. 제 생각에는 중요한 데이터를 /home에 보관하는 것이 더 논리적입니다. 백업을 설정하는 것이 더 쉬울 것입니다.
/etc/apache2/ports.conf 파일 편집
NameVirtualHost *:800 듣기 800
/etc/apache2/sites-available/default 파일을 /etc/apache2/sites-enabled/site_address에 복사합니다.
사이트 주소별로 구성이 포함된 디렉터리 및 파일 이름을 지정하는 것이 더 좋습니다. 앞으로는 필요한 configs\directories 검색을 단순화할 것입니다(예: /home/www/tweedle.ru /etc/apache2/sites-enabled/tweedle.ru).
/etc/apache2/apache2.conf 파일을 편집합니다. MaxClients 매개변수 값을 20으로 변경합니다. 이 작업은 두 곳에서 수행해야 합니다.
이를 위해 nginx 저장소를 등록하고 /etc/apt/sources.list 파일을 열고 끝에 추가합니다.
deb http://nginx.org/packages/ubuntu/ 정확한 nginx deb-src http://nginx.org/packages/ubuntu/ 정확한 nginx
nginx 및 apache2-mod-rpaf 설치
wget http://nginx.org/keys/nginx_signing.key apt-key 추가 nginx_signing.key 적성 업데이트 적성 설치 libapache2-mod-rpaf libpcre3 libpcre3-dev nginx
다음으로, nginx를 구성해 보겠습니다. 이를 위해 /usr/local/etc/nginx/nginx.conf 파일을 열고 내용을 다음으로 바꿉니다.
사용자 www-데이터; 작업자 프로세스 1; error_log /var/log/nginx/error.log; pid /var/run/nginx.pid; 이벤트(worker_connections 1024; ) http(include /etc/nginx/mime.types; default_type application/octet-stream; server_names_hash_bucket_size 64; access_log /var/log/nginx/access.log; sendfile on; #tcp_nopush on; #keepalive_timeout 0 ; keepalive_timeout 65; gzip_proxied 임의; gzip_http_version 1.0; gzip_types text/plain text/css text/xml application/xml+rss text /javascript; ) /etc/nginx/conf.d/*.conf를 포함합니다. /etc/nginx/sites-enabled/*를 포함합니다;
웹 서버 역할이 서버의 주요 역할이거나 사이트의 트래픽이 높은 경우 작업자_프로세스 값은 사용 가능한 CPU 코어 수와 동일하게 설정됩니다. 그렇지 않으면 하나의 프로세스로 충분합니다.
우리 사이트 /etc/nginx/sites-enabled/site_address.zone에 대한 구성을 만듭니다.
서버( 수신 80; server_name site_address.zone; access_log /var/log/nginx.access_log; 위치 ~* \.(jpg|jpeg|gif|png|css|zip|tgz|gz|rar|bz2|doc|xls| exe|pdf|ppt|tar|wav|bmp|rtf|swf|ico|flv|txt|xml|docx|xlsx|mp3|bsp)$ ( 루트 /home/www/site_address.zone/; 색인 index.php 색인 .html index.htm; access_log 꺼짐; 30일 만료; ) 위치 ~ /\.ht (모두 거부; ) 위치 / (proxy_pass http://127.0.0.1:800/; Proxy_set_header X-Remote_addr; Proxy_set_header X - 전달됨-$remote_addr;proxy_connect_timeout 90;proxy_pass_header Content-Length;
memcached를 설치하면 추가 설정이 필요하지 않습니다.
적성 설치 memcached
eAccelerator 설치
적성 설치 php5-dev 적성 설치 make cd /tmp/ wget https://github.com/downloads/eaccelerator/eaccelerator/eaccelerator-0.9.6.1.tar.bz2 tar xvjf eaccelerator-0.9.6.1.tar.bz2 cd eaccelerator- 0.9.6.1
이제 eAccelerator를 컴파일하기 전에 코드에서 모든 종류의 문제를 일으키는 버그 하나를 수정하겠습니다. 예를 들어 phpmyadmin의 인증이 작동하지 않습니다. eaccelerator.c 파일(867행)을 엽니다. if (php_check_open_basedir(realname TSRMLS_CC)) ( with if (php_check_open_basedir(p->realfilename TSRMLS_CC)) ( 저장하고 계속하세요...
phpize ./configure --enable-eaccelerator=shared make make install

캐시용 폴더를 생성하고 해당 폴더에 대한 권한을 부여하세요.
mkdir -p /var/cache/eaccelerator chmod 0777 /var/cache/eaccelerator
eaccelerator와 함께 작동하도록 PHP를 구성합니다. 이를 위해 /etc/php5/apache2/php.ini 파일을 열고 맨 위에 추가합니다.
확장명 = "eaccelerator.so" eaccelerator.shm_size = "16" eaccelerator.cache_dir = "/var/cache/eaccelerator" eaccelerator.enable = "1" eaccelerator.optimizer = "1" eaccelerator.check_mtime = "1" eaccelerator.debug = "0" eaccelerator.filter = "" eaccelerator.shm_max = "0" eaccelerator.shm_ttl = "0" eaccelerator.shm_prune_기간 = "0" eaccelerator.shm_only = "0" eaccelerator.compress = "1" eaccelerator.compress_level = " 9" eaccelerator.allowed_admin_path = "/var/www/eaccelerator"
서비스를 다시 시작하여 사이트가 /home/www/site_name에 있는지 확인합니다.
서비스 apache2 재시작 서비스 nginx 재시작 서비스 memcached 재시작
이제 우리는 100MB 미만의 RAM을 소비하는 상당히 빠른 웹 서버를 갖게 되었습니다. Todo: 한 가지 단점이 있습니다. site_address.zone/phpmyadmin에서 사용할 수 있는 phpmyadmin이 보기 흉하게 표시됩니다(그림 없음). 제가 제안할 수 있는 임시 해결책은 site_address.zone:800/phpmyadmin에서 phpmyadmin을 여는 것입니다.

MySQL을 지원하는 순수 ftpd FTP 서버 설치

FTP 서버는 서버에서 서버로 정보를 간단하고 빠르고 편리하게 전송하는 데 유용합니다.
mysql을 지원하는 pure-ftpd 설치
적성 설치 pure-ftpd-mysql
우리는 FTP 사용자와 그 안에 있는 사용자를 위한 그룹을 만듭니다. 이는 나중에 서버에서 일어나는 일을 더 편리하게 모니터링할 수 있도록 하기 위한 것입니다.
groupadd -g 4001 ftpusers && useradd -u 4001 -s /bin/false -d /bin/null -c "pureftpd 사용자" -g ftpusers ftp
pure-ftpd용 MySQL 데이터베이스를 생성해 보겠습니다. 이 작업은 phpmyadmin을 통해 수행할 수 있지만 훌륭하고 강력한 복사-붙여넣기를 사용하면 콘솔에서 수행하는 것이 더 빠릅니다.
mysql -u 루트 –p
데이터베이스 생성 pureftpd; "pureftpd_password"로 식별된 "pureftpd"@"localhost"에 대해 pureftpd.*에 대한 선택, 삽입, 업데이트, 삭제, 생성, 삭제 권한을 부여합니다. 플러시 권한;
FTP 계정이 저장될 테이블을 만들어 보겠습니다.
순수ftpd를 사용하세요; CREATE TABLE ftpd (사용자 varchar(16) NOT NULL 기본값 "", status enum("0","1") NOT NULL 기본값 "0", 비밀번호 varchar(64) NOT NULL 기본값 "", Uid varchar(11) NOT NULL 기본값 "-1", Gid varchar(11) NOT NULL 기본값 "-1", Dir varchar(128) NOT NULL 기본값 "", ULBandwidth smallint(5) NOT NULL 기본값 "0", DLBandwidth smallint(5) NOT NULL 기본값 "0", 주석tinytext NOT NULL, ipaccess varchar(15) NOT NULL 기본값 "*", QuotaSize smallint(5) NOT NULL 기본값 "0", QuotaFiles int(11) NOT NULL 기본값 0, PRIMARY KEY(사용자), 고유 키 사용자(User)) ENGINE=MyISAM; 그만두다;

이제 이를 수행하기 위해 pure-ftpd를 구성하고 /etc/pure-ftpd/db/mysql.conf 파일을 열고 그 내용을 다음과 같이 만듭니다.
MYSQLSocket /var/run/mysqld/mysqld.sock MYSQLUser pureftpd MYSQLPassword 비밀번호_for_pureftpd MYSQLDatabase pureftpd MYSQLCrypt md5 MYSQLGetPW ftpd에서 비밀번호 선택 WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R ") MYSQLGetUID SELECT Uid FROM ftpd WHERE User="\L" AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetGID SELECT Gid FROM ftpd WHERE User="\L"AND status= "1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MYSQLGetDir SELECT Dir FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R" ) MySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User="\L"AND status=" 1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTASZ SELECT QuotaSize FROM ftpd WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R") MySQLGetQTAFS ftpd에서 QuotaFiles 선택 WHERE User="\L"AND status="1" AND (ipaccess = "*" OR ipaccess LIKE "\R")
이제 사용자의 홈 디렉터리가 존재하지 않는 경우 자동으로 생성되는지 확인해 보겠습니다.
에코 "예" > /etc/pure-ftpd/conf/CreateHomeDir
다음 명령은 사용자가 자신의 홈 디렉터리보다 높은 디렉터리에 액세스하는 것을 방지합니다.
에코 "예" > /etc/pure-ftpd/conf/ChrootEveryone
마지막으로 사용자 호스트 이름 확인을 비활성화합니다. 이렇게 하면 인증 프로세스 속도가 크게 빨라지고 트래픽 양이 약간 줄어듭니다.
에코 "예" > /etc/pure-ftpd/conf/DontResolve
설정을 적용하려면 서비스를 다시 시작하세요.
서비스 pure-ftpd-mysql 재시작
이제 GID 및 UID 4002, 홈 디렉토리 /home/www, 초당 1MB의 다운로드/업로드 속도 제한 및 점유 디스크 공간에 대한 제한이 없는 www-ftp 사용자를 생성해 보겠습니다. 명령줄을 사용하여 예를 들겠습니다. phpmyadmin에서 "SQL 쿼리 실행"을 사용하거나 phpmyadmin에서 "라인 추가"를 사용할 수도 있습니다. 하지만 이 경우 비밀번호가 저장되어 있다는 사실을 놓치지 마세요. 데이터베이스에 md5 해시로 저장하고 비밀번호 필드에서 "Function" md5를 선택합니다.
mysql -u 루트 -p
순수ftpd를 사용하세요; INSERT INTO `ftpd`(`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ("www-ftp", "1", MD5("password_for_user_www-ftp"), "4002", "4002", "/home/www", "1024", "1024", "Comment ", "*", "0", "0"); 그만두다;
그게 전부입니다. 로그인 www-ftp와 지정된 비밀번호를 사용하여 site_address.zone 주소의 FTP 서버에 연결을 시도할 수 있습니다.
잘못된 사람의 손에 넘어가서는 안되는 FTP 프로토콜을 통해 데이터를 전송하려는 경우 TLS 암호화를 설정하는 것이 좋습니다. 이렇게 하려면 다음을 수행하십시오.
에코 1 > /etc/pure-ftpd/conf/TLS mkdir -p /etc/ssl/private/
openssl 패키지가 설치되어 있지 않은 경우 설치하고 인증서를 생성하십시오.
적성 업데이트 적성 설치 openssl openssl req -x509 -nodes -days 3652 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
우리는 질문에 답합니다. 이 데이터는 생성된 인증서에 표시됩니다.
인증서에 대한 액세스 권한을 설정하고 pure-ftpd를 다시 시작하세요.
chmod 600 /etc/ssl/private/pure-ftpd.pem 서비스 pure-ftpd-mysql 재시작
그게 다야. 데이터를 암호화하려면 클라이언트 측에서 TLS 암호화를 활성화해야 하며 모든 FTP 클라이언트가 이를 지원하는 것은 아닙니다.

게임 서버 관리 컴플렉스 설치 - 오픈 게임 패널

OGP라고도 알려진 개방형 게임 패널은 다양한 게임 서버를 모니터링하고 관리할 수 있는 유일한 무료 솔루션입니다. 이 글을 쓰는 시점에는 Windows 및 Linux 플랫폼의 서버에서 50개 이상의 다양한 게임이 지원됩니다. Counter-Strike(2D, 1.5, 1.6, Source, GO) 및 Minecraft(Vanilla, Bukkit)와 같은 인기 있는 게임 포함
이 컴플렉스는 모니터링 및 관리를 수행하는 웹 인터페이스(프런트엔드)와 에이전트(게임 서버가 있는 시스템에 매달려 로그를 프런트엔드에 전송하고 프런트엔드에서 게임 서버로 명령을 전송하는 서비스)의 두 부분으로 구성됩니다. .
우선, http://www.opengamepanel.org에 등록하세요. 설치에 꼭 필요한 것은 아니지만 사이트에서 추가 모듈(예: 결제 시스템), 테마 및 기타 상품을 다운로드할 수 있습니다.
필요한 패키지 설치
적성 업데이트 적성 설치 libxml-parser-perl libpath-class-perl libarchive-any-perl 화면
시스템이 x64인 경우 ia32-libs를 추가로 설치합니다.
적성 설치 ia32-libs
에이전트 자체 다운로드
wget "http://www.opengamepanel.org/downloads/ogp_agent_nightly.tar.gz" -O 에이전트.tar.gz tar xf 에이전트.tar.gz CD 에이전트
우리는 설치합니다. 주의 - 이전에 시스템에 사용자를 생성하고 이를 루트 및 sudo 그룹에 포함시킨 후 홈 디렉터리를 생성했습니다. 이 모든 것은 에이전트가 올바르게 작동하는 데 필요합니다.
배시 ./install.sh
서비스가 실행될 사용자 이름을 묻는 메시지가 표시됩니다. 이전 단락에서 언급한 사용자 이름, 비밀번호, 실행 파일이 위치할 디렉터리(/home/username/OGP)를 표시해야 합니다. 에이전트 키를 입력하라는 메시지가 표시됩니다. 이는 사용자 비밀번호가 아니라 에이전트 제어 키이며 나중에 필요하며 Steam 정책 규칙에 동의하라는 메시지도 표시됩니다.
설치 후 생성된 사용자로 로그인 후 실행
cd /home/username/OGP perl ./ogp_agent.pl --log-stdout
모든 것이 정상이고 프로세스가 실행 중이며 포트 12679에서 수신 대기 중이라고 알려야 합니다.
Ctrl+C를 누르고 루트로 로그인한 후 등록하세요. 이는 시스템이 시작될 때 서비스가 시작되는 데 필요합니다.
update-rc.d ogp_agent 기본값
여러 서버(전용 또는 가상)가 있는 경우 각 서버에 에이전트를 설치해야 합니다.
이제 OGP에서 웹 인터페이스를 설치하고 아카이브를 다운로드한 후 압축을 풀어보겠습니다.
wget "http://www.opengamepanel.org/downloads/ogp_web_nightly.tar.gz" -O upload.tar.gz tar xf upload.tar.gz
업로드 폴더의 내용을 사이트가 있는 폴더로 이동합니다.
브라우저에서 site_address.zone/folder_with_ogp를 열고 언어를 선택합니다. 갑자기 파일이나 폴더를 생성할 권한이 충분하지 않다는 메시지가 표시되면 777 chmod로 권한을 발급합니다. 이를 위해 다음으로 이동합니다. ogp로 폴더를 찾아 명령을 실행합니다.
chmod 777 –v –R * 태그 추가

이 가이드에서는 Apache, PHP 7, MySQL, phpmyadmin, vsftpd를 FTP로 사용하고 기타 소규모 유틸리티를 사용하여 Linux 가상 서버에서 웹사이트용 VPS를 설정하는 전체 프로세스를 설명합니다. 인터넷에서 찾은 모든 것은 불완전하거나 어떤 곳에서는 현대 현실에 맞지 않았습니다. 대부분의 호스팅 업체의 한계에 부딪혀 일반 공유 호스팅에서 웹사이트를 옮겼습니다.

호스팅을 판매하거나 제어판(ISP Manager, cPanel, Plesk 등)을 설치하려는 경우 이 설정 방법은 작동하지 않습니다. 이 배포에 대한 설정은 다릅니다. PHP7은 PHP 5에 비해 성능과 최적화 측면에서 여러 가지 심각한 이점을 가지고 있습니다. 예를 들어 내 WordPress 프로젝트는 눈에 띄게 더 빠르게 실행됩니다. 아는 것이 중요합니다. 최신 업데이트가 포함된 잘 알려진 CMS가 없지만 PHP7에 최적화되지 않은 일종의 자체 작성 프로젝트가 있는 경우 불일치가 발생할 수 있습니다.

이 가이드에서는 Ubuntu Server 14.04.4 LTS를 사용합니다. 여기에 설명된 모든 내용은 다른 Debian 유사 배포판의 VPS\VDS에도 적합합니다. Linux에 대한 기본 지식이 있고 터미널 콘솔을 사용하는 방법을 알고 있다고 가정합니다. 기본 사항을 부분적으로 설명하겠습니다.

설정하기

따라서 VPS에 새로 설치된 시스템이 있고 SSH를 통해 액세스할 수 있습니다. 루트로 서버에 로그인합니다.

1. 사용자를 생성해 보겠습니다. 불필요하게 뿌리 아래에서 작업하는 것은 어리석음의 표시입니다.

사용자 추가

사용자 위치 - 향후 로그인으로 변경됩니다. 우리는 시스템의 질문에 답하고, 복잡한 비밀번호를 제시하며, 귀하의 로그인이 시스템 원격 제어를 위한 주요 로그인이 될 것이며, 보안상의 이유로 원격 터미널에서 루트 연결을 끊을 것입니다.

2. 루트에서 명령을 실행하려면 생성된 사용자를 sudo 그룹에 추가합니다.

Usermod -a -G sudo 사용자

또한 관리자 그룹에 자신을 추가하십시오.

Sudo usermod -aG adm YourUserName

3. 시스템에서 로그아웃(logout)하고 SSH에서 새로 생성된 사용자로 로그인합니다. 이제부터 루트로 명령을 실행해야 하는 경우 나머지 명령 피연산자 앞에 sudo 피연산자를 사용합니다(아래 예).

4. VPS 서버의 웹사이트 주소를 공개하자마자 각종 해킹봇들이 터미널 포트 22번을 노크하기 시작할 것입니다. 따라서 포트를 22번에서 다른 포트로 변경하여 VPS 터미널을 보호합시다. 새 포트로 1부터 65535까지의 숫자를 입력하십시오. 포트 80, 443, 3306, 22, 21 및 8080은 VPS의 다른 서비스에 사용됩니다.

Sudo nano /etc/ssh/sshd_config

Nano는 콘솔 메모장입니다. 이미 익숙하시겠지만 기본 컨트롤에 대해 다시 말씀드리겠습니다. Ctrl+X - 종료, Ctrl+O - 저장, Ctrl+W - 검색, 화살표 - 커서 이동.

열린 파일에서 "Port 22" 줄을 찾으면 일반적으로 맨 위에 있습니다. 22를 원하는 포트로 변경하세요. 다음으로, PgDn 버튼을 사용하여 파일 맨 아래로 스크롤하고 각 명령을 새 줄에 추가합니다.

AddressFamily inet PermitRootLogin 없음 AllowUsers 사용자

첫 번째 명령은 연결을 IPv4로만 제한하여 불필요한 IPv6를 비활성화합니다. 두 번째는 루트로 터미널에 로그인하는 것을 금지합니다. 세 번째는 귀하를 제외한 모든 사람의 로그인을 금지합니다. 사용자 대신 귀하의 로그인을 대체하십시오.

위에 표시된 대로 저장하고 닫습니다. 이제부터 모든 파일 편집은 이 시나리오를 따릅니다. 설정을 적용하려면 원격 터미널을 다시 시작해 보겠습니다.

Sudo 서비스 SSH 다시 시작

5. 터미널에서 로그아웃하고 새 포트를 사용하여 서버에 다시 연결합니다.

6. 애플리케이션 소스 및 애플리케이션 자체를 업데이트합니다.

Sudo apt-get 업데이트 && sudo apt-get 업그레이드

Y와 Enter를 눌러 업데이트 설치에 동의합니다.

7. 최신 버전의 시스템이 없는 경우 배포판을 최신 하위 릴리스로 업데이트하는 것이 좋습니다(선택적 단계).

Sudo apt-get dist-upgrade

8. 시스템의 전반적인 작동 속도를 높입니다(Prelink 및 Preload). 라이브러리에 대한 정적 주소를 생성하려면 Prelink가 필요합니다. Preload는 가장 자주 사용되는 응용 프로그램의 파일을 모니터링하고 시스템이 유휴 상태인 동안 메모리에 미리 로드하는 작은 응용 프로그램입니다.

Sudo apt-get 설치 사전 링크 sudo apt-get 설치 사전 로드

Sudo nano /etc/default/prelink

친숙한 Nano가 열리고 PRELINKING=unknown에서 PRELINKING=yes로 줄이 변경됩니다. 닫기 전에 꼭 저장하는 것, 이미 기억하고 계시죠? 다음 단계는 cron 스케줄러에 일일 실행을 추가하는 것입니다.

Sudo /etc/cron.daily/prelink

9. 이제 시스템 사전 설정을 마치고 Apache를 설치하겠습니다.

Sudo apt-get 설치 apache2

또한 mod_rewrite를 활성화해 보겠습니다. 어떤 이유로 인해 대부분의 시스템에서는 기본적으로 비활성화되어 있습니다. 광고판 링크를 아름답고 짧은 링크로 다시 작성하는 일을 담당합니다. 많은 사이트의 운영에 매우 중요합니다.

Sudo apt-get 설치 mysql-server

설치 시 서버 주소를 요청할 수 있습니다. 아직 외부 도메인을 할당하지 않은 경우 localhost를 표시합니다. 또한 기본 데이터베이스 비밀번호, 복합 문자, 문자 및 숫자, 다른 대소문자를 설정합니다. 아직 짐작하지 못하셨다면, 모든 로그인 정보와 비밀번호를 적어서 안전한 곳에 보관해야 한다는 점을 상기시켜 드리겠습니다.

최신 버전의 MySQL 서버는 우리 환경에서 작동하고 localhost의 요청만 허용하도록 올바르게 구성되었습니다. 따라서 구성으로 들어 가지 않습니다.

11.php7을 설치합니다. 이 글을 쓰는 시점에는 Ubuntu 파일 저장소에 PHP7이 포함되어 있지 않으므로 비공식 저장소를 추가하고 여기에서 php7을 설치해야 합니다.

sudo add - apt - 저장소 ppa : ondrej/php

추가가 끝나면 최종 동의를 구하고 Y를 눌러 확인하고 Enter를 누르세요. 다음으로, 애플리케이션 목록을 업데이트하고 필요한 애플리케이션을 설치하세요.

Sudo apt-get 업데이트 sudo apt - get php7 설치. 0 - CLI php7. 0 - 공통 libapache2 - mod - php7. 0php7 . 0php7 . 0 - mysql php7. 0 - fpm php7.0-mbstring php7.0-gd php7.0-curl

여기의 모듈 세트는 제가 실험적으로 결정했습니다. 모든 소스는 mbstring이 없는 다른 소스를 나타내지만 MySQL의 관리 패널인 phpmyadmin에는 필요합니다. 어딘가에 컬과 gd가 누락되어 있지만 보안 문자 및 일부 CMS 플러그인에는 필요합니다. 어떤 경우든 나중에 언제든지 추가 모듈이 제공될 수 있습니다.

12. Apache를 구성해 보겠습니다. Apache 설정이 있는 디렉터리로 이동(cd)해 보겠습니다.

CD /etc/apache2

기본 구성 파일을 편집해 보겠습니다.

Sudo nano apache2.conf

이미 설정된 변수를 건드리지 않고 파일 끝으로 스크롤합니다. 여기에서 새 줄에 각 명령을 추가합니다.

ServerName localhost ServerSignature 끄기

그러면 Apache 자체 결정을 위한 기본 호스트(localhost)가 설정되고 오류 페이지에 시스템 및 서버 버전이 표시되지 않습니다. 안전하지 않습니다. 언제나 그렇듯이 저장하고 닫습니다.

13. PHP를 구성해 보겠습니다.

CD /etc/php/7.0/apache2 sudo nano php.ini

많은 스크립트는 전체 태그 대신 짧은 시작 태그를 사용하므로 Off를 On으로 대체하여 이 옵션을 활성화하겠습니다.

Short_open_tag = 켜짐

메모리 및 파일 다운로드 제한을 확장해 보겠습니다.

Memory_limit = 128M post_max_size = 64M

14. phpmyadmin을 설치합니다. 이것은 MySQL 데이터베이스용 그래픽 제어판입니다. apt 저장소에서 처음 설치했을 때 이륙하지 않았습니다. 우분투 저장소에는 PHP7 자체도 이러한 저장소에 없기 때문에 PHP7을 이해하는 최신 버전의 phpmyadmin이 포함되어 있지 않은 것으로 나타났습니다.

/usr/share에 설치하는 것이 가장 좋습니다:

CD /usr/공유

이 글을 쓰는 시점에 최신 버전 4.6.0을 다운로드하세요.

Sudo wget https://files.phpmyadmin.net/phpMyAdmin/4.6.0/phpMyAdmin-4.6.0-all-언어s.zip

unzip을 설치해 보겠습니다. 다음이 필요합니다.

Sudo apt-get install unzip

압축을 푼다:

Sudo 압축 풀기 phpMyAdmin-4.6.0-all-언어s.zip

폴더 이름을 바꾸자:

Sudo mv phpMyAdmin-4.6.0-모든 언어 ​​phpmyadmin

권리를 첨부합시다 :

sudo chmod -R 0755 phpmyadmin

phpmyadmin을 찾을 수 있는 위치를 알 수 있도록 Apache 구성 파일을 편집해 보겠습니다.

Sudo nano /etc/apache2/sites - 사용 가능 / 000 - 기본값. conf

"DocumentRoot /var/www/html" 뒤에 다음 줄을 추가합니다.

별칭 /phpmyadmin "/usr/share/phpmyadmin/"< Directory "/usr/share/phpmyadmin/" >주문 허용, 거부 모두 허용 모두 허용 필요

모든 것이 준비되었습니다. Apache를 다시 시작하겠습니다.

Sudo 서비스 apache2 다시 시작

15. 모든 조작이 끝나면 서버 주소의 브라우저에서 Apache 테스트 페이지가 열리고 http://yoursite/phpmyadmin에서 phpmyadmin을 사용할 수 있습니다. 로그인은 루트이며, 비밀번호는 MySQL 설치 시 지정됩니다.

16. 서버 작동을 확인하기 위해 phpinfo 페이지를 생성해 보겠습니다.

CD var/www/html sudo mkdir phpinfo cd phpinfo sudo nano index.php

이 코드를 Nano에 붙여넣고 저장합니다.

이제 PHP 및 연결된 모듈에 대한 정보가 포함된 서비스 페이지가 http://yoursite/phpinfo에서 열립니다. 예를 들면 다음과 같습니다.

모든 것이 작동하고 표시되면 이 폴더의 이름을 본인에게만 알려진 이름으로 변경하여 phpinfo를 숨깁니다.

CD /var/www/html sudo mv phpinfo phpinfo312341

알려진 경로를 통한 직접 액세스는 VPS 보안 허점입니다.

17. FTP를 설치해보자. 우리는 vsftpd를 사용합니다:

Sudo apt-get 설치 vsftpd

구성 편집:

Sudo nano /etc/vsftpd.conf

이 파일의 설정이 다음과 일치하는지 확인하십시오. 매개변수가 #으로 주석 처리된 경우 #을 제거하여 주석 처리를 해제합니다. 매개변수가 없으면 파일 끝에 수동으로 추가합니다.

Anonymous_enable=아니요 local_enable=YES write_enable=YES

FTP를 다시 시작해 보겠습니다.

Sudo 서비스 vsftpd 다시 시작

그런 다음 시스템 로그인 및 비밀번호를 사용하여 FTP를 통해 서버에 로그인할 수 있습니다. 이 구성을 사용하면 전체 운영 체제에 액세스할 수 있습니다. 폴더에 대한 액세스를 제한해야 하는 경우 인터넷에서 가이드를 검색하세요.

18. 백업. 알파 및 오메가 VPS 관리. 백업은 일주일에 한 번 이상 이루어져야 합니다. 다음 스크립트는 /var/www(일반적으로 사이트가 위치하는 위치), /etc, /var/log 및 /root 폴더의 백업으로 아카이브를 생성합니다. 또한 모든 MySQL 데이터베이스를 백업합니다. 스크립트는 백업이 저장될 폴더에서 루트로 실행되어야 합니다. cron에 스크립트 파일을 추가하는 것도 좋습니다. 실제로 스크립트는 다음과 같습니다.

#!/bin/bash USER=root #데이터베이스 사용자 PASSWORD=password #password BACKUP=/media/Backup #백업을 저장할 위치 LOG=/var/log # 오래된 로그를 정리하기 위한 디렉터리 OLD=30 # 백업을 저장할 일 수 (오래된 것들은 삭제됩니다) PREFIX=work # 서버가 여러 개인 경우 혼동을 피하기 위해 다른 접두사를 사용하십시오. DATE=`date "+%Y-%m-%d"` echo "데이터베이스를 $BACKUP에 백업" mkdir $ BACKUP/$DATE. sql cd $BACKUP/$DATE.sql for i in `mysql -u $USER -p$PASSWORD -e"showdatabases;" | grep -v 정보_스키마 | grep -v 데이터베이스`; mysqldump -u $USER -p$PASSWORD $i > $DATE-$i.sql을 수행합니다. done cd .. tar -cjf $BACKUP/$DATE-sql-$PREFIX.tar.bz2 ./$DATE.sql rm -rf ./$DATE.sql echo "$BACKUP에 파일 백업" tar -cjf $BACKUP/ $DATE-files-$PREFIX.tar.bz2 \ /var/www/ \ /etc/ \ /var/log/ \ /root/ \ --exclude=$BACKUP echo "$BACKUP & $에서 오래된 백업 및 로그 삭제 중 LOG" 찾기 $LOG -type f \(-name "*.gz" -o -name "*.1*" \) -exec rm "()" \; $BACKUP -mtime +$OLD -exec rm "()" 찾기 \;

MySQL 구성에 맞게 스크립트의 맨 위 몇 줄을 수정해야 합니다.

루트에 /backup 폴더가 있고 여기에 스크립트와 백업 복사본이 모두 포함되어 있다고 가정해 보겠습니다. 파일 시스템의 루트로 이동합니다.

Cd /sudo mkdir 백업 cd 백업 sudo nano start.sh

그리고 거기에 위의 스크립트를 붙여넣으세요. 저장하고 실행 파일로 할당합니다.

Sudo chmod +x start.sh

이제 다음 명령을 사용하세요.

Sudo ./start.sh

백업 프로세스를 시작하겠습니다. 평균 VPS 용량을 갖춘 평균 사이트의 경우 5~10분이 소요됩니다. 프로세스가 완료되면 /backup 폴더에 백업 복사본이 포함된 여러 아카이브가 생성됩니다. 위에서 말했듯이 이 스크립트를 cron에 넣는 것이 가장 좋습니다. 구글에서 이를 수행하는 방법.

이것으로 기본 서버 설정이 완료되었습니다. 이제 VPS에 완벽하게 작동하고 현대적이며 생산적인 웹 서버가 있습니다. 웹 서버에 대한 액세스 설정과 관련된 몇 가지 사소한 문제는 다루지 않았습니다. 이는 결국 VPS로 이동하는 일반 가상 호스팅의 관리자가 종종 수행하기 때문입니다.

유용한 유틸리티

여러분에게 유용할 수 있는 관리용으로 사용하는 몇 가지 유용한 유틸리티에 대해 언급할 가치가 있습니다.

이는 Linux 터미널 콘솔에서 WordPress를 관리하기 위한 명령 유틸리티입니다. 많은 작업, 백업, 데이터베이스의 데이터 복사, 플러그인 비활성화 및 활성화 등을 수행할 수 있습니다. 플러그인 충돌이 있거나 어딘가에서 실수를 해서 사이트 관리 패널이 떨어진 경우에 매우 유용합니다. 자세히 읽어보세요.

멀티테일

고급 출력으로 로그를 읽는 프로그램입니다. 로그 파일의 내용을 표시하고 구문 강조를 통해 실시간으로 변경 사항을 모니터링할 수 있습니다. 한번 보자.

터미널 콘솔용 Windows의 "작업 관리자"와 완전히 유사합니다. 프로세스, 메모리, 로딩 및 프로세스 관리를 모니터링하는 데 매우 유용합니다. 다음 명령을 사용하여 배치하세요.

Sudo apt-get install htop

그리고 (누가 생각했을지) 다음 명령으로 호출됩니다.

암호화하자

SSL 인증서 발급을 위한 무료 서비스입니다. 사이트를 HTTPS로 이동하기 위한 훌륭한 옵션입니다. 내 별도 기사에서 더 자세히 설명합니다.

서비스

이 모든 것이 어렵거나 자신이 없거나 추가 지원이 필요한 경우, VDS\VPS 또는 전용 서버로 프로젝트를 전송/설치할 준비가 되어 있습니다. 네트워크 및 웹 프로젝트 관리 분야에서 5년 이상의 경험이 있습니다. 실제로 저는 시스템 관리자로 일하고 있습니다. 초기상담은 무료입니다! 해당 섹션을 통해 편하신 방법으로 연락주세요.

안녕하세요! 이 튜토리얼에서는 ISPmanager 패널에서 관리되는 VDS/VPS 서버에 Joomla CMS를 설치하는 방법을 보여 드리겠습니다.

메모: ISPmanager 패널은 도메인, 데이터베이스 및 이메일 서비스 관리를 단일 인터페이스에 결합하여 웹 서버 관리를 위해 만들어진 매우 성공적인 소프트웨어 제품입니다. 또한 사용자를 관리하고 다단계 사용자 권한 시스템을 구성합니다.

이 기사에서는 ISPmanager Lite 버전 5.8을 사용하여 설치하는 방법을 보여줍니다.

ISPmanager에서 VDS/VPS에 Joomla 3을 설치하는 단계

  • 1: 도메인 추가;
  • 2: 데이터베이스를 생성합니다.
  • 3: Joomla 배포판을 서버에 업로드합니다.
  • 4: 번역과 함께 Joomla 설치.
  • 5: 설치 결과 확인, 관리 패널에서 인증.

1단계: 도메인 추가

작업 탭 메뉴가 왼쪽에 표시됩니다. 이 메뉴 상단에는 메뉴 제어 버튼이 있습니다. 메뉴를 열거나 닫을 수 있고, 가장 많이 사용하는 탭에서 즐겨찾기 메뉴를 만들 수 있으며, 모든 탭은 그룹으로 나뉘며, 각 그룹에는 명확한 이름이 있습니다.

도메인은 “WWW 도메인” 탭, “도메인” 그룹에 추가되어야 합니다.

열린 탭에서 모든 필드를 채웁니다.

사진에서 서버는 DDoS 공격에 대한 가능한 보호 기능이 활성화되어 구성되어 있음을 볼 수 있습니다. 작동하지 않는 사이트에서 이 보호를 활성화하는 것은 거의 의미가 없습니다.

결과:WWW 도메인이 추가되었습니다. 서버는 WWW 없이 자동으로 도메인을 생성했으며, 이는 “도메인” 탭에서 확인할 수 있습니다.

메모:이메일 도메인을 생성해도 사이트 운영에는 영향을 미치지 않으므로 이 주제는 다른 기사에서 다루도록 하겠습니다.

이 단계에서는 사이트에 대한 HTTP 웹 서버를 결정하고 선택하는 것이 중요합니다. Apache 웹 서버를 사용하는 것이 중요합니다. 이 경우 Joomla SEO 설정을 사용하고 htaccess 파일을 사용할 수 있습니다. 사이트 URL을 관리합니다.

CMS Joomla의 경우 웹 서버 선택 시 선호도가 다음과 같이 순위가 매겨진다는 의견이 있습니다.

  • UNIX\Apache\Fast CGI\eAccelerator(편리한 작업과 결합된 최고 속도).
  • UNIX\Apache\Fast CGI(역시 접근성이 더 높음)
  • UNIX\Apache\mod_php (CHMOD 권한으로 작업이 불편함).
  • UNIX\Apache\CGI(최대 속도는 아니지만 사용하기 쉽고 모든 Joomla 확장과 호환 가능)

내 서버에는 Fast CGI가 없어서 Apache\CGI를 사용합니다. 이 서버 설정을 사용하면 압축 모드와 캐싱 모드를 활성화할 수 있습니다. 사이트 속도를 높이는 데 필요합니다. 즉시 압축 모드를 켜고(압축 수준 5 권장) 7일 동안 캐싱을 켜 보겠습니다.

포인트 2: Joomla 사이트 데이터베이스 만들기

ISPmanager 패널의 데이터베이스는 "데이터베이스" 탭, "도구" 그룹에 생성됩니다. 탭에 '만들기' 버튼이 있습니다.

사이트의 보안을 강화하려면 데이터베이스에 대한 새 사용자를 생성해야 합니다. 여러 사이트가 있고 VDS 서버의 루트 사용자인 경우 phpmyadmin 패널에서 사이트의 모든 데이터베이스를 한 번에 관리하거나 개별 사용자 로그인으로 phpmyadmin에 로그인하여 사이트의 각 개별 데이터베이스를 관리할 수 있습니다. 이 데이터베이스의.

생성된 데이터베이스에는 기록해야 하는 세 가지 필수 매개변수(데이터베이스 이름, 데이터베이스 사용자 이름, 액세스 비밀번호 및 이 서버의 데이터베이스 위치)가 있어야 합니다. 일반적으로 데이터베이스 서버의 위치는 로컬 호스트입니다. 확인하려면 생성된 데이터베이스 목록(테이블)의 “서버” 열에서 확인할 수 있습니다.


클래스="엘리아드유닛">

포인트 3: Joomla 배포판을 서버에 업로드

지난 강의에서는 FTP 클라이언트를 사용하여 Joomla를 FTP에 업로드했습니다. 예를 들어 여기서는 서버의 파일 관리자를 통해 Joomla 배포판을 서버에 업로드합니다.

아쉽게도 이 서버에서는 파일 관리자의 작업을 표시할 수 없으며 연결되어 있지 않지만 사진은 있을 것입니다.

서버의 파일 관리자를 사용하면 Joomla 폴더와 파일을 사이트의 루트 폴더에 업로드하기 위해 배포판의 압축을 풀 필요가 없습니다.

  • 서버 파일 관리자를 엽니다.
  • 사이트의 루트 폴더를 엽니다.
  • Joomla zip 아카이브를 다운로드(“다운로드” 버튼)합니다.
  • 아카이브의 압축을 푼다(“보관 해제” 버튼).
  • zip 아카이브를 삭제합니다(클릭하여 선택하고 "삭제" 버튼으로 삭제).
  • Joomla 디렉토리 및 파일에 대한 CHMOD 권한을 확인합니다. 디렉토리 CHMOD=755, 파일 CHMOD=644.

포인트 3: 번역과 함께 Joomla 설치

Joomla 설치는 브라우저에서 3~5개의 시스템 설치 창을 거치게 됩니다. 번역되지 않은 창 3개, 원하는 언어로 번역된 창 5개. 여기서는 즉시 러시아어로 번역(현지화)하겠습니다.

창 1: 사이트 데이터 입력

창 2: 데이터베이스 데이터 입력

창 3: Joomla 시스템을 준수하는지 서버 구성 확인

창 4: 설치를 진행하고 언어 설치를 진행합니다.

창 5: 사이트 패널의 언어 선택

창 6: "Installation" 디렉터리를 삭제하여 설치를 완료합니다.

"패널" 및 "사이트" 탭으로 이동합니다. 번역을 확인합니다.

다른 서버와 마찬가지로 vds에 cs 서버를 설정하는 것은 모든 관리자가 물리적 서버로 작업할 때와 마찬가지로 일반적인 방법으로 수행해야 합니다. 근본적인 차이점은 없습니다. 설치 후 바로 수행하는 것이 반드시 권장되는 유일한 작업은 새로 생성된 서버를 모니터링에 추가하는 것입니다. 이렇게 하려면 ISPmanager의 "도구"에서 "서비스" 탭으로 이동하면 됩니다. 여기서 이름이 "SAMP"이고 프로세스 이름이 "samp02xsvr"인 새 서비스를 추가해야 하며 "cd" 명령으로 시작됩니다. /홈/사용자 이름/데이터/서버/; ./samp02Xsvr &". 작동 모드는 "독립"으로 표시되고 서비스 유형은 "알 수 없음"으로 표시됩니다. "모니터링" 및 "시작" 확인란을 선택하는 것도 좋습니다.

VDS 서버는 어떻게 구성됩니까?

비즈니스 또는 기타 인터넷 프로젝트 개발의 특정 시점에서 소유자는 기존 호스팅이 더 이상 할당된 작업에 대처할 수 없다는 사실에 직면합니다. 가상 VDS 서버가 필요합니다. 이러한 개인 가상 서버를 사용하면 클라이언트의 서버 부하에 관계없이 필요한 리소스를 확보하고 안정적으로 작동하며 필요한 모든 기능을 구현할 수 있습니다.

VDS 서버 시작하기

물론 협력이 테스트 모드에서 시작되지 않는 경우 호스팅 업체와의 적절한 관계를 공식화하고 관세 및 서비스 패키지를 선택하고 비용을 지불한 후에만 자신만의 vds Windows 서버를 얻을 수 있습니다. 실제로 vds 서버를 구입하고 필요한 모든 클라이언트와 시스템을 다운로드한 다음 이를 설치하고 올바르게 구성해야 합니다. 물론, 이러한 전체 활동을 수행하려면 임차인은 적절한 자격을 갖춘 관리자와 웹 마스터를 직원으로 보유해야 합니다. 또는 (그런 기회가 있을 경우) 호스팅 업체 자체 또는 이 분야에서 일하는 다른 IT 회사로부터 서비스를 주문해야 합니다. 이는 귀하의 직접적인 참여 없이 vds 서버 설치 및 구성과 같은 활동을 수행할 수 있습니다.

VDS 서버 설정의 개념

vds 가상 서버에는 OS가 사전 설치된 상태로 제공되는 경우가 많습니다. 이는 특정 시스템 요구 사항이 있는 클라이언트에는 적합하지 않지만 전체 절차를 크게 단순화합니다. vds 서버 설정과 관련된 모든 단계는 사용되는 모든 소프트웨어의 포괄적인 설정으로 요약됩니다.

  • 프로젝트 관리 시스템;
  • 데이터베이스 서버;
  • 일반적으로 허용되는 언어(perl, php, ruby, python)를 기반으로 구축된 애플리케이션
  • 메일 서버;
  • 버전 관리 시스템;
  • 실패 알림;
  • 스크립팅 언어 통역사;
  • 웹 서버;
  • 백업 시스템.

설정을 위한 초기 데이터

vds 서버를 구입한 후에는 호스팅 업체로부터 서버의 IP 주소, 패널의 관리 로그인 및 비밀번호는 물론 VDS 자체의 경우 제어판을 찾을 수 있는 주소를 받습니다. 선택한 OS에 따라 사용자는 관리자 또는 루트 권한을 부여받으며, 그 결과 "서버로" 아이콘을 클릭하여 전체 구성을 수행할 수 있습니다.

vds 윈도우 서버 설정하기

필요한 경우 라이센스 및 보안 인증 절차를 확인하고 시간대 및 도메인 이름을 지정하고 로그 작업에 필요한 설정을 선택하며 사용자 비밀번호를 지정합니다. 도메인을 서버에 바인딩하려면 제어판에서 새 이름을 만들어야 하며, 그 후에는 도메인 설정에 액세스할 수 있습니다. 다음으로, 제어판의 "설정" 섹션 메뉴를 통해 VDS 서버를 필요에 맞게 완전히 사용자 정의할 수 있습니다.

관리는 명령줄을 사용하여 수행됩니다. 이러한 목적을 위해서는 무료 프로그램을 사용하는 것이 가장 편리합니다. 퍼티. 설치가 필요하지 않습니다. 유틸리티를 다운로드하고 실행한 후 IP 주소(기본 포트 번호는 22)를 입력하고 "열기" 버튼을 클릭하여 SSH를 통해 즉시 VDS에 연결할 수 있습니다. 그런 다음 "다음 계정으로 로그인"을 승인하라는 초대와 함께 콘솔 창이 화면에 나타납니다. 루트를 입력하고 "Enter"를 누른 다음 서비스 주문 시 받은 비밀번호를 입력하고 Enter 키를 눌러 작업을 다시 확인하세요. 이제 작업을 시작할 수 있습니다.

VDS 설정 절차 자체에는 서버에서 거의 모든 작업을 수행할 수 있는 콘솔에 텍스트 명령을 입력하는 작업이 포함됩니다. 다음은 가상 머신을 시작한 후 즉시 수행해야 하는 일련의 기본 작업과 소프트웨어 패키지의 단계별 설치웹 사이트 호스팅에 필요합니다. 예제는 가장 일반적인 두 가지 Linux 제품군인 Debian(예: 인기 있는 Ubuntu 포함)과 Centos(Centos 자체, Fedora 및 기타 여러 가지 포함)에 맞게 조정되었습니다.

주목! VDS에 설치된 OS 버전 Bitrix 6의 경우 LEMP 설치가 필요하지 않습니다!

초기 VDS 설정

소프트웨어 업데이트

글로벌 업데이트로 VDS 설정을 시작해야 합니다. 다음과 같이 Debian과 유사한 운영 체제에서 업데이트를 실행할 수 있습니다.

Apt-get 업데이트 && apt-get 업그레이드

Centos의 경우 명령이 다릅니다.

업데이트 프로세스 중에 새 패키지를 설치할 것인지 묻는 메시지가 표시됩니다. Y 키를 사용하여 '예'라고 대답하고 "Enter"를 눌러 선택을 확인합니다.

새 사용자 추가

루트 계정으로 서버를 사용하는 것은 권장되지 않습니다. 새 사용자를 생성하고 필요한 권한을 해당 사용자에게 할당하는 것이 가장 좋습니다. Debian 계열 시스템에서는 다음 명령을 사용하여 수행됩니다.

사용자 이름 추가

여기서 사용자 이름은 원하는 사용자 이름으로 바꿔야 합니다. 완료한 후에는 비밀번호를 설정하라는 메시지가 표시되고 추가 필드를 작성하라는 메시지가 표시됩니다(필수는 아니며 비워둘 수 있습니다).

Centos로 작업할 때 다음 명령도 사용됩니다.

사용자 이름 추가

단, 비밀번호는 별도로 설정됩니다.

비밀번호 사용자 이름

루트 권한 이전

새 사용자를 생성한 후 해당 사용자에게 최고 관리자 권한을 할당해야 합니다. 그렇지 않으면 VDS를 완전히 구성할 수 없습니다. 새로 생성된 계정을 해당 그룹에 추가하면 됩니다. 데비안 계열의 ​​경우:

Gpasswd - 사용자 이름 sudo

Centos와 유사한 경우:

Gpasswd - 사용자 이름 휠

SSH 관리

보안을 위해 SSH를 통해 서버에 대한 원격 연결을 설정하는 역할을 하는 sshd_config 구성 파일을 사용하여 여러 가지 조작을 수행해야 합니다. Linux 배포판마다 편집을 위해 서로 다른 유틸리티를 사용하므로 이에 대한 명령도 약간 다릅니다. 데비안과 유사한 것들은 nano를 사용합니다:

나노 /etc/ssh/sshd_config

변경 사항을 저장하려면 Ctrl+X 키 조합을 누른 다음 Y와 “Enter” 키를 누르세요. Centos에는 vi 편집기가 포함되어 있습니다.

Vi /etc/ssh/sshd_config

정보 저장은 x 명령을 사용하여 수행되며 그 후에는 "Enter"를 눌러야 합니다.

sshd_config에서 루트 로그인을 비활성화해야 합니다.

PermitRoot로그인 예

PermitRoot로그인 없음

또한 교체하여 기본 SSH 포트를 변경합니다.

예를 들어

49152-65535 범위에서 포트 번호를 선택하는 것이 좋습니다. 이렇게 하면 다양한 Linux 서비스와의 충돌 가능성을 피할 수 있습니다. 설명된 조작 후에는 SSH를 다시 ​​시작해야 합니다. 데비안에서는 다음과 같이 수행됩니다:

서비스 SSH 다시 시작

Systemctl 다시로드 sshd

이제 새 계정으로 할당된 포트를 통해 서버에 다시 연결해야 하며 그 후에는 VDS 설정을 계속할 수 있습니다.

LEMP 설치 및 구성

대부분의 최신 CMS는 PHP 프로그래밍 언어로 작성되었습니다. 이는 유형과 기능에 관계없이 거의 모든 웹사이트를 호스팅하려면 LEMP가 필요하다는 것을 의미합니다. 이 약어는 현대적이고 매우 빠른 Nginx 웹 서버, php-fpm 인터프리터 및 MySQL 데이터베이스 관리 시스템의 조합을 나타냅니다. 설치 절차는 매우 간단하며 시간이 많이 걸리지 않습니다.

Nginx 설치

Nginx 설치부터 시작해 보겠습니다. 데비안과 유사한 배포판에서는 이 작업이 한 줄로 수행됩니다:

Sudo apt-get nginx 설치

그 후에 서버가 자동으로 시작됩니다.

Centos에서는 먼저 EPEL 저장소를 추가해야 합니다.

Sudo yum install epel-release

그 후에야 설치를 수행하십시오.

Sudo yum nginx 설치

마지막 단계는 Nginx를 시작하는 것입니다.

Sudo systemctl start nginx

MySQL 설치

Debian과 유사한 운영 체제에서 데이터베이스 서비스는 다음 명령을 사용하여 설치됩니다.

Sudo apt-get 설치 mysql-server mysql-client

이 과정에서 MySQL 관리자 비밀번호를 설정하라는 메시지가 표시됩니다.

Centos와 유사한 배포판은 동일한 기능을 가진 MySQL 대신 MariaDB의 포크를 사용합니다. 설치 후:

Sudo yum 설치 mariadb-server mariadb

데이터베이스 서버를 시작하고 시작 목록에도 추가해야 합니다.

Sudo systemctl 시작 mariadb sudo systemctl 활성화 mariadb

MySQL 설정

데이터베이스 서버의 초기 설정은 기본 소프트웨어에 포함된 특수 스크립트를 사용하여 수행됩니다.

Sudo mysql_secure_installation

실행 후 이전 단계에서 설정한 MySQL 관리자 비밀번호를 입력하라는 메시지가 표시되고 일련의 질문이 표시됩니다. 이 질문은 Y(예) 및 N(아니요) 버튼으로 대답하여 확인해야 합니다. "Enter" 키를 사용하여 선택:

  • 비밀번호를 변경하시겠습니까? (루트 비밀번호를 변경하시겠습니까?) - 아니요(N)
  • 익명 사용자를 삭제하시겠습니까? (익명 사용자를 제거하시겠습니까?) - 예(Y)
  • 슈퍼유저 권한으로 원격 인증을 거부하시겠습니까? (원격으로 루트 로그인을 허용하지 않습니까?) - 예(Y)
  • 테스트 데이터베이스를 삭제하시겠습니까? (테스트 데이터베이스를 제거하고 액세스하시겠습니까?) - 예(Y)
  • 권한 테이블을 다시 로드하시겠습니까? (지금 권한 테이블을 다시 로드하시겠습니까?) - 예(Y)

새 데이터베이스 추가

데이터베이스 관리는 MySQL 콘솔을 통해 수행됩니다. 이를 입력하려면 다음 명령을 입력해야 합니다.

동적 사이트를 호스팅하려면 엔진이 작동할 데이터베이스를 생성해야 합니다. 일반적으로 각 프로젝트마다 별도의 데이터베이스와 이를 관리할 수 있는 별도의 사용자가 생성됩니다. site_user 사용자인 sitedb 데이터베이스를 생성한 다음 후자에게 sitedb 관리 권한을 부여해 보겠습니다(제안된 이름을 다른 이름으로 바꿀 수 있음).

이는 다음과 같이 수행됩니다.

데이터베이스를 생성합니다:

CRE ATE DATABASE 사이트DB;

사용자 생성(비밀번호 대신 고유 비밀번호 입력)

사용자 만들기 site_user@localhost "비밀번호"로 식별됨;

site_user 사용자에게 sitedb 관리 권한을 이전합니다.

"비밀번호"로 식별되는 site_user@localhost에 sitedb.*에 대한 모든 권한을 부여합니다.

권한 데이터 업데이트 중:

플러시 권한;

모든 작업이 완료되면 MySQL 콘솔을 종료합니다.

PHP 설치

VDS 설정의 중요한 단계는 PHP 인터프리터를 설치하고 구성하는 것입니다. Linux 배포판마다 명령이 다릅니다. 데비안에서의 설치는 다음과 같이 수행됩니다:

Sudo apt-get 설치 php5-fpm php5-mysql

Centos에서는 약간 다릅니다.

Sudo 냠 설치 PHP php-mysql php-fpm

PHP 구성

첫 번째 단계는 php.ini 파일을 편집하는 것입니다. 데비안과 우분투에서는 다음 위치에 있습니다:

Sudo 나노 /etc/php5/fpm/php.ini

Centos와 유사한 배포판의 경우 - etc 디렉토리에 직접:

Sudo vi /etc/php.ini

두 시스템 모두에서 먼저 다음 줄의 값을 주석 처리 해제하고 변경해야 합니다.

;cgi.fix_pathinfo=1

Cgi.fix_pathinfo=0

따라서 우리는 공격자가 사이트에 대한 무단 액세스를 얻기 위해 사용할 수 있는 중요한 취약점을 해결했습니다. 이것으로 Debian에서 인터프리터 설정이 완료되었습니다. 남은 것은 PHP 프로세서를 다시 시작하는 것뿐입니다.

Sudo 서비스 php5-fpm 다시 시작

Centos에서는 www.conf 파일도 편집해야 합니다.

Sudo vi /etc/php-fpm.d/www.conf

여기서 줄을 찾아야합니다

듣기 = 127.0.0.1:9000

그리고로 교체

듣기 = /var/run/php-fpm/php-fpm.sock

우리도 변한다

Listen.owner = 아무도 없습니다. Listen.group = 아무도 없습니다.

Sudo systemctl php-fpm 시작 sudo systemctl php-fpm 활성화

디렉터리 만들기

이제 리소스 파일이 위치할 디렉터리를 만들어야 합니다. 모든 Linux 운영 체제에서는 다음 명령을 사용하여 이 작업을 수행합니다.

Sudo mkdir /var/www/sitename.ru/public_html

이 예에서는 sitename.ru를 사이트의 도메인 이름으로 바꿔야 합니다. CMS 파일은 public_html 폴더에 업로드해야 합니다. 다운로드가 완료되면 웹 서버에 제어 권한을 이전해야 합니다. Nginx를 지칭하는 데 사용되는 이름에는 차이가 있습니다. 데비안과 유사한 배포판의 경우 명령은 다음과 같습니다:

Sudo chown -R www-data:www-data /var/www/html/*

Centos에서는 다릅니다.

Sudo chown -R nginx:nginx /var/www/html/*

새로운 Nginx 호스트 추가

웹 사이트를 호스팅하기 위해 VDS를 설정하는 마지막 단계는 Nginx 가상 호스트를 추가하는 것입니다. 기본값을 편집하면 됩니다. 데비안 제품군에서는 다음과 같이 수행됩니다:

Sudo nano /etc/nginx/sites-available/default

Sudo vi /etc/nginx/conf.d/default.conf

파일을 연 후 모든 정보를 제거하고 아래에 표시된 코드로 바꾸고(sitename.ru 대신 현재 사이트 이름으로 대체) 결과를 저장합니다.

서버(수신 80; server_name sitename.ru; server_name_in_redirect off; access_log /var/log/nginx/sitename.access_log; error_log /var/log/nginx/sitename.error_log; root /var/www/sitename.ru/public_html; index index.php index.html index.htm default.html default.htm; 위치 / ( try_files $uri $uri/ /index.php?$args; ) error_page 404 /404.html 500 502 503 504 /50x.html ; 위치 = /50x.html ( 루트 /usr/share/nginx/html; ) 위치 ~ \.php$ ( try_files $uri =404; fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

남은 것은 Nginx를 다시 시작하는 것뿐입니다. Debian 배포판용 명령:

Sudo 서비스 nginx 다시 시작

Sudo systemctl 재시작 nginx

이제 가상 서버가 완전히 작동할 준비가 되었으며 웹 리소스로 직접 작업을 시작할 수 있습니다. 추가 단계는 선택한 CMS에 따라 다릅니다.