Как установить PrestaShop с Apache и Lets Encrypt SSL на CentOS 8
На этой странице
- Предпосылки
- Установить сервер LAMP
- Создание базы данных для PrestaShop
- Установить PrestaShop
- Настройка Apache для PrestaShop
- Настройка брандмауэра
- Доступ к PrestaShop
- Защитите PrestaShop с помощью Lets Encrypt SSL
- Заключение
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 и начать продавать через Интернет. Не стесняйтесь спрашивать меня, если у вас есть какие-либо вопросы.