OpenBSD como uma solução de comércio eletrônico com PrestaShop e Apache

Introdução

Este tutorial demonstra o OpenBSD como uma solução de comércio eletrônico usando o PrestaShop e o Apache.

O Apache é necessário porque o PrestaShop possui requisitos complexos de reescrita de URL que não são suportados pelo servidor da Web incorporado do OpenBSD, httpd. Este tutorial usa certificados autoassinados. Por favor, use um certificado verificado para produção.

Tarefas de preparação

Crie temporariamente um usuário comum com permissão para usar doassem uma senha. Este acesso será removido após a instalação.

user add -c "Example User" -m -G wheel -L staff auser
passwd auser
echo 'permit nopass keepenv :wheel' > /etc/doas.conf

Adicione o repositório de pacotes do OpenBSD.

echo 'https://cdn.openbsd.org/pub/OpenBSD' > /etc/installurl

Encaminhe e-mails diários de status e segurança para o seu endereço.

echo '[email protected]' > /root/.forward

Defina o nome do host do servidor.

echo 'www.example.com' > /etc/myname
hostname www.example.com

Adicione o FQDN e o endereço IP do seu servidor a /etc/hosts.
Substitua 192.0.2.1pelo seu endereço IP Vultr.

127.0.0.1    localhost
::1          localhost
192.0.2.1    www.example.com

Adicione os pacotes necessários para o PrestaShop e o Apache. Escolha as versões mais recentes quando solicitado.

doas su
pkg_add apache-httpd php php-curl php-gd php-intl php-pdo_mysql php-zip mariadb-client mariadb-server wget unzip

Criou um certificado SSL autoassinado para teste. Defina Nome comum como o FQDN do seu servidor, por exemplo, www.example.com.

openssl req -x509 -new -nodes -newkey rsa:4096 -keyout /etc/ssl/private/example.com.key -out /etc/ssl/example.com.crt -days 3650 -sha256
chmod 0600 /etc/ssl/private/example.com.key

Faça o download e extraia o PrestaShop

Localize o URL da versão mais recente do PrestaShop , faça o download /tmpe extraia para /var/www/htdocs/prestashop.

cd /tmp
wget <https://download.prestashop.com/download/releases/prestashop_1.7.6.4.zip>
unzip prestashop_1.7.6.4.zip -d /var/www/htdocs/prestashop
chown -R www:www /var/www/htdocs/prestashop

Configurar o firewall do OpenBSD (pf)

Configure o firewall para bloquear todo o tráfego de entrada, exceto ssh , www e https .

Faça uma cópia de segurança de /etc/pf.conf.

cp /etc/pf.conf /etc/pf.conf.bak

Edite /etc/pf.confcomo mostrado.

set skip on lo

block in
pass out  

pass in on egress inet proto tcp to port {ssh, www, https} \
    flags S/SA keep state

Teste e ative as regras do firewall.

doas pfctl -nf /etc/pf.conf
doas pfctl -f /etc/pf.conf

Configurar o OpenSMTPD como uma retransmissão de email

Faça backup do seu /etc/mail/smtpd.confarquivo.

cp /etc/mail/smtpd.conf /etc/mail/smtpd.conf.bak

Edite /etc/mail/smtpd.confcomo mostrado abaixo.

Notas: * A definição da tabela para segredos contém o nome de usuário e a senha da retransmissão de email. * A ação de saída procura o nome de usuário e senha sob o rótulo prestashopde /etc/mail/secretse relés o e-mail através do seu servidor de e-mail.

    table aliases file:/etc/mail/aliases
    table secrets file:/etc/mail/secrets

    listen on lo0

    action "local_mail" mbox alias <aliases>
    action "outbound" relay host smtp+tls://[email protected]:587 \
        tls no-verify auth <secrets>

    match from local for local action "local_mail"
    match from local for any action "outbound"

Crio /etc/mail/secrets

Substitua o endereço de email e a senha pelas credenciais usadas no seu servidor de email.

echo "prestashop [email protected]:password" > /etc/mail/secrets

Definir permissões para proteger /etc/mail/secrets

chmod 0600 /etc/secrets

