기계적 인조 인간

우분투 18.04에 Prestashop을 설치하는 방법

차례:

Anonim

PrestaShop은 무료 오픈 소스 전자 상거래 플랫폼입니다. PHP 및 MySQL을 기반으로하며 무료 및 프리미엄 플러그인 및 테마로 확장 할 수 있습니다.

PrestaShop은 직관적 인 관리 인터페이스, 다중 지불 게이트웨이, 다국어, 분석 및보고와 같은 기능을 통해 많은 온라인 판매자에게 적합한 플랫폼입니다.

이 튜토리얼에서는 Ubuntu 18.04 서버에 PrestaShop을 설치하는 방법을 보여줍니다. Nginx를 웹 서버, 최신 PHP 7.2 및 MySQL / MariaDB를 데이터베이스 서버로 사용합니다.

전제 조건

이 학습을 계속하기 전에 다음 전제 조건을 충족하는지 확인하십시오.

  • 공개 서버 IP를 가리키는 도메인 이름이 있어야합니다. example.com 을 사용합니다. Nginx는 다음 지침에 따라 Ubuntu 서버에 설치됩니다. 사용자 정보를 암호화하기 위해 도메인에 설치된 SSL 인증서. 다음 지침에 따라 무료 Let 's Encrypt SSL 인증서를 설치할 수 있습니다.

시스템 패키지를 최신 버전으로 업데이트하고 압축 해제 유틸리티를 설치하십시오.

sudo apt update && sudo apt upgrade sudo apt install unzip

MySQL 데이터베이스 생성

PrestaShop은 정보를 MySQL 데이터베이스에 저장합니다.

MySQL 또는 MariaDB가 서버에 설치되어 있으면이 단계를 건너 뛸 수 있습니다. 그렇지 않으면 다음을 입력하여 Ubuntu의 기본 리포지토리에서 MySQL 5.7 서버 패키지를 설치하십시오.

sudo apt install mysql-server mysql-client 신규 MySQL 설치의 경우 mysql_secure_installation 명령을 실행하여 MySQL 서버의 보안을 향상시키는 것이 좋습니다.

데이터베이스를 작성하려면 mysql 쉘에 로그인하십시오.

sudo mysql

MySQL 셸 내에서 다음 SQL 문을 실행하여 prestashop 이라는 새 데이터베이스를 만듭니다.

CREATE DATABASE prestashop;

그런 다음 prestashop 이라는 MySQL 사용자 계정을 만들고 다음 명령을 실행하여 사용자에게 필요한 권한을 부여하십시오.

GRANT ALL ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'change-with-strong-password'; 강력한 비밀번호 change-with-strong-password 를 변경하는 것을 잊지 마십시오.

완료되면 다음을 입력하여 MySQL 콘솔을 종료하십시오.

EXIT;

PHP 설치 및 구성

PHP 7.2는 Ubuntu 18.04의 기본 PHP 버전이며 PrestaShop에서 완벽하게 지원되고 권장됩니다.

다음 명령을 실행하여 PHP 및 모든 필수 PHP 모듈을 설치하십시오.

sudo apt install php7.2-common php7.2-cli php7.2-fpm php7.2-opcache php7.2-gd php7.2-mysql php7.2-curl php7.2-intl php7.2-xsl php7.2-mbstring php7.2-zip php7.2-bcmath php7.2-soap

설치 과정이 완료되면 PHP-FPM 서비스가 자동으로 시작됩니다. 다음을 입력하여 확인할 수 있습니다.

sudo systemctl status php7.2-fpm

출력은 다음과 같아야합니다.

* php7.2-fpm.service - The PHP 7.2 FastCGI Process Manager Loaded: loaded (/lib/systemd/system/php7.2-fpm.service; enabled; vendor preset: enabled) Active: active (running) since Sun 2019-03-24 11:53:33 PDT; 14s ago Docs: man:php-fpm7.2(8) Main PID: 15853 (php-fpm7.2) Status: "Processes active: 0, idle: 2, Requests: 0, slow: 0, Traffic: 0req/sec"

다음 sed 명령을 실행하여 권장 PHP 옵션을 설정하십시오.

sudo sed -i "s/memory_limit =.*/memory_limit = 1024M/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/upload_max_filesize =.*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/zlib.output_compression =.*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/upload_max_filesize =.*/upload_max_filesize = 256M/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/zlib.output_compression =.*/zlib.output_compression = on/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/max_execution_time =.*/max_execution_time = 18000/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/;date.timezone.*/date.timezone = UTC/" /etc/php/7.2/fpm/php.ini sudo sed -i "s/;opcache.save_comments.*/opcache.save_comments = 1/" /etc/php/7.2/fpm/php.ini

PrestaShop 다운로드

이 기사를 작성할 당시 최신 안정 버전의 PrestaShop은 버전 1.7.6.2 입니다.

다음 wget 명령을 사용하여 PrestaShop 다운로드 페이지에서 최신 버전의 PrestaShop을 다운로드하십시오.

cd /tmp wget

다운로드가 완료되면 PrestaShop 파일을 저장할 디렉토리를 만듭니다.

sudo mkdir -p /var/www/html/example.com

다음으로 PrestaShop 아카이브를 추출하십시오.

unzip prestashop_*.zip

이 아카이브에는 모든 PrestaShop 파일이 포함 된 다른 zip 파일 "prestashop.zip"이 포함되어 있습니다. 파일을 도메인의 문서 루트 디렉토리로 추출하십시오.

sudo unzip prestashop.zip -d /var/www/html/example.com

