УЕБ РАЗРАБОТКА
Как да хоствате уебсайт в облака с безплатен SSL сертификат
Приятни и лесни уроци с инструкции стъпка по стъпка
Резюме:
Тази статия обхваща целия процес на хостване на уебсайт в облака с безплатен SSL сертификат. Работи за статични уебсайтове, динамични уебсайтове и уеб приложения. Той представя DigitalOcean като доставчик на облачни услуги, тъй като техните планове са специализирани за стартиращи компании: лесни за използване, достъпни и мащабируеми. Той включва Nginx като уеб сървър, защото те са известни с това, че са бързи, обработват голям трафик и захранват над 60% от 100 000 най-добри уебсайта.
Съдържание:
- „Купете име на домейн“
- Регистрирайте се за DigitalOcean
- „Създаване на виртуална машина“
- Актуализиране на сървърите на имена
- „Редактиране на DNS записа“
- „Защита на виртуалната машина“
- „Създаване на SSH ключ на DigitalOcean“
- Инсталиране на уеб сървър
- „Създайте акаунт в GitHub“
- „Създаване на GitHub SSH ключове“
- „Отворете директорията на уебсайта“
- Качване на уебсайта в GitHub
- Изтеглете уебсайта от GitHub
- Инсталиране на SSL сертификат
Приложение:
- Уроци: Настройка на изкуствен интелект
- Уроци: Курс по изкуствен интелект
- Уроци: хранилища за изкуствен интелект
Купете име на домейн:
Името на домейна е интернет адресът, който клиентите използват за достъп до уебсайта. Има комбинация от букви и цифри и разширение на домейн. Може да е трудно да се намери добро име на домейн с разширение на домейн .com, но все още има добри налични в популярни алтернативи като co и io.
# find a domain name on godaddy 1. open the official site 2. type the domain name into the search bar 3. press "return" 4. click "get it" # specify additional services 1. click "add" full domain privacy & protection 2. click "looks good, keep going" 3. uncheck "start your website for free" 4. click "continue to cart" 5. select the "1 year" registration term 6. click "ready to pay" # purchase domain name 1. create the godaddy account 2. enter the payment information 3. click "save and continue" 4. click "complete purchase"
Регистрирайте се в DigitalOcean:
DigitalOcean е доставчик на облачни услуги, който предлага различни продукти, които са специализирани за стартиращи фирми. Той осигурява три основни предимства: продуктите са лесни за използване, честотната лента струва малка част от Google Cloud, AWS и Azure и месечните планове могат да бъдат персонализирани, за да отговорят на нуждите на повечето уебсайтове.
# create digitalocean account 1. open the referral link to receive $100 credit 2. create the account 3. verify the email address 4. enter the payment information 5. click "let's make something" 6. click "explore our control panel"
Създайте виртуалната машина:
Виртуалната машина е виртуален компютър, който има процесор, памет, съхранение и мрежов интерфейс, който работи на хардуера на вашия доставчик на облачни услуги. Той съхранява уеб сървъра, който обработва трафика на уебсайта, и други файлове, свързани с уебсайта, като HTML, CSS, JavaScript и файлове с изображения.
# create virtual machine 1. click "droplets" 2. click "create droplet" 3. click "ubuntu" 4. click "18.04 (LTS) x64" 5. click "basic" 6. click "regular intel with ssd" 7. check "ipv6" 8. click "password" 9. enter password 10. click "create droplet"
Актуализирайте сървърите на имена:
Сървърът за имена е уеб сървър, който е собственост на доставчика на облачна услуга. Той преобразува името на домейна в ip адреса на виртуалната машина, която съдържа уеб сървъра и файловете на уебсайта. Той получава и обработва тези заявки за регистратора на домейни, където е закупено името на домейна.
# access dns settings on digitalocean 1. click "networking" 2. click "domains" 3. enter domain name from godaddy 4. click "add domain" 5. scroll to "dns records" # access dns settings on godaddy 1. open products page in a new tab 2. click purchased domain in "domains" section 3. scroll to "additional settings" 4. click "manage dns" 5. scroll to "nameservers" 6. click "change" 7. select "i'll use my own nameservers" # set nameservers on godaddy to redirect to digitalocean 1. copy "ns1.digitalocean.com" value from digitalocean 2. paste copied value in first text field on godaddy 3. copy "ns2.digitalocean.com" value from digitalocean 4. paste copied value in second text field on godaddy 5. click "add nameserver" on godaddy 6. copy "ns3.digitalocean.com" value from digitalocean 7. paste copied value in third text field on godaddy # save updated nameservers on godaddy 1. click "save" 2. check "yes, i consent to update nameservers" 3. click "continue" 4. enter the verification code 5. click "verify code"
Редактирайте DNS записа:
DNS записът е текстов файл, който съдържа информация за домейна. Той използва различни записи, за да предостави различна информация на сървърите на имена. Той използва запис A за съхраняване на ip адреса на виртуалната машина. Той използва CNAME записа, за да съхранява инструкции за обработка на заявките за поддомейни.
# redirect domain name to virtual machine on digitalocean 1. scroll to "create new record" section 2. click "a" tab 3. enter "@" into "enter @ or hostname" text field 4. click "select resource or enter custom ip" text field 5. select droplet 6. click "create record" # redirect subdomain to domain name on digitalocean 1. click "cname" tab 2. enter "www" in "enter hostname" text field 3. enter "@" in "enter @ or hostname" text field 4. click "create record"
Защитете виртуалната машина:
Уеб сървърът работи на операционна система Linux, която включва root потребител, който може да променя всичко в системата по подразбиране. Това е заплаха, защото дава на нападателите половината информация, от която се нуждаят, за да разбият паролата и да поемат контрола над уеб сървъра. Тази заплаха може да бъде елиминирана чрез създаване на нов потребител и предотвратяване на достъп на root потребителя до уеб сървъра.
# write down ipv4 address from digitalocean 1. click "droplets" 2. write down the ip address of the virtual machine # open terminal 1. press “command ⌘ + spacebar” 2. enter “terminal” into the search bar 3. press “return” # change "placeholder" to ip address from earlier ip_address="placeholder" # store ip address in ssh configuration file echo "host website\n hostname $ip_address" > ~/.ssh/config # connect to virtual machine ssh root@$website # add virtual machine to "known hosts" list 1. enter "yes" to continue 2. press "return" key 3. enter password for virtual machine 4. press "return" key # create new user account on virtual machine adduser user # set up new user account 1. enter password for user account 2. press "return" 3. re-enter the password 4. press "return" 5. press "return" to enter the default value 6. enter "y" to confirm information 7. press "return" # grant administrative permissions to new user account usermod -aG admin user # switch from root user account to new user account sudo su user # open ssh daemon configuration file sudo vim /etc/ssh/sshd_config # switch to insert mode press "i" # prevent root user from accessing web server 1. scroll down to "permitrootlogin" 2. change"yes" to "no" 3. press "esc" 4. enter ":wq" 5. press "return" # restart ssh to implement changes sudo service ssh restart # create the ssh directory sudo mkdir ~/.ssh # exit virtual machine exit
Създайте SSH ключа на DigitalOcean:
SSH ключът е метод за удостоверяване на двойка ключове, който установява защитена връзка между два компютъра. Той използва публичен ключ, който се съхранява на виртуалната машина, за да шифрова съобщение, изпратено до компютъра. Той използва частен ключ, който се съхранява на компютъра, за да дешифрира съобщението. Той връща дешифрираното съобщение на виртуалната машина, за да защити връзката.
# create ssh key ssh-keygen -t rsa -b 4096 -f ~/.ssh/id_rsa_digitalocean # create ssh key without a passphrase 1. press "return" to use no passphrase 2. press "return" to confirm # change ip address to ip address of virtual machine ip_address=68.205.181.28 # open ssh directory cd ~/.ssh # add ssh key to "authorized keys" on virtual machine sudo cat ~/.ssh/id_rsa_digitalocean.pub | ssh user@$ip_address "cat >> ~/.ssh/authorized_keys" # add virtual machine to "known hosts" on computer 1. enter "yes" to connect to the virtual machine 2. enter the password to the virtual machine # create configuration file to manage ssh keys echo "Host $ip_address\n IdentityFile ~/.ssh/id_rsa_digitalocean" >> ~/.ssh/config # access virtual machine ssh root@$ip_address
Инсталирайте уеб сървъра:
Този раздел инсталира уеб сървъра на виртуалната машина. Той инсталира скриптовия език от страна на сървъра и различни разширения на езика за скриптове от страна на сървъра. Той инсталира системата за управление на релационни бази данни, уеб сървър, разпределена система за контрол на версиите и надстройва всички пакети.
# add php to package manager sudo add-apt-repository --yes ppa:ondrej/php # update source list and source list directory sudo apt-get update # install php to use server-side programming language sudo apt-get install --yes php7.2 # install php extensions to extend php functionality sudo apt-get install --yes php7.2-cli php7.2-fpm php7.2-json php7.2-common php7.2-mysql php7.2-zip php7.2-gd php7.2-mbstring php7.2-curl php7.2-xml php7.2-bcmath php7.1-mcrypt # install mysql to manage databases sudo apt-get install --yes mysql-server # install nginx to handle web requests sudo apt-get install --yes nginx # install git to track changes to the website sudo apt-get install --yes git # upgrade all packages sudo apt-get upgrade --yes
Създайте акаунт в GitHub:
GitHub е система за контрол на версиите, която проследява промените във файловете във времето. Той може да отменя промените, да отменя изтриванията и да експериментира с код, без да засяга производствения код. Може да показва всеки файл, който е променен, да сравнява различни версии на файлове и да добавя съобщения за описание на промените.
# create github account 1. open the official site 2. click “sign up” 3. create the account 4. verify the email address # create github repository 1. click "create repository" 2. enter "website" into "repository name" text field 3. check "private" 4. click "create repository"
Създайте SSH ключовете на GitHub:
Този раздел създава SSH ключовете, които позволяват на потребителите да се свързват с акаунта си в GitHub от командния ред. Той съхранява публични ключове в акаунта им в GitHub. Той съхранява частен ключ на техния компютър и виртуална машина. Позволява им да прехвърлят файловете си към и от акаунта си в GitHub, без да изискват своето потребителско име и личен маркер за достъп.
# open ssh directory cd ~/.ssh # create ssh key ssh-keygen -t rsa -b 4096 -f $HOME/.ssh/id_rsa_github # save file in default location without using passphrase 1. press "return" to use no passphrase 2. press "return" to confirm # create configuration file to manage ssh keys echo -e "Host github.com\n IdentityFile ~/.ssh/id_rsa_github" >> ~/.ssh/config # copy ssh key pbcopy < ~/.ssh/id_rsa_github.pub # add ssh key to github repository 1. open the profile settings in github 3. click "ssh and gpg keys" 4. click "new ssh key" 5. enter "computer" in the "title" text field 6. paste the ssh key into the "key" text box 7. click "add ssh key" # authenticate ssh key with github ssh -T [email protected] # change ip address to ip address of virtual machine ip_address=68.205.181.28 # access virtual machine ssh user@$ip_address # open ssh directory cd ~/.ssh # create ssh key ssh-keygen -t rsa -b 4096 -f $HOME/.ssh/id_rsa_github # copy ssh key to ssh subdirectory in root directory sudo cp ~/.ssh/id_rsa_github /root/.ssh/id_rsa_github # create configuration file to manage ssh keys sudo echo -e "Host github.com\n IdentityFile /root/.ssh/id_rsa_github" >> ~/.ssh/config # move configuration file to ssh subdirectory in root directory sudo mv ~/.ssh/config /root/.ssh/config # set configuration file permissions to read only sudo chmod 400 /root/.ssh/config # set configuration file permissions to root user sudo chown root /root/.ssh/config # create configuration file to manage ssh keys sudo echo -e "Host github.com\n IdentityFile ~/.ssh/id_rsa_github" >> ~/.ssh/config # exit virtual machine exit # change ip address to ip address of virtual machine ip_address=68.205.181.28 # copy ssh key ssh user@ip_address "cat ~/.ssh/id_rsa_github.pub" | pbcopy # add ssh key to github repository 1. open the profile settings in github 3. click "ssh and gpg keys" 4. click "new ssh key" 5. enter "computer" in the "title" text field 6. paste the ssh key into the "key" text box 7. click "add ssh key" # access virtual machine ssh user@ip_address # authenticate ssh key with github sudo ssh -T [email protected] # exit virtual machine exit
Отворете директорията на уебсайта:
Директорията на уебсайта е директорията, която съдържа файловете на уебсайта. Може да включва PHP, HTML, CSS, JavaScript, шрифт, изображения и видео файлове. Обикновено би било твърде скъпо да се хостват видеоклипове на сървъра поради високата цена на честотната лента, но DigitalOcean предлага евтина честотна лента, което го прави достъпен. Този раздел е предназначен за всеки, който все още няма уебсайт.
# open desktop directory cd $HOME/desktop # create website directory mkdir website # open website directory cd website # download index.php file wget -O $HOME/desktop/website/index.php https://gist.github.com/david-littlefield/480618b8f1365d8a85478236db77b368/raw # download style.css file wget -O $HOME/desktop/website/style.css https://gist.githubusercontent.com/david-littlefield/e93f1e1a5d029d9f77c683be2be53574/raw
Качете уебсайта в GitHub:
Работният поток на Git е процесът, който записва промените в уебсайта в хранилището. Той следва модела за редактиране, етап и ангажиране. Първо редактирайте файловете. Второ, етап на файловете, които ще бъдат запазени. Трето, ангажирайте промените в историята на проекта. Последно изпратете направените промени в хранилището.
# create git repository git init # replace "username" with your github username git remote add origin https://github.com/username/website.git # select main branch git branch -M main # add all files in website directory to commit git add . # add message to commit git commit -m "first commit" # save files from commit into github repository git push -u origin main
Изтеглете уебсайта от GitHub:
Директорията html е местоположението по подразбиране на уеб сървъра в Ubuntu. Това ще бъде мястото, където файловете на уебсайта се съхраняват на виртуалната машина. Той представлява текущата версия на уебсайта, която е в производство, която клиентите ще видят, когато посетят уебсайта, използвайки името на домейна.
# change ip address to ip address of virtual machine ip_address=68.205.181.28 # access virtual machine ssh user@$ip_address # open www directory cd /var/www # remove existing html directory sudo rm -rf html # replace "username" with github username sudo git clone https://github.com/username/website.git html # grant permissions to html directory sudo chmod -R 755 /var/www/html # download latest changes from your github account sudo git pull origin main # restart nginx web server for changes to take effect sudo systemctl restart nginx
Инсталирайте SSL сертификата:
SSL е протокол за сигурност, който защитава данните от кражба, промяна или фалшифициране на уебсайта. Той използва двойки ключове за установяване на криптирани връзки между уеб браузъра и уеб сървъра. Той използва публичен ключ, който се изпраща на уеб браузъра, за да шифрова съобщение, което се изпраща на уеб сървъра. Той дешифрира съобщението с помощта на частния ключ, който се съхранява на уеб сървъра. Той връща съобщението на уеб браузъра, за да защити връзката.
# change "domain.com" to your domain name
domain_name="domain.com"
# add certbot to package manager
sudo add-apt-repository ppa:certbot/certbot
# install certbot to create ssl certificate
sudo apt-get install --yes certbot python-certbot-nginx
# create the ssl certificate
sudo certbot certonly --nginx -d $domain_name -d www.$domain_name
# install ssl certificate
1. enter the contact email for the website
2. press "return"
3. enter "a" to agree to the terms of service
4. press "return"
5. enter "n" to decline receiving marketing emails
6. press "return"
7. enter "2" to redirect http traffic to https
8. press "return"
# activate super user
su
# change "domain.com" to your domain name
domain_name="domain.com"
# create the nginx configuration file
sudo echo -e "server {\n server_name $domain_name;\n return 301 https://www.$domain_name\$request_uri;\n}\n\nserver {\n listen 443 default_server;\n listen [::]:443 default_server;\n\n ssl on;\n ssl_certificate /etc/letsencrypt/live/$domain_name/fullchain.pem;\n ssl_certificate_key /etc/letsencrypt/live/$domain_name/privkey.pem;\n\n root /var/www/html;\n\n index.php index.html index.htm index 404.php;\n\n server_name $domain_name www.$domain_name;\n\n location / {\n try_files \$uri \$uri/ /index.php\$is_args\$args;\n }\n\n location ~ \.php\$ {\n include snippets/fastcgi-php.conf;\n fastcgi_pass unix:/run/php/php7.2-fpm.sock;\n }\n}\n" > /etc/nginx/sites-available/default
# deactivate super user
exit
# restart nginx
sudo systemctl restart nginx
# exit virtual machine
exit
„И накрая, не забравяйте да се абонирате и да задържите бутона за пляскане, за да получавате редовни актуализации и да помагате.“
Приложение:
Този блог съществува, за да предостави цялостни решения, да отговори на вашите въпроси и да ускори напредъка ви, свързан с изкуствения интелект. Има всичко, от което се нуждаете, за да настроите компютъра си и да завършите първата половина на курса fastai. Той ще ви изложи на най-съвременните хранилища в подполетата на изкуствения интелект. Той също така ще покрие втората половина на фаст курса.
Уроци: Настройка на изкуствен интелект
Този раздел предоставя всичко, което е необходимо за настройка на вашия компютър.
# linux 01. install and manage multiple python versions 02. install the nvidia cuda driver, toolkit, cudnn, and tensorrt 03. install the jupyter notebook server 04. install virtual environments in jupyter notebook 05. install the python environment for ai and machine learning 06. install the fastai course requirements # wsl 2 01. install windows subsystem for linux 2 02. install and manage multiple python versions 03. install the nvidia cuda driver, toolkit, cudnn, and tensorrt 04. install the jupyter notebook home and public server 05. install virtual environments in jupyter notebook 06. install the python environment for ai and machine learning 07. install ubuntu desktop with a graphical user interface 08. install the fastai course requirements # windows 10 01. install and manage multiple python versions 02. install the nvidia cuda driver, toolkit, cudnn, and tensorrt 03. install the jupyter notebook home and public server 04. install virtual environments in jupyter notebook 05. install the programming environment for ai and machine learning # mac 01. install and manage multiple python versions 02. install the jupyter notebook server 03. install virtual environments in jupyter notebook 04. install the python environment for ai and machine learning 05. install the fastai course requirements
Уроци: Курс по изкуствен интелект
Този раздел съдържа отговори на въпросника в края на всеки урок.
# fastai course 01. chapter 1: your deep learning journey q&a 02. chapter 2: from model to production q&a 03. chapter 3: data ethics q&a 04. chapter 4: under the hood: training a digit classifier q&a 05. chapter 5: image classification q&a 06. chapter 6: other computer vision problems q&a 07. chapter 7: training a state-of-the-art model q&a 08. chapter 8: collaborative filtering deep dive q&a
Уроци: хранилища за изкуствен интелект
Този раздел съдържа най-съвременни хранилища в различните подполета.
# repositories related to audio 01. raise audio quality using nu-wave 02. change voices using maskcyclegan-vc 03. clone voices using real-time-voice-cloning toolbox # repositories related to images 01. achieve 90% accuracy using facedetection-dsfd
Уроци: Внедряване на изкуствен интелект
Този раздел обхваща всичко, което е необходимо за внедряване на AI на вашия уебсайт.
01. How to Host a Website in the Cloud 02. How to Add a Database to a Website 03. How to Improve Website Performance