مون فيصلو ڪيو ته منهنجو پورٽ فوليو Laravel 7 استعمال ڪندي. انهي ڪري ته مکيه صفحو هڪ لينڊنگ صفحو هوندو، ۽ ان تي سموري معلومات ايڊمن پينل استعمال ڪندي تبديل ڪري سگهجي ٿي. ڳالهه ناهي. اهو مقرري تي آيو. مون کي ڪجهه سٺا سبق مليا آهن ته اهو ڪيئن ڪجي هڪ مڪمل سرور تي سڀني مشڪلاتن سان. مان تعیناتي ۾ تمام مضبوط نه آهيان؛ مان عام طور تي مڪمل اسٽيڪ کان وڌيڪ اڳيان آهيان. ۽، جيڪڏهن مان اڃا تائين لکي سگهان ٿو ۽ پي ايڇ پي ۾ ٽيسٽ ڪري سگهان ٿو، پوء سرور کي منظم ڪرڻ کان اڳ، وغيره. مان اڃا وڏو نه ٿيو آهيان. پر مون کي اهو سمجهڻو هو.
ھاڻي اسان سڀني مرحلن ذريعي وڃون ٿا، SSH ذريعي لانچ سان شروع ڪندي ۽ ڪم ڪندڙ سائيٽ سان ختم ڪندي. اسان سڀني نقصانن کان بچڻ جي ڪوشش ڪنداسين.
توهان شايد ساڳئي هدايتون آن لائن ڳولي سگهو ٿا. آخرڪار، مون کي آخرڪار اهو مليو. سچ، هڪ جاء تي نه، StackOverflow جي مدد کان سواء، ۽ مشڪل سان روسي ۾. مون کي تڪليف ڏني. تنهن ڪري مون فيصلو ڪيو ته توهان جي زندگي کي آسان بڻائي.
اسان DigitalOcean تي هڪ droplet سان سڀ ڪجهه ڪنداسين. اهو، يقينا، ضروري ناهي؛ ڪنهن به ميزباني کي چونڊيو. جڏهن توهان Ubuntu تي ڪم ڪندڙ سرور تي پهچي، واپس اچو. انهن لاءِ جيڪي اڃا تائين اهو ڪرڻ جو فيصلو ڪن ٿا DigitalOcean تي، اتي هڪ ڊومين قائم ڪرڻ تي وڌيڪ صلاحون هونديون. ۽
سڀ DigitalOcean-مخصوص مرحلا ھنن وانگر فوٽ نوٽس ۾ ڏنا ويندا.
اچو ته شروع ڪريون.
TL؛ DR (صرف بنيادي حڪم)
هڪ صارف ٺاهيو
ssh root@[IP-адрес вашего дроплета]
adduser laravel
usermod -aG sudo laravel
su laravel
ان ۾ SSH شامل ڪريو
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
- عوامي چيڪ داخل ڪريو
chmod 600 ~/.ssh/authorized_keys
فائر وال
sudo ufw allow OpenSSH
sudo ufw enable
sudo ufw status
نينڪس
sudo apt update
sudo apt install -y nginx
sudo ufw allow 'Nginx HTTP'
sudo ufw status
هن MySQL
sudo apt install -y mysql-server
sudo mysql_secure_installation
,NYNNY
sudo mysql
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Ваш пароль для MySQL>';
SELECT user,authentication_string,plugin,host FROM mysql.user;
FLUSH PRIVILEGES;
exit
پي PHP حفاظتي
-
sudo apt update
-
sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https
-
sudo apt-add-repository ppa:ondrej/php
-
sudo apt update
-
7.3:
sudo apt install -y php7.3-fpm php7.3-mysql
-
7.4:
sudo apt install -y php7.4-fpm php7.4-mysql
-
sudo vim /etc/nginx/sites-available/<Ваш домен>
بنيادي جوڙجڪ:
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name <Ваш домен или IP>;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
Laravel لاءِ صرف HTTP سيٽ اپ:
server {
listen 80;
listen [::]:80;
root /var/www/html/<Имя проекта>/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name <Ваш домен или IP>;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
Laravel لاءِ HTTPS سيٽنگ:
server {
listen 80;
listen [::]:80;
server_name <Ваш домен> www.<Ваш домен>;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name <Ваш домен> www.<Ваш домен>;
root /var/www/html/<Имя проекта>/public;
ssl_certificate /etc/letsencrypt/live/<Ваш домен>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<Ваш домен>/privkey.pem;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.php index.html index.htm index.nginx-debian.html;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
sudo ln -s /etc/nginx/sites-available/<Ваш домен> /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default
sudo nginx -t
sudo systemctl reload nginx
Laravel
-
7.3:
sudo apt install -y php7.3-mbstring php7.3-xml composer unzip
-
7.4:
sudo apt install -y php7.4-mbstring php7.4-xml composer unzip
-
mysql -u root -p
-
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';
-
FLUSH PRIVILEGES;
-
exit
-
cd /var/www/html
-
sudo mkdir -p <Имя проекта>
-
sudo chown laravel:laravel <Имя проекта>
-
cd ./<Имя проекта>
-
git clone <ссылка на проект> .
/git clone -b <имя ветки> --single-branch <ссылка на проект> .
-
composer install
-
vim .env
APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://<Ваш домен>
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=<Ваш пароль от MySQL>
-
php artisan migrate
-
php artisan key:generate
-
sudo chown -R $USER:www-data storage
-
sudo chown -R $USER:www-data bootstrap/cache
-
chmod -R 775 storage
-
chmod -R 775 bootstrap/cache
اي ٽي پي پي
-
sudo add-apt-repository ppa:certbot/certbot
-
sudo apt install -y python-certbot-nginx
-
sudo certbot certonly --webroot --webroot-path=/var/www/html/<Имя проекта>/public -d <Ваш домен> -d www.<Ваш домен>
-
sudo nginx -t
-
sudo ufw allow 'Nginx HTTPS'
-
sudo ufw status
-
sudo systemctl reload nginx
DigitalOcean تي هڪ قطرو ٺاهيو ۽ هڪ نئون SSH چيڪ رجسٽر ڪريو
مون کي يقين آهي ته توهان اهو سمجهندا ته ڪيئن رجسٽر ٿيو ڊجيٽل اوشن پاڻ سان. اهو آسان ناهي، ڪيترن ئي تصديق ۽ ٻين شين سان. جيڪڏهن توهان مسلسل نيٽ ورڪ جي غلطي حاصل ڪندا آهيو جڏهن دستاويزن جي تصديق ڪندي، هڪ وي پي اين ذريعي سڀ ڪجهه ڪرڻ جي ڪوشش ڪريو، ان کي مدد ڪرڻ گهرجي.
مٿين مينيو ۾، ڪلڪ ڪريو ٺاهيو->ننڍو ڦڙو. چونڊيو Ubuntu.
جيئن ئي توهان رجسٽر ڪندا، توهان کي پنهنجي اڪائونٽ ۾ $100 ملي ويندا. پر بيوقوف نه ٿيو. توهان وٽ صرف ان کي خرچ ڪرڻ لاء 60 ڏينهن آهن. ۽ اهو تمام ٿورڙو آهي. توهان شايد، مون وانگر، هڪ وڌيڪ مهانگو منصوبو استعمال ڪرڻ چاهيو ٿا، ته جيئن بعد ۾، جڏهن حقيقي پئسا وهڻ شروع ٿئي، توهان سستي واري منصوبي تي تبديل ڪري سگهو ٿا. مان توهان کي سڌو ٻڌايان ٿو ته اهو ڪم نه ڪندو. توهان ان کي وڌائي سگهو ٿا، پر توهان ان کي گهٽائي نٿا سگهو. سو وڃي ٿو. مان چونڊيو معياري->$5.
مان اسان جي ويجهو علائقو چونڊيو Frankfurt. VPC نيٽورڪ->ڊفالٽ-fra1
اسان فوري طور تي SSH ذريعي تصديق ڪنداسين. ڪلڪ ڪريو نئون SSH Key. جيڪڏهن توهان وٽ SSH نه آهي، ساڄي پاسي تمام سادي هدايتون آهن. بش ٽرمينل کوليو ۽ پيسٽ ڪريو
ssh-keygen
. ان کان پوء اسان عوامي چيڪ سان فائل ڏانهن وڃو/Users/<Ваше имя пользователя>/.ssh/id_rsa.pub
(يا سڌوcat ~/.ssh/id_rsa.pub
)، مواد کي نقل ڪريو ۽ کاٻي پاسي واري ونڊو ۾ پيسٽ ڪريو. ڪو به نالو.اسان بوند لاءِ ميزبان نالو کڻي آيا آهيون.
پڪو قطرو ٺاهيو
ھڪڙو نئون استعمال ڪندڙ ٺاھيو
ssh root@[IP-адрес вашего дроплета]
- ڇا توهان پڪ سان ڳنڍڻ جاري رکڻ چاهيو ٿا (ها/نه/[فنگر پرنٽ])؟
yes
- پنهنجو SSH پاسورڊ داخل ڪريو
- هڪ صارف ٺاهيو laravel:
adduser laravel
- پنهنجو پاسورڊ ۽ ٻي معلومات داخل ڪريو (مان صرف پورو نالو داخل ڪريو)
- استعمال ڪندڙ کي sudo گروپ ۾ شامل ڪريو:
usermod -aG sudo laravel
SSH نئين استعمال ڪندڙ لاء
- نئين استعمال ڪندڙ کي تبديل ڪريو:
su laravel
اسان سڀني عملن کي اڳتي وڌايو، آرٽيڪل جي آخر تائين، لاريول استعمال ڪندڙ جي طرفان. تنهن ڪري، جيڪڏهن توهان اوچتو مداخلت ڪئي آهي، ٻيهر لاگ ان ۽ داخل ٿيو su laravel
mkdir ~/.ssh
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys
اسان Vim ۾ فائل کوليو. جيڪڏهن توهان ان کان بلڪل واقف نه آهيو، توهان نانو ۾ ڪم ڪري سگهو ٿا، توهان جو حق.
سڀ کان وڌيڪ بنيادي Vim حڪم
سڄي مضمون ۾ ويم ايڊيٽر کي استعمال ڪرڻ لاءِ، توھان کي ھيٺ ڏنل ڄاڻڻ جي ضرورت آھي.
- Vim جا مختلف طريقا آھن: عام موڊ، جنھن ۾ توھان داخل ڪريو حڪم ۽ چونڊيو موڊس ۽ ٻيا.
- ڪنهن به موڊ مان نڪرڻ ۽ عام موڊ ڏانھن موٽڻ لاءِ، بس دٻايو
Esc
- چوڌاري منتقل ڪريو: توهان صرف تير استعمال ڪري سگهو ٿا
- بغير بچاء کان ٻاهر نڪرڻ
<Normal mode>
::q!
- نڪرڻ ۽ بچايو
<Normal mode>
::wq
- تبديل ڪريو ٽيڪسٽ ان پٽ موڊ
<Normal mode>
:i
(انگريزيءَ مان. داخل ڪيو)
- اسان اسان جي عوامي چيڪ داخل ڪيو (جيڪو اسان مٿي ڪيو)
- اسان تبديلين جي خلاف حفاظت ڪريون ٿا:
chmod 600 ~/.ssh/authorized_keys
فائر وال انسٽال ڪرڻ
- اچو ته سڀ موجود سيٽنگون ڏسو:
sudo ufw app list
- OpenSSH کي اجازت ڏيو (ٻي صورت ۾ اهو اسان کي بند ڪري ڇڏيندو):
sudo ufw allow OpenSSH
- اچو ته فائر وال شروع ڪريون:
sudo ufw enable
,y
- اسان پڙتال ڪريو
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
سڀ ڪجھ ٺيڪ آهي.
Nginx انسٽال ڪرڻ
انسٽاليشن دوران توهان ڪڏهن ڪڏهن پڇيو ويندو "ڇا توهان کي پڪ آهي؟" جواب y
(چڱو، صرف جيڪڏھن توھان پڪ آھيو).
sudo apt update
sudo apt install nginx
Nginx کي فائر وال سيٽنگون شامل ڪرڻ
sudo ufw app list
sudo ufw allow 'Nginx HTTP'
sudo ufw status
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
Nginx HTTP ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
Nginx HTTP (v6) ALLOW Anywhere (v6)
توھان جي IP ڏانھن وڃو. جيڪڏھن سڀ ڪجھ ٺيڪ ٿي وڃي، توھان کي ھيٺ ڏنل ڏسڻ گھرجي.
MySQL انسٽال ڪرڻ
sudo apt install mysql-server
- هڪ خودڪار تحفظ اسڪرپٽ هلائي
sudo mysql_secure_installation
پڇيل سوالن جا جواب ڏيو. جيڪڏهن توهان کي خبر ناهي ته ڪهڙو جواب ڏيو، هتي ڪجهه تجويز ڪيل اختيار آهن:
-
پاسورڊ پلگ ان جي تصديق ڪريو -
N
-
گمنام استعمال ڪندڙن کي هٽايو؟ -
Y
-
روٽ لاگ ان کي ريموٽ جي اجازت نه ڏيو؟ -
N
-
ٽيسٽ ڊيٽابيس کي هٽايو ۽ ان تائين رسائي؟ -
N
-
استحقاق واري ٽيبل کي هاڻي ٻيهر لوڊ ڪريو؟ -
Y
-
اچو ته MySQL ڏانهن وڃو:
sudo mysql
-
اچو ته رسائي جا طريقا ڏسو:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
روٽ لاءِ پاسورڊ سيٽ ڪريو:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '<Ваш пароль для MySQL>';
-
اچو ته ٻيهر رسائي جي طريقن کي ڏسو:
SELECT user,authentication_string,plugin,host FROM mysql.user;
-
تبديلين کي لاڳو ڪريو ۽ MySQL مان نڪرڻ:
FLUSH PRIVILEGES;
иexit
-
ھاڻي، لاگ ان ٿيڻ لاءِ MySQL توھان کي استعمال ڪرڻ جي ضرورت آھي
mysql -u root -p
۽ پاسورڊ داخل ڪريو
PHP انسٽال ڪرڻ
اچو ته ٽئين پارٽي جي ذخيري مان استعمال ڪريون
sudo apt update
sudo apt install -y curl wget gnupg2 ca-certificates lsb-release apt-transport-https
sudo apt-add-repository ppa:ondrej/php
sudo apt update
هاڻي اچو ته چونڊيو. Laravel 7 لاءِ، توھان چونڊي سگھوٿا PHP 7.3 يا 7.4. فرق صرف نمبر 3 ۽ 4 ۾ هوندو.
- 7.3:
sudo apt install -y php7.3-fpm php7.3-mysql
- 7.4:
sudo apt install -y php7.4-fpm php7.4-mysql
PHP FastCGI پروسيس مئنيجر (fpm) PHP درخواستن سان ڪم ڪري ٿو. mysql، يقينا، MySQL سان ڪم ڪرڻ لاءِ.
ھاڻي مان 7.4 تي سڀ ڪجھ ڪندس.
Nginx ترتيب ڏيڻ
sudo vim /etc/nginx/sites-available/<Ваш домен>
"<Your domain>" جي بدران ڊومين داخل ڪريو (مثال طور، mysite.ru
) جيڪو توهان مستقبل ۾ استعمال ڪرڻ چاهيو ٿا. جيڪڏهن توهان وٽ اڃا تائين ڪو نه آهي، ڪو به لکو، پوءِ صرف هن باب ۾ ڏنل قدمن کي ورجايو پنهنجي ڊومين لاءِ جڏهن توهان ان کي چونڊيو.
ھيٺيون داخل ڪريو:
server {
listen 80;
root /var/www/html;
index index.php index.html index.htm index.nginx-debian.html;
server_name <Ваш домен или IP>;
location / {
try_files $uri $uri/ =404;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
جيڪڏھن توھان چونڊيو نسخو 7.3 بدران php7.4-fpm.sock
۾ لکڻ php7.4-fpm.sock
.
بندرگاهه 80 تي ٻڌو server_name
جڏهن اسان روٽ درخواست تي پهچون ٿا /var/www/html
index فائل وٺو. جيڪڏهن بعد ۾ server_name
اتي ڪجهه آهي، اسان اهڙي فائل ڳولي رهيا آهيون. جيڪڏهن اسان ان کي نه ڳوليندا آهيون، اسان 404 ڪڍي ڇڏيندا آهيون. جيڪڏهن اهو ختم ٿئي ٿو .php
، ذريعي هلڻ fpm
... جيڪڏهن آهي .ht
منع ڪرڻ (403).
- مان لنڪ ٺاهيندي
sites-available
вsites-enabled
:sudo ln -s /etc/nginx/sites-available/<Ваш домен> /etc/nginx/sites-enabled/
- جي لنڪ کي هٽائڻ
default
:sudo unlink /etc/nginx/sites-enabled/default
- غلطين جي چڪاس:
sudo nginx -t
- ريبوٽ:
sudo systemctl reload nginx
ڪم جي چڪاس:
sudo vim /var/www/html/info.php
- اسين لکون ٿا:
<?php phpinfo();
- اچو ته وڃون
<Ваш IP>/info.php
توھان کي ڪجھھ ڏسڻ گھرجي:
ھاڻي ھن فائل کي ختم ڪري سگھجي ٿو: sudo rm /var/www/html/info.php
Laravel انسٽال ڪريو
-
7.3:
sudo apt install php7.3-mbstring php7.3-xml composer unzip
-
7.4:
sudo apt install php7.4-mbstring php7.4-xml composer unzip
-
اچو ته MySQL ڏانهن وڃو:
mysql -u root -p
-
نالي سان ڊيٽابيس ٺاهيو laravel:
CREATE DATABASE laravel DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
-
اسان روٽ تائين رسائي فراهم ڪندا آهيون laravel:
GRANT ALL ON laravel.* TO 'root'@'localhost' IDENTIFIED BY '<Ваш пароль от MySQL>';
-
FLUSH PRIVILEGES;
-
exit
-
cd /var/www/html
-
پروجيڪٽ لاءِ فولڊر ٺاهيو:
sudo mkdir -p <Имя проекта>
-
اسان صارف مهيا ڪندا آهيون laravel پروجيڪٽ جا حق:
sudo chown laravel:laravel <Имя проекта>
اڳيون توهان کي پروجيڪٽ کي منتقل ڪرڻ جي ضرورت آهي. مثال طور، Github کان ڪلوننگ.
cd ./<Имя проекта>
git clone <ссылка на проект> .
اهو غور ڪرڻ جي قابل آهي ته جيڪڏهن توهان جامد فائلن کي محفوظ نه ڪيو آهي (مثال طور، کان /public
) Github تي، پوء قدرتي طور تي توهان وٽ نه هوندو. مثال طور، مون ان کي حل ڪرڻ لاء هڪ الڳ موضوع ٺاهي deploy
، جنهن مان مون اڳ ۾ ئي ڪلون ڪيو آهي: git clone -b <имя ветки> --single-branch <ссылка на проект> .
.
- انسٽاليشن انحصار:
composer install
- env ٺاهيو:
vim .env
ان جو بنيادي نسخو هن طرح نظر اچي ٿو:
APP_NAME=Laravel
APP_ENV=production
APP_KEY=
APP_DEBUG=false
APP_URL=http://<Ваш домен>
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=<Ваш пароль от MySQL>
جيڪڏھن توھان پنھنجي .env کي نقل ڪريو ٿا، APP_ENV کي پيداوار سان، APP_DEBUG کي غلط سان تبديل ڪريو ۽ MySQL لاءِ صحيح سيٽنگون داخل ڪريو.
- ڊيٽابيس جي منتقلي:
php artisan migrate
- ڪوڊ ٺاهيندي:
php artisan key:generate
اجازتون تبديل ڪرڻ:
sudo chown -R $USER:www-data storage
sudo chown -R $USER:www-data bootstrap/cache
chmod -R 775 storage
chmod -R 775 bootstrap/cache
آخري شيء ڇڏي ويو آهي Nginx کي ٻيهر ترتيب ڏيڻ لاء Laravel:
sudo vim /etc/nginx/sites-available/<Ваш домен>
server {
listen 80;
listen [::]:80;
root /var/www/html/<Имя проекта>/public;
index index.php index.html index.htm index.nginx-debian.html;
server_name <Ваш домен или IP>;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
}
گذريل ڀيري وانگر، جيڪڏھن توھان چونڊيو نسخو 7.3 بدران php7.4-fpm.sock
۾ لکڻ php7.4-fpm.sock
.
DigitalOcean تي ڊومين قائم ڪرڻ
هر شي حقيقت ۾ تمام سادو آهي. توهان هڪ ڊومين خريد ڪريو (ڪٿي به)، سوئچ ڪريو DigitalOcean at ٺاهيو->ڊومينز/DNS... ميدان ۾ ڊومين شامل ڪريو توھان ھي ڊومين داخل ڪريو ۽ شامل ڪريو تي ڪلڪ ڪريو. پوء ڊومين سيٽنگون ۽ فيلڊ ڏانھن وڃو دوست نام داخل ڪرڻ @. ھڪڙو منصوبو چونڊيو ۽ ڪلڪ ڪريو رڪارڊ ٺاهيو.
ھاڻي ان سائيٽ ڏانھن وڃو جتي توھان ڊومين خريد ڪيو آھي، اتي ”DNS سرورز“ ڳولھيو (يا ڪجھ ساڳيو) ۽ داخل ڪريو DigitalOcean سرور (يعنيns1.digitalocean.com
,ns2.digitalocean.com
,ns3.digitalocean.com
). ھاڻي توھان کي ٿورڙو (يا گھڻو) انتظار ڪرڻو پوندو جيستائين اھي سيٽنگون قبول ڪيون وڃن. تيار!
صرف مسئلو اهو آهي ته توهان جي سائيٽ صرف HTTP طور کوليو ويندو. HTTPS حاصل ڪرڻ لاء، ايندڙ حصو ڏانھن وڃو.
HTTPS ترتيب ڏيڻ
انسٽال ڪريو certbot ۽ ان کي پاس ڪريو ڊومين جو نالو (فارميٽ mysite.ru
) ۽ ڊومين جو نالو www سان (www.mysite.ru
).
sudo add-apt-repository ppa:certbot/certbot
sudo apt install python-certbot-nginx
sudo certbot certonly --webroot --webroot-path=/var/www/html/<Имя проекта>/public -d <Ваш домен> -d www.<Ваш домен>
هاڻي توهان کي Nginx کي ٻيهر ترتيب ڏيڻ جي ضرورت آهي (پنهنجي قيمتن کي متبادل ڪرڻ نه وساريو):
server {
listen 80;
listen [::]:80;
server_name <Ваш домен> www.<Ваш домен>;
return 301 https://$server_name$request_uri;
}
server {
listen 443 ssl http2;
listen [::]:443 ssl http2;
server_name <Ваш домен> www.<Ваш домен>;
root /var/www/html/<Имя проекта>/public;
ssl_certificate /etc/letsencrypt/live/<Ваш домен>/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/<Ваш домен>/privkey.pem;
ssl_protocols TLSv1.2;
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA512:DHE-RSA-AES256-GCM-SHA512:ECDHE-RSA-AES256-GCM-SHA384:DHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384;
ssl_prefer_server_ciphers on;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.php index.html index.htm index.nginx-debian.html;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ .php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
}
location ~ /.ht {
deny all;
}
location ~ /.well-known {
allow all;
}
}
مان سمجهان ٿو ته توهان اڳ ۾ ئي سمجهي چڪا آهيو ته پي ايڇ پي 7.3 لاءِ ڪهڙي تبديلي جي ضرورت آهي.
هتي، حقيقت ۾، هر شيء سادو آهي. اسان صرف HTTP (پورٽ 80) کان HTTPS (پورٽ 443) تائين سڀني درخواستن کي ريڊائريڪٽ ڪريون ٿا. ۽ اُتي اسان سڀ ڪجھ ڪندا آھيون اڳ وانگر، پر انڪريپشن سان.
باقي اهو آهي ته اجازتون مقرر ڪرڻ لاءِ فائر وال ۾:
sudo nginx -t
sudo ufw app list
sudo ufw allow 'Nginx HTTPS'
sudo ufw status
sudo systemctl reload nginx
هاڻي هر شي کي ڪم ڪرڻ گهرجي جيئن ان کي گهرجي.
[ترقي] انسٽال ڪرڻ Node.js
جيڪڏهن اوچتو توهان کي هلائڻ جي ضرورت آهي npm ڪمانڊ سڌو سنئون سرور تي، توهان کي انسٽال ڪرڻو پوندو Node.js.
sudo apt update
sudo apt install -y nodejs npm
nodejs -v
اهو ئي آهي، مون هن اسٽيج تي روڪي ڇڏيو. اصول ۾، مان نتيجو سان مطمئن آهيان. شايد مان ڊجيٽل اوشن مان مٽائيندس روس جي ويجهو ۽ سستو. پر جيئن ته مان پهريان ئي سائيٽ تي سڀني تصديق جي دورن مان گذري چڪو آهيان ۽ اتي سڀ ڪجهه ڪيو، مون انهن کي مثال طور ڏيکاريو. اضافي طور تي، انهن جي شروعاتي $100 ٽريننگ لاء هڪ بهترين اسپرنگ بورڊ آهي.
پي ايس خاص ليکڪ جي مهرباني
پي پي ايس جيڪڏهن توهان هڪ اعليٰ انجنيئر آهيو جيڪو بش ڪمانڊ ۾ سوچي ٿو، مهرباني ڪري سختي سان فيصلو نه ڪريو. توھان کي ھي آرٽيڪل گھٽ معيار جو معلوم ٿي سگھي ٿو، پر مون کي ھڪڙي ڳولڻ ۾ خوشي ٿئي ھا جڏھن مون کي ھڪڙي جي ضرورت ھئي. جيڪڏهن بهتري لاءِ تجويزون آهن، مان ان لاءِ آهيان.
جو ذريعو: www.habr.com