Възходът на машините: Реални приложения на AI
Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.
Този урок демонстрира 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 сертификат за тестване. Задайте Common Name на 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както е показано по-долу.
Забележки: * Дефиницията на таблицата за тайни съдържа потребителското име и паролата за релето за поща. * The изходящи действието търси потребителското име и паролата, под етикета 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
Направете някои допълнителни промени в PHP средата в /etc/php-7.3.ini. Името на този файл може леко да се промени, ако версията е по-нова от 7.3. Тези промени:
Конфигурирайте PHP да изпраща имейл чрез 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
Активирайте PHP плъгините.
cp /etc/php-7.3.sample/* /etc/php-7.3/.
Активирайте и стартирайте демона PHP-FPM. Името на демона може да е малко по-различно, ако версията е по-нова.
rcctl enable php73_fpm
rcctl start php73_fpm
MariaDB предоставя бекенда на базата данни за PrestaShop. Тъй като MariaDB се нуждае от повече отворени файлове, отколкото позволява класът по подразбиране, създайте специален клас в /etc/login.conf.
В долната част на файла добавете следните редове:
mysqld:\
:openfiles-cur=1024:\
:openfiles-max=2048:\
:tc=daemon:
Инсталирайте MariaDB.
doas su
mysql_install_db
rcctl enable mysqld
rcctl start mysqld
Конфигурирайте сигурността на MariaDB.
mysql_secure_installation
Създайте базата данни PrestaShop. Използвайте силна парола.
mysql -u root
CREATE DATABASE prestashop;
GRANT ALL PRIVILEGES ON prestashop.* TO 'prestashop'@'localhost' IDENTIFIED BY 'password123';
FLUSH PRIVILEGES;
EXIT
Направете резервно копие /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 машини. Прочетете тази статия, за да научите повече