다음 chown 명령을 사용하여 웹 서버가 사이트의 파일 및 디렉토리에 완전히 액세스 할 수 있도록 올바른 권한을 설정하십시오.

sudo chown -R www-data: /var/www/html

Nginx 구성

이제 우분투 서버에 SSL 인증서가 설치된 Nginx가 있어야합니다. 그렇지 않은 경우이 학습서의 전제 조건을 확인하십시오.

텍스트 편집기를 열고 다음 파일을 작성하십시오.

sudo nano /etc/nginx/sites-available/example.com /etc/nginx/sites-available/example.com

server { listen 80; listen 443 ssl http2; server_name example.com www.example.com; root /var/www/html/example.com; index index.php; # SSL parameters ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_trusted_certificate /etc/letsencrypt/live/example.com/chain.pem; include snippets/ssl.conf; include snippets/letsencrypt.conf; # Cloudflare / Max CDN fix location ~* \.(eot|otf|ttf|woff(?:2)?)$ { add_header Access-Control-Allow-Origin *; } # Do not save logs for these location = /favicon.ico { auth_basic off; allow all; log_not_found off; access_log off; } location = /robots.txt { auth_basic off; allow all; log_not_found off; access_log off; } # Images rewrite ^/()(-*)?(-+)?/.+.jpg$ /img/p/$1/$1$2$3.jpg last; rewrite ^/()()(-*)?(-+)?/.+.jpg$ /img/p/$1/$2/$1$2$3$4.jpg last; rewrite ^/()()()(-*)?(-+)?/.+.jpg$ /img/p/$1/$2/$3/$1$2$3$4$5.jpg last; rewrite ^/()()()()(-*)?(-+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$1$2$3$4$5$6.jpg last; rewrite ^/()()()()()(-*)?(-+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$1$2$3$4$5$6$7.jpg last; rewrite ^/()()()()()()(-*)?(-+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$1$2$3$4$5$6$7$8.jpg last; rewrite ^/()()()()()()()(-*)?(-+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$1$2$3$4$5$6$7$8$9.jpg last; rewrite ^/()()()()()()()()(-*)?(-+)?/.+.jpg$ /img/p/$1/$2/$3/$4/$5/$6/$7/$8/$1$2$3$4$5$6$7$8$9$10.jpg last; rewrite ^/c/(+)(-*)(-+)?/.+.jpg$ /img/c/$1$2$3.jpg last; rewrite ^/c/(+)(-+)?/.+.jpg$ /img/c/$1$2.jpg last; # AlphaImageLoader for IE and fancybox rewrite ^images_ie/?(+)\.(jpe?g|png|gif)$ js/jquery/plugins/fancybox/images/$1.$2 last; # Web service API rewrite ^/api/?(.*)$ /webservice/dispatcher.php?url=$1 last; # Installation sandbox rewrite ^(/install(?:-dev)?/sandbox)/(.*) /$1/test.php last; #Change this block to your admin folder location /admin_CHANGE_ME { if (!-e $request_filename) { rewrite ^/.*$ /admin_CHANGE_ME/index.php last; } } # File security #.htaccess.DS_Store.htpasswd etc location ~ /\. { deny all; } # Source code directories location ~ ^/(app|bin|cache|classes|config|controllers|docs|localization|override|src|tests|tools|translations|travis-scripts|vendor|var)/ { deny all; } # Prevent exposing other sensitive files location ~ \.(yml|log|tpl|twig|sass)$ { deny all; } # Prevent injection of php files location /upload { location ~ \.php$ { deny all; } } location /img { location ~ \.php$ { deny all; } } # PHP FPM part location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock; } }

example.com을 PrestaShop 도메인으로 바꾸고“admin_CHANGE_ME”를 관리자 디렉토리로 바꾸는 것을 잊지 마십시오. Prestashop 루트 디렉토리의 내용을 나열하여 디렉토리 이름을 찾을 수 있습니다.

sudo ls -l /var/www/html/example.com | grep admin

또한 SSL 인증서 파일의 올바른 경로를 사용해야합니다. 이 구성에 사용 된 스 니펫은이 안내서에서 작성됩니다.

Nginx 서비스를 다시 시작하기 전에 구문 오류에 대한 구성을 확인하십시오.

sudo nginx -t

출력은 다음과 같아야합니다.

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful

마지막으로 다음을 입력하여 Nginx 서비스를 다시 시작하십시오.

sudo systemctl restart nginx

PrestaShop 설치

PrestaShop이 다운로드되고 서버 구성이 완료되었으므로 웹 인터페이스를 통해 설치를 완료 할 수 있습니다.

브라우저를 열고 도메인을 입력하면 다음과 유사한 화면이 나타납니다.

보안상의 이유로 설치 디렉토리를 삭제해야합니다. 그렇게하려면 터미널로 돌아가서 다음 rm 명령을 입력하십시오.

sudo rm -rf /var/www/html/example.com/install

PrestaShop 관리 대시 보드에 액세스하려면“상점 관리”버튼을 클릭하십시오. 이메일과 비밀번호를 입력하면 관리 대시 보드로 리디렉션됩니다.

여기에서 PrestaShop 설치 사용자 정의를 시작하고 새 제품을 추가 할 수 있습니다.

결론

Ubuntu 18.04 서버에 PrestaShop을 성공적으로 설치했습니다. PrestaShop Documentation은 PrestaShop 설치를 관리하는 방법에 대한 자세한 정보를 제공하는 좋은 출발점입니다.

우분투 prestashop mysql PHP nginx 전자 상거래