Поиск по сайту:

Как установить PrestaShop с Apache и Lets Encrypt SSL на CentOS 8


На этой странице

  1. Предпосылки
  2. Установить сервер LAMP
  3. Создание базы данных для PrestaShop
  4. Установить PrestaShop
  5. Настройка Apache для PrestaShop
  6. Настройка брандмауэра
  7. Доступ к PrestaShop
  8. Защитите PrestaShop с помощью Lets Encrypt SSL
  9. Заключение

PrestaShop — это корзина для покупок с открытым исходным кодом, написанная на PHP, используемая для создания и управления вашим онлайн-бизнесом. Он предоставляет простой и удобный в использовании интерфейс, который поможет вам запустить свой интернет-магазин за минимальное время. Он предоставляет множество функций, включая удобный интерфейс, несколько платежных шлюзов (PayPal, Google Checkout), адаптивный дизайн для мобильных устройств, бесплатную поддержку, многоязычность, аналитику, отчетность и многое другое.

В этом посте мы покажем вам, как установить PrestaShop с Apache и бесплатный SSL-сертификат Lets Encrypt на CentOS 8.

Предпосылки

  • Сервер под управлением CentOS 8.
  • Действительное доменное имя, указанное с IP-адресом вашего сервера.
  • На вашем сервере настроен пароль root.

Установить LAMP-сервер

Перед запуском на вашем сервере должен быть установлен сервер LAMP. Если он не установлен, вы можете установить его с другими расширениями PHP, используя следующую команду:

dnf install httpd mariadb-server php php-cli php-bcmath php-mysqli php-gd php-pdo php-xmlrpc php-intl php-posix php-json php-curl php-zip unzip -y

После установки всех необходимых пакетов отредактируйте файл php.ini и измените некоторые настройки по умолчанию:

nano /etc/php.ini

Измените следующие строки:

max_input_vars = 3000
post_max_size = 64M
upload_max_filesize = 64M
max_execution_time = 600
memory_limit = 256M
date.timezone = Asia/Kolkata

Сохраните и закройте файл, затем запустите службы Apache и MariaDB и включите их запуск при перезагрузке системы:

systemctl start httpd
systemctl start mariadb
systemctl enable httpd
systemctl enable mariadb

На этом этапе сервер LAMP установлен на вашем сервере.

Создать базу данных для PrestaShop

PrestaShop использует базу данных MySQL/MariaDB для хранения своих данных. Итак, вам нужно будет создать базу данных и suer для PrestaShop.

Сначала войдите в MariaDB с помощью следующей команды:

mysql

После входа в систему создайте базу данных и пользователя с помощью следующей команды:

MariaDB [(none)]> CREATE DATABASE prestashopdb;
MariaDB [(none)]> CREATE USER 'prestashopuser'@'localhost' IDENTIFIED BY 'securepassword';

Затем предоставьте все привилегии prestashopdb с помощью следующей команды:

MariaDB [(none)]> GRANT ALL PRIVILEGES ON prestashopdb. * TO 'prestashopuser'@'localhost';

Затем сбросьте привилегии и выйдите из MariaDB с помощью следующей команды:

MariaDB [(none)]> FLUSH PRIVILEGES;
MariaDB [(none)]> EXIT;

Как только вы закончите, вы можете перейти к следующему шагу.

Установить PrestaShop

Затем вам нужно будет загрузить последнюю версию PrestaShop с официальной страницы загрузки. Вы можете скачать его с помощью следующей команды:

wget https://download.prestashop.com/download/releases/prestashop_1.7.7.3.zip

После завершения загрузки разархивируйте загруженный файл в корневой веб-каталог Apache с помощью следующей команды:

unzip prestashop_1.7.7.3.zip -d /var/www/html/prestashop

Затем установите правильное право собственности на каталог prestashop, используя следующую команду:

chown -R apache:apache /var/www/html/prestashop

Как только вы закончите, вы можете перейти к следующему шагу.

Настройте Apache для PrestaShop

Далее вам нужно будет создать файл конфигурации виртуального хоста Apache для PrestaShop. Вы можете создать его с помощью следующей команды:

nano /etc/httpd/conf.d/prestashop.conf

Добавьте следующие строки:

<VirtualHost *:80>
    ServerAdmin 
    ServerName prestashop.example.com
    DocumentRoot /var/www/html/prestashop

    <Directory /var/www/html/prestashop>
        Options +FollowSymlinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog /var/log/httpd/prestashop-error_log
    CustomLog /var/log/httpd/prestashop-access_log common
</VirtualHost>

Сохраните и закройте файл, когда закончите. Затем перезапустите службу Apache, чтобы применить изменения:

systemctl restart httpd

Затем проверьте состояние службы Apache с помощью следующей команды:

systemctl status httpd

Вы должны получить следующий результат:

