Повстання машин: застосування ШІ в реальному світі
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
У цьому посібнику демонструється OpenBSD як рішення для електронної комерції з використанням PrestaShop і Apache.
Apache потрібен, оскільки PrestaShop має складні вимоги до перезапису URL-адрес, які не підтримуються вбудованим веб-сервером OpenBSD, httpd. У цьому посібнику використовуються самопідписані сертифікати. Для виробництва використовуйте перевірений сертифікат.
Тимчасово створити звичайного користувача, якому дозволено використовувати doasбез пароля. Цей доступ буде видалено після налаштування.
user add -c "Example User" -m -G wheel -L staff auser
passwd auser
echo 'permit nopass keepenv :wheel' > /etc/doas.conf
Додайте сховище пакетів OpenBSD.
echo 'https://cdn.openbsd.org/pub/OpenBSD' > /etc/installurl
Пересилайте щоденні електронні листи про статус та безпеку на вашу адресу.
echo 'hostmaster@example.com' > /root/.forward
Встановіть ім'я хоста сервера.
echo 'www.example.com' > /etc/myname
hostname www.example.com
Додайте FQDN та IP-адресу вашого сервера до /etc/hosts.
Замініть 192.0.2.1на свою IP-адресу Vultr.
127.0.0.1 localhost
::1 localhost
192.0.2.1 www.example.com
Додайте необхідні пакети для PrestaShop і Apache. Коли буде запропоновано, виберіть найновіші версії.
doas su
pkg_add apache-httpd php php-curl php-gd php-intl php-pdo_mysql php-zip mariadb-client mariadb-server wget unzip
Створено самопідписаний сертифікат SSL для тестування. Встановіть Загальне ім’я для FQDN вашого сервера, наприклад 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
Знайдіть URL-адресу останньої версії PrestaShop , завантажте /tmpта розпакуйте її /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
Налаштуйте брандмауер на блокування всього вхідного трафіку, крім ssh , www та https .
Зробіть резервну копію /etc/pf.conf.
cp /etc/pf.conf /etc/pf.conf.bak
Відредагуйте, /etc/pf.confяк показано.
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
Перевірте та активуйте правила брандмауера.
doas pfctl -nf /etc/pf.conf
doas pfctl -f /etc/pf.conf
Скопіюйте свій /etc/mail/smtpd.confфайл.
cp /etc/mail/smtpd.conf /etc/mail/smtpd.conf.bak
Відредагуйте, /etc/mail/smtpd.confяк показано нижче.
Примітки: * Визначення таблиці для секретів містить ім’я користувача та пароль для передачі пошти. * Вихідне дію переглядає своє ім'я користувача та пароль під ярликом prestashopв /etc/mail/secretsі ретранслюють електронну пошту через сервер електронної пошти.
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://prestashop@mail.example.com:587 \
tls no-verify auth <secrets>
match from local for local action "local_mail"
match from local for any action "outbound"
Створюйте /etc/mail/secrets
Замініть адресу електронної пошти та пароль обліковими даними, які ви використовуєте для свого сервера електронної пошти.
echo "prestashop user@example.com:password" > /etc/mail/secrets
Установіть дозволи для захисту /etc/mail/secrets
chmod 0600 /etc/secrets
Перегляньте файл конфігурації на наявність помилок і перезапустіть демон smtpd.
smtpd -n
rcctl restart smtpd
Налаштуйте процес PHP-FPM для прослуховування через сокет TCP замість сокета домену UNIX.
Зробіть наступні зміни для /etc/php-fpm.confфайлу.
...
; 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
Make some additional changes to the PHP environment in /etc/php-7.3.ini. This file name may change slightly if the version is newer than 7.3. These changes:
Configure PHP to send 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
Enable the PHP plugins.
cp /etc/php-7.3.sample/* /etc/php-7.3/.
Enable and start the PHP-FPM daemon. The daemon name might be slightly different if the version is newer.
rcctl enable php73_fpm
rcctl start php73_fpm
MariaDB provides the database backend for PrestaShop. Because MariaDB needs more open files than the default class allows, create a special class in /etc/login.conf.
At the bottom of the file, add the following lines:
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
Install MariaDB.
doas su
mysql_install_db
rcctl enable mysqld
rcctl start mysqld
Configure MariaDB security.
mysql_secure_installation
Create the PrestaShop database. Use a strong password.
mysql -u root
CREATE DATABASE prestashop;
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password123';
FLUSH PRIVILEGES;
EXIT
Back up /etc/apache2/httpd2.conf
cp /etc/apache2/httpd2.conf /etc/apache2/httpd2.conf.bak
Внесіть наступні зміни в /etc/apache2/httpd2.conf, використовуючи #для включення та вимкнення модулів.
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 webmaster@example.com
ServerName 192.0.2.1:80
Ще кілька змін /etc/apache2/httpd2.confвідбуваються в нижній частині файлу. Вилучіть #із зазначених заяв про включення.
Додайте рядки віртуального хостингу останніми.
# Server-pool management (MPM specific)
Include /etc/apache2/extra/httpd-mpm.conf
...
# Virtual Hosts
IncludeOptional /etc/apache2/sites/*.conf
Створіть /etc/apache2/sitesкаталог.
mkdir /etc/apache2/sites
Створіть /etc/apache2/sites/example.confз такою інформацією:
<VirtualHost *:80>
ServerName example.com
ServerAlias www.example.com
ServerAdmin webmaster@example.com
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 webmaster@example.com
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>
Налаштуйте модуль проксі Apache, додавши наступне до /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>
Перевірте конфігурацію, потім увімкніть і запустіть Apache.
apachectl configtest
rcctl enable apache2
rcctl start apache2
Переконайтеся, що Apache прослуховує порти 80 і 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
Перейдіть на свій веб-сайт за адресою http://www.example.com. Запуститься майстер встановлення PrestaShop.
Після завершення інсталяції зверніть увагу на посилання магазину та адміністративні посилання та видаліть каталог /var/www/htdocs/prestashop/install.
Увімкніть SSL.
Змініть пароль адміністратора.
Створіть резервну копію вашого магазину та його бази даних:
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*
Видаліть доступ doas для вашого облікового запису користувача, повторно створивши doas.confфайл.
echo 'permit keepenv :wheel' > /etc/doas.conf
Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.
Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.
Можливо, ви чули, що хакери заробляють багато грошей, але чи замислювалися ви коли-небудь, як вони заробляють такі гроші? давайте обговоримо.
Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.
Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…
Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.
Прочитайте блог, щоб дізнатися про різні шари архітектури великих даних та їх функціональні можливості найпростішим способом.
Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.
У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.
Нещодавно Apple випустила додаткове оновлення macOS Catalina 10.15.4, щоб виправити проблеми, але схоже, що оновлення викликає більше проблем, що призводять до блокування комп’ютерів Mac. Прочитайте цю статтю, щоб дізнатися більше