Teste o arquivo de configuração quanto a erros e reinicie o daemon smtpd.

smtpd -n
rcctl restart smtpd

Configurar o ambiente PHP e PHP-FPM

Configure o processo PHP-FPM para escutar em um soquete TCP em vez de um soquete de domínio UNIX.

Faça a seguinte alteração abaixo para o /etc/php-fpm.confarquivo.

...
; If using a TCP port, never expose this to a public network.
;listen = /var/www/run/php-fpm.sock
listen = 127.0.0.1:9000

Faça algumas alterações adicionais no ambiente PHP em /etc/php-7.3.ini. Esse nome de arquivo pode mudar um pouco se a versão for mais recente que 7.3. Estas mudanças:

  • Permitir o upload de arquivos maiores.
  • Desative o ambiente chroot.
  • Configure o PHP para enviar email via sendmail.

    ; Default Value: not set
    ;chroot = /var/www
    ...
    ; Maximum allowed size for uploaded files.
    ; <http://php.net/upload-max-filesize>
    upload_max_filesize = 6M
    ...
    ; For Unix only.  You may supply arguments as well (default: "sendmail -t -i").
    ; <http://php.net/sendmail-path>
    ;sendmail_path =
    sendmail_path = /usr/sbin/sendmail -t -i
    ...
    ; Whether to allow the treatment of URLs (like <http://> or <ftp://)> as files.
    ; <http://php.net/allow-url-fopen>
    allow_url_fopen = On
    ...
    ; Maximum size of POST data that PHP will accept.
    ; Its value may be 0 to disable the limit. It is ignored if POST data reading
    ; is disabled through enable_post_data_reading.
    ; <http://php.net/post-max-size>
    post_max_size = 12M
    

    Ative os plugins do PHP.

    cp /etc/php-7.3.sample/* /etc/php-7.3/.

Ative e inicie o daemon PHP-FPM. O nome do daemon pode ser ligeiramente diferente se a versão for mais recente.

rcctl enable php73_fpm
rcctl start php73_fpm

Configurando o MariaDB

O MariaDB fornece o back-end do banco de dados para o PrestaShop. Como o MariaDB precisa de mais arquivos abertos do que a classe padrão permite, crie uma classe especial no /etc/login.conf.

Na parte inferior do arquivo, adicione as seguintes linhas:

mysqld:\
      :openfiles-cur=1024:\
      :openfiles-max=2048:\
      :tc=daemon:

Instale o MariaDB.

 doas su
 mysql_install_db
 rcctl enable mysqld
 rcctl start mysqld

Configure a segurança do MariaDB.

 mysql_secure_installation

Crie o banco de dados PrestaShop. Use uma senha forte.

mysql -u root
CREATE DATABASE prestashop;
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password123';
FLUSH PRIVILEGES;
EXIT

Configurando o Apache

Cópia de segurança /etc/apache2/httpd2.conf

cp /etc/apache2/httpd2.conf /etc/apache2/httpd2.conf.bak

Faça as seguintes alterações em /etc/apache2/httpd2.conf, usando #para ativar e desativar os módulos.

Listen 443
...
LoadModule mpm_event_module /usr/local/lib/apache2/mod_mpm_event.so
#LoadModule mpm_prefork_module /usr/local/lib/apache2/mod_mpm_prefork.so
LoadModule proxy_module /usr/local/lib/apache2/mod_proxy.so
LoadModule proxy_fcgi_module /usr/local/lib/apache2/mod_proxy_fcgi.so
LoadModule ssl_module /usr/local/lib/apache2/mod_ssl.so
LoadModule rewrite_module /usr/local/lib/apache2/mod_rewrite.so
...
ServerAdmin [email protected]
ServerName 192.0.2.1:80
  • Várias outras alterações /etc/apache2/httpd2.confocorrem na parte inferior do arquivo. Remova #das instruções de inclusão indicadas.

  • Adicione as linhas de hospedagem virtual por último.

    # Server-pool management (MPM specific)
    Include /etc/apache2/extra/httpd-mpm.conf
    ...
    # Virtual Hosts
    IncludeOptional /etc/apache2/sites/*.conf
    

Crie o /etc/apache2/sitesdiretório

mkdir /etc/apache2/sites

Crie /etc/apache2/sites/example.confcom as seguintes informações:

<VirtualHost *:80>
  ServerName example.com
  ServerAlias www.example.com
  ServerAdmin [email protected]
  DocumentRoot "/var/www/htdocs/prestashop"

  <Directory "/var/www/htdocs/prestashop">
    Options -Indexes +Multiviews +FollowSymLinks
    AllowOverride All
    <Limit GET POST OPTIONS>
    </Limit>
    Require all granted
  </Directory>

</VirtualHost>

<VirtualHost *:443>
  ServerName example.com
  ServerAlias www.example.com
  ServerAdmin [email protected]
  DocumentRoot "/var/www/htdocs/prestashop"

  <Directory "/var/www/htdocs/prestashop">
    Options -Indexes +Multiviews +FollowSymLinks
    AllowOverride All
    <Limit GET POST OPTIONS>
    </Limit>
    Require all granted
  </Directory>

  SSLEngine On
  SSLCertificateFile "/etc/ssl/example.com.crt"
  SSLCertificateKeyFile "/etc/ssl/private/example.com.key"
  SSLCipherSuite HIGH:!aNULL

</VirtualHost>

Configure o módulo proxy do Apache adicionando o seguinte a /etc/apache2/sites/example.conf

<IfModule proxy_module>
  <IfModule dir_module>
    DirectoryIndex index.php
  </IfModule>
  <FilesMatch "\.php$">
    SetHandler "proxy:fcgi://127.0.0.1:9000"
  </FilesMatch>
</IfModule>

Teste a configuração, ative e inicie o Apache.

apachectl configtest
rcctl enable apache2
rcctl start apache2

Verifique se o Apache está escutando nas portas 80 e 443.

netstat -ln -finet

Active Internet connections (only servers)
Proto   Recv-Q Send-Q  Local Address          Foreign Address        (state)
tcp          0      0  *.443                  *.*                    LISTEN
tcp          0      0  127.0.0.1.25           *.*                    LISTEN
tcp          0      0  *.22                   *.*                    LISTEN
tcp          0      0  *.80                   *.*                    LISTEN
tcp          0      0  127.0.0.1.3306         *.*                    LISTEN
tcp          0      0  127.0.0.1.9000         *.*                    LISTEN

Instale o PrestaShop

Navegue para o seu site em http://www.example.com. O assistente de instalação do PrestaShop será iniciado.

Depois de concluir a instalação, observe os links administrativos e de frente de loja e exclua o diretório /var/www/htdocs/prestashop/install.

Ative o SSL.

  • Clique em Parâmetros da loja
  • Clique em Geral
  • Ative o SSL para todas as partes da sua loja

Mude sua senha administrativa.

  • Clique em Parâmetros avançados
  • Clique em Equipe
  • Mude sua senha.

Algumas tarefas finais

Faça backup da sua loja e seu banco de dados:

cd /var/www/htdocs
doas tar cvfz /home/auser/prestashop.tar.gz prestashop/
doas mysqldump -u prestashop -p prestashop | gzip -4 > /home/auser/prestashop.sql.tar.gz
doas chown auser:auser /home/auser/prestashop*

Remova o acesso doas da sua conta de usuário recriando o doas.confarquivo.

echo 'permit keepenv :wheel' > /etc/doas.conf


Leave a Comment

Como instalar o Blacklistd no FreeBSD 11.1

Como instalar o Blacklistd no FreeBSD 11.1

Introdução Qualquer serviço conectado à Internet é um alvo em potencial para ataques de força bruta ou acesso injustificado. Existem ferramentas como fail2ba

Configure o OpenBSD 5.6 com criptografia de disco completo

Configure o OpenBSD 5.6 com criptografia de disco completo

Este tutorial mostrará como configurar o OpenBSD 5.6 com um disco totalmente criptografado no seu Vultr VPS. Uma observação sobre a parte de criptografia: a maioria dos datacenters em torno do

Como usar o Sudo no Debian, CentOS e FreeBSD

Como usar o Sudo no Debian, CentOS e FreeBSD

Usar um usuário sudo para acessar um servidor e executar comandos no nível raiz é uma prática muito comum entre o Linux e o Unix Systems Administrator. O uso de um sud

Como instalar o osTicket no FreeBSD 12

Como instalar o osTicket no FreeBSD 12

Usando um sistema diferente? o osTicket é um sistema de bilheteria de suporte ao cliente de código aberto. O código fonte do osTicket está hospedado publicamente no Github. Neste tutorial

Como instalar o Osclass no FreeBSD 12

Como instalar o Osclass no FreeBSD 12

Usando um sistema diferente? Osclass é um projeto de código aberto que permite criar facilmente um site classificado sem nenhum conhecimento técnico. Its sourc

Como instalar o Wiki.js no FreeBSD 11

Como instalar o Wiki.js no FreeBSD 11

Usando um sistema diferente? O Wiki.js é um aplicativo wiki moderno, de código aberto e gratuito, construído em Node.js, MongoDB, Git e Markdown. O código-fonte do Wiki.js é publicl

Como instalar o Directus 6.4 CMS em um FreeBSD 11 FAMP VPS

Como instalar o Directus 6.4 CMS em um FreeBSD 11 FAMP VPS

Usando um sistema diferente? O Directus 6.4 CMS é um sistema de gerenciamento de conteúdo sem cabeça (CMS) poderoso e flexível, gratuito e de código aberto que fornece

Instalando o Fork CMS no FreeBSD 12

Instalando o Fork CMS no FreeBSD 12

Usando um sistema diferente? Fork é um CMS de código aberto escrito em PHP. O código fonte do Forks está hospedado no GitHub. Este guia mostra como instalar o Fork CM

Criar arquivo de permuta no FreeBSD 10

Criar arquivo de permuta no FreeBSD 10

Pronto para uso, os servidores Vultr FreeBSD não estão configurados para incluir espaço de troca. Se sua intenção é uma instância de nuvem descartável, você provavelmente não precisará

Como redimensionar um disco no FreeBSD

Como redimensionar um disco no FreeBSD

O sistema operacional FreeBSD utiliza o UFS (Unix File System) para seu sistema de arquivos de partições raiz; também conhecido como freebsd-ufs No caso de uma atualização

Como instalar o Selfoss RSS Reader em um FreeBSD 11 FAMP VPS

Como instalar o Selfoss RSS Reader em um FreeBSD 11 FAMP VPS

Usando um sistema diferente? O Selfoss RSS Reader é um aplicativo gratuito e de código aberto, multi-hospedado na Web, de transmissão ao vivo, mashup e feed de notícias (RSS / Atom)

Como instalar o Craft CMS no FreeBSD 12

Como instalar o Craft CMS no FreeBSD 12

Usando um sistema diferente? Introdução O Craft CMS é um CMS de código aberto escrito em PHP. O código-fonte do Craft CMS está hospedado no GitHub. Este guia irá mostrar-lhe

Como instalar o Backdrop CMS em um FreeBSD 11 FAMP VPS

Como instalar o Backdrop CMS em um FreeBSD 11 FAMP VPS

Usando um sistema diferente? O Backdrop CMS 1.8.0 é um CMS (Content Management System) simples e flexível, fácil de usar, gratuito e de código aberto que permite que

Como instalar o ImpressPages CMS 5.0 em um FreeBSD 11 FAMP VPS

Como instalar o ImpressPages CMS 5.0 em um FreeBSD 11 FAMP VPS

Usando um sistema diferente? O ImpressPages CMS 5.0 é um sistema de gerenciamento de conteúdo (CMS) simples e eficaz, gratuito e de código aberto, fácil de usar e baseado em MVC

Como instalar o fórum NodeBB no FreeBSD 12

Como instalar o fórum NodeBB no FreeBSD 12

Usando um sistema diferente? NodeBB é um software de fórum baseado em Node.js. Ele utiliza soquetes da web para interações instantâneas e notificações em tempo real. The NodeB

Instale o eSpeak no FreeBSD 12

Instale o eSpeak no FreeBSD 12

Usando um sistema diferente? O ESpeak pode gerar arquivos de áudio de conversão de texto em fala (TTS). Isso pode ser útil por vários motivos, como criar seu próprio Turim

Como instalar o LimeSurvey CE no FreeBSD 12

Como instalar o LimeSurvey CE no FreeBSD 12

Usando um sistema diferente? LimeSurvey é um software de pesquisa de código aberto escrito em PHP. O código fonte do LimeSurvey está hospedado no GitHub. Este guia irá mostrar-lhe

Como instalar o Automad CMS no FreeBSD 12

Como instalar o Automad CMS no FreeBSD 12

Usando um sistema diferente? Automad é um sistema de gerenciamento de conteúdo (CMS) baseado em arquivo de código aberto e um mecanismo de modelo escrito em PHP. O código-fonte Automad i

Como instalar o ProcessWire CMS 3.0 em um FreeBSD 11 FAMP VPS

Como instalar o ProcessWire CMS 3.0 em um FreeBSD 11 FAMP VPS

Usando um sistema diferente? O ProcessWire CMS 3.0 é um CMS (Content Management System) simples, flexível e poderoso, de código aberto e gratuito. ProcessWire CMS 3.

Instalando o Akaunting no FreeBSD 12

Instalando o Akaunting no FreeBSD 12

Usando um sistema diferente? Introdução O Akaunting é um software de contabilidade on-line gratuito e de código aberto desenvolvido para pequenas empresas e freelancers. É eu

A IA pode lutar contra o aumento do número de ataques de ransomware

A IA pode lutar contra o aumento do número de ataques de ransomware

Os ataques de ransomware estão aumentando, mas a IA pode ajudar a lidar com os vírus de computador mais recentes? AI é a resposta? Leia aqui para saber se é AI boone ou bane

ReactOS: Este é o futuro do Windows?

ReactOS: Este é o futuro do Windows?

ReactOS, um sistema operacional de código aberto e gratuito está aqui com a versão mais recente. Será que ela pode atender às necessidades dos usuários modernos do Windows e derrubar a Microsoft? Vamos descobrir mais sobre esse estilo antigo, mas uma experiência de sistema operacional mais recente.

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

Fique conectado por meio do aplicativo WhatsApp Desktop 24 * 7

O Whatsapp finalmente lançou o aplicativo Desktop para usuários de Mac e Windows. Agora você pode acessar o Whatsapp do Windows ou Mac facilmente. Disponível para Windows 8+ e Mac OS 10.9+

Como a IA pode levar a automação de processos ao próximo nível?

Como a IA pode levar a automação de processos ao próximo nível?

Leia isto para saber como a Inteligência Artificial está se tornando popular entre as empresas de pequena escala e como está aumentando as probabilidades de fazê-las crescer e dar vantagem a seus concorrentes.

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

A atualização do suplemento do macOS Catalina 10.15.4 está causando mais problemas do que resolvendo

Recentemente, a Apple lançou o macOS Catalina 10.15.4, uma atualização suplementar para corrigir problemas, mas parece que a atualização está causando mais problemas, levando ao bloqueio de máquinas mac. Leia este artigo para saber mais

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

13 Ferramentas de Extração de Dados Comerciais de Big Data

O que é um sistema de arquivos de registro no diário e como ele funciona?

O que é um sistema de arquivos de registro no diário e como ele funciona?

Nosso computador armazena todos os dados de uma maneira organizada conhecida como sistema de arquivos Journaling. É um método eficiente que permite ao computador pesquisar e exibir arquivos assim que você clicar em search.https: //wethegeek.com/? P = 94116 & preview = true

Singularidade tecnológica: um futuro distante da civilização humana?

Singularidade tecnológica: um futuro distante da civilização humana?

À medida que a ciência evolui em um ritmo rápido, assumindo muitos de nossos esforços, os riscos de nos sujeitarmos a uma singularidade inexplicável também aumentam. Leia, o que a singularidade pode significar para nós.

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

Uma visão sobre 26 técnicas analíticas de Big Data: Parte 1

O impacto da inteligência artificial na saúde 2021

O impacto da inteligência artificial na saúde 2021

A IA na área da saúde deu grandes saltos nas últimas décadas. Portanto, o futuro da IA ​​na área da saúde ainda está crescendo dia a dia.