? httpd.service - The Apache HTTP Server
   Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
  Drop-In: /usr/lib/systemd/system/httpd.service.d
           ??php-fpm.conf
   Active: active (running) since Wed 2021-04-07 01:04:19 EDT; 2h 2min ago
     Docs: man:httpd.service(8)
 Main PID: 47841 (httpd)
   Status: "Total requests: 313; Idle/Busy workers 100/0;Requests/sec: 0.0425; Bytes served/sec: 1.2KB/sec"
    Tasks: 278 (limit: 12524)
   Memory: 35.9M
   CGroup: /system.slice/httpd.service
           ??47841 /usr/sbin/httpd -DFOREGROUND
           ??47843 /usr/sbin/httpd -DFOREGROUND
           ??47844 /usr/sbin/httpd -DFOREGROUND
           ??47845 /usr/sbin/httpd -DFOREGROUND
           ??47846 /usr/sbin/httpd -DFOREGROUND
           ??48061 /usr/sbin/httpd -DFOREGROUND

Apr 07 01:04:19 centos8 systemd[1]: Stopped The Apache HTTP Server.
Apr 07 01:04:19 centos8 systemd[1]: Starting The Apache HTTP Server...

Как только вы закончите, вы можете перейти к следующему шагу.

Настроить брандмауэр

Затем вам нужно будет разрешить порты 80 и 443 через брандмауэр. Вы можете разрешить их с помощью следующей команды:

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=https

Затем перезагрузите брандмауэр, чтобы применить изменения:

firewall-cmd --reload

Как только вы закончите, вы можете перейти к следующему шагу.

Доступ к PrestaShop

Теперь откройте веб-браузер и войдите в веб-интерфейс PrestaShop, используя URL-адрес http://prestashop.example.com. Вы будете перенаправлены на следующую страницу:

Выберите свой язык и нажмите кнопку «Далее». Вы должны увидеть следующую страницу:

Соглашаемся с лицензионным соглашением и нажимаем кнопку «Далее». Вы должны увидеть следующую страницу:

Укажите название вашего магазина, информацию о стране, информацию об учетной записи и нажмите кнопку «Далее». Вы должны увидеть следующую страницу:

Укажите имя вашей базы данных, имя пользователя базы данных, пароль и нажмите кнопку «Далее». После завершения установки вы должны увидеть следующую страницу:

Нажмите на кнопку «Управление магазином». Вы должны увидеть следующую страницу:

Теперь удалите папку установки с помощью следующей команды:

rm -rf /var/www/html/prestashop/install

Затем щелкните URL-адрес администратора PrestaShop. Вы должны увидеть следующую страницу:

Укажите имя пользователя и пароль администратора и нажмите кнопку ВХОД. Вы должны увидеть панель инструментов PrestaShop на следующей странице:

Защитите PrestaShop с помощью Lets Encrypt SSL

Затем вам нужно будет установить клиент Certbot, чтобы установить Lets Encrypt SSL для PrestaShop. Вы можете установить его с помощью следующей команды:

dnf install letsencrypt python3-certbot-apache

Затем получите и установите SSL-сертификат для вашего домена lets с помощью следующей команды:

certbot --apache -d prestashop.example.com

Вам будет предложено указать свой адрес электронной почты и принять условия обслуживания:

Saving debug log to /var/log/letsencrypt/letsencrypt.log
Plugins selected: Authenticator apache, Installer apache
Enter email address (used for urgent renewal and security notices)
 (Enter 'c' to cancel): 

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Please read the Terms of Service at
https://letsencrypt.org/documents/LE-SA-v1.2-November-15-2017.pdf. You must
agree in order to register with the ACME server. Do you agree?
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Would you be willing, once your first certificate is successfully issued, to
share your email address with the Electronic Frontier Foundation, a founding
partner of the Let's Encrypt project and the non-profit organization that
develops Certbot? We'd like to send you email about our work encrypting the web,
EFF news, campaigns, and ways to support digital freedom.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
(Y)es/(N)o: Y
Account registered.
Requesting a certificate for prestashop.example.com
Performing the following challenges:
http-01 challenge for prestashop.example.com
Waiting for verification.
Cleaning up challenges
Deploying Certificate to VirtualHost /etc/httpd/conf.d/prestashop.conf
Redirecting all traffic on port 80 to ssl in /etc/httpd/conf.d/prestashop.conf

- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Congratulations! You have successfully enabled https://prestashop.example.com
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Subscribe to the EFF mailing list (email: ).


IMPORTANT NOTES:
 - Congratulations! Your certificate and chain have been saved at:
   /etc/letsencrypt/live/prestashop.example.com/fullchain.pem
   Your key file has been saved at:
   /etc/letsencrypt/live/prestashop.example.com/privkey.pem
   Your certificate will expire on 2021-06-09. To obtain a new or
   tweaked version of this certificate in the future, simply run
   certbot again with the "certonly" option. To non-interactively
   renew *all* of your certificates, run "certbot renew"
 - If you like Certbot, please consider supporting our work by:

   Donating to ISRG / Let's Encrypt:   https://letsencrypt.org/donate
   Donating to EFF:                    https://eff.org/donate-le

Теперь вы можете безопасно получить доступ к своему веб-сайту, используя переадресацию URL-адресов по устройствам, посмотрите здесь.

Заключение

Поздравляем! вы успешно установили PrestaShop с Apache и Lets Encrypt SSL на CentOS 8. Теперь вы можете добавить свой продукт в PrestaShop и начать продавать через Интернет. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.