هذه هي مجموعة من أوامر لينكس لإعداد سيرفر VPS.
كتب هذه القائمة صديقي محسن الصيادي وحررتها ونشرتها هنا فله جزيل الشكر.
هذه القائمة خُّصّصت لإعداد سيرفر VPS من نوع Digital Ocean Droplet بنظام تشغيل Ubuntu v20 لتجهيز مشروع Laravel. قد لا يكون بالضرورة هذا ما تبحث عنه، ولكن قد تجد بعض الأوامر التي تفيدك عمومًا.
ملاحظة: هذه القائمة ليست نهائية وستكون محدثة باستمرار.
وندعوك بشدة إن كنت تعلم أي إضافة أو تعديل لتحسين هذه الأوامر أو توضيحها أن تشاركنا في التعليقات لإضافتها للتدوينة.
لإضافة وصول عن بعد remote ssh
sudo nano ~/.ssh/authorized_keys (add public key)
sudo service ssh restart
إعداد الجدار الناري config firewall
sudo ufw allow ssh
sudo ufw allow http
sudo ufw allow https
sudo ufw allow webmin
sudo ufw allow OpenSSH
sudo ufw enable or sudo ufw reload
تنزيل لوحة تحكم Webmin لإدارة السيرفر شبيهة cPanel
sudo apt update
sudo nano /etc/apt/sources.list
deb http://download.webmin.com/download/repository sarge contrib (add on bottom)
wget -q -O- http://www.webmin.com/jcameron-key.asc | sudo apt-key add
sudo apt update
sudo apt upgrade
sudo apt install webmin
sudo /usr/share/webmin/changepass.pl /etc/webmin root [new password]
sudo systemctl status webmin
للمزيد:
تنزيل سيرفر Nginx
sudo apt update
sudo apt install nginx
sudo ufw app list
sudo ufw allow 'Nginx HTTP'
sudo ufw status
sudo systemctl [stop-start-restart-reload-disable-enable] nginx
sudo mkdir -p /var/www/YOUR_DOMAIN/html
sudo chown -R $USER:$USER /var/www/YOUR_DOMAIN/html
sudo chmod -R 755 /var/www/YOUR_DOMAIN/html
ثم نفتح الملف
sudo nano /etc/nginx/sites-available/YOUR_DOMAIN
وتوضع البيانات التالية
server {
listen 80;
listen [::]:80;
root /var/www/YOUR_DOMAIN/html;
index index.html index.htm index.nginx-debian.html;
server_name YOUR_DOMAIN www.YOUR_DOMAIN;
location / {
try_files $uri $uri/ =404;
}
}
ثم نكمل
sudo ln -s /etc/nginx/sites-available/YOUR_DOMAIN /etc/nginx/sites-enabled/
sudo unlink /etc/nginx/sites-enabled/default
ثم نفتح الملف
sudo nano /etc/nginx/nginx.conf
وتوضع البيانات التالية
server_names_hash_bucket_size 64 (enable);
sudo nano /etc/hosts
167.99.244.85 YOUR_DOMAIN www.YOUR_DOMAIN
sudo nginx -t
sudo systemctl restart nginx
للمزيد:
إضافة شهادة SSL عن طريق let's encrypt
sudo apt install certbot python3-certbot-nginx
sudo nano /etc/nginx/sites-available/YOUR_DOMAIN
sudo nginx -t
sudo ufw allow 'Nginx Full'
sudo ufw delete allow 'Nginx HTTP'
sudo certbot --nginx -d YOUR_DOMAIN -d www.YOUR_DOMAIN
sudo systemctl status certbot.timer
sudo certbot renew --dry-run
للمزيد:
install php using nginx with specific version
تنزيل PHP بإصدار معين عن طريق Nginx
sudo apt install software-properties-common -y
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2-fpm php8.2-mysql php8.2-curl php8.2-dom php8.2-mbstring php8.2-xml php8.2-bcmath
config laravel project
إعداد مشروع Laravel
فتح الملف المرتبط باسم النطاق domain
sudo nano /etc/nginx/sites-available/YOUR_DOMAIN
وتوضع البيانات التالية
(sites-avaliable) server {
root /var/www/YOUR_DOMAIN/html/public;
server_name YOUR_DOMAIN www.YOUR_DOMAIN;
add_header X-Frame-Options "SAMEORIGIN";
add_header X-XSS-Protection "1; mode=block";
add_header X-Content-Type-Options "nosniff";
index index.html index.htm index.php;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location = /favicon.ico { access_log off; log_not_found off; }
location = /robots.txt { access_log off; log_not_found off; }
error_page 404 /index.php;
location ~ \.php$ {
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.(?!well-known).* {
deny all;
}
تنزيل Composer
curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/local/bin --filename=composer (install latest composer)
تنزيل mariaDB
ملاحظة: قاعدة بيانات mariaDB مشتقة من MySQL مفتوحة المصدر وقد تكون مفيدة في حالة أن بيانات السيرفر صغيرة ولا تستوعبها MySQL، كما أن الفروقات العملية بينها وMYSQL لا تكاد تذكر.
sudo apt install mariadb-server
sudo mysql_secure_installation
sudo systemctl enable mariadb.service
للمزيد:
إعداد الصلاحيات
sudo chown -R www-data:www-data /var/www/YOUR_DOMAIN/html/storage
sudo chown -R www-data:www-data /var/www/YOUR_DOMAIN/html/bootstrap/cache
للمزيد:
مصادر مفيدة: