هادی دادخواه
هادی دادخواه
خواندن ۳ دقیقه·۲ سال پیش

اجرای چند وب سایت روی یک VPS

اول سیستم عامل اوبونتوی خود را روی سرور نصب می‌کنیم.

پیش‌نیازهای اولیه را برای اجرای یک وب سرور php بر روی سرور مجازی نصب می‌کنیم. اینجا

یکی از این پیش‌نیازها apache2 می‌باشد.

حالا می‌خواهیم دو سه تا دامنه که از قبل رجیستر کرده‌ایم را روی همین وب سرور اجرا کنیم.

برای مثال دامنه‌های example1.com و example2.ir را داریم و در مسیر زیر آنها را قبلا ساخته‌ایم:

/var/www/html/example1.com/ /var/www/html/example2.ir/

نکته: مالکیت و حق دسترسی این دو پوشه را به این صورت تنظیم کنید:

sudo chown -R www-data:www-data /var/www/html/example1.com sudo chmod -R 755 /var/www/html/example.com

با ssh به سرور خود متصل شوید و این مسیر بروید /etc/apache2/sites-avalible

برای هر کدام از سایت‌های خود در این مسیر، فایل زیر را بسازید و اینگونه نامگذاری کنید example2.ir.conf

<VirtualHost *:80> DocumentRoot /var/www/html/example2.ir ServerName example2.ir ServerAlias www.example2.ir </VirtualHost>

نکته: اگر می‌خواهید سایت مورد نظر از نسخه‌ی خاصی از php نصب شده در سرور استفاده کند این بخش را به فایل conf. اضافه کنید: (البته قبلش نیاز به نصب و فعال‌سازی php-fpm دارد)

<VirtualHost *:80> DocumentRoot /var/www/html/example2.ir ServerName example2.ir ServerAlias www.example2.ir <FilesMatch \.php$> SetHandler 'proxy:unix:/run/php/php7.1-fpm.sock|fcgi://localhost' </FilesMatch> </VirtualHost>

سپس در خط فرمان ssh دستورات زیر را به ترتیب اجرا کنید:

sudo a2ensite example2.ir systemctl restart apache2

کار روی سرور تمام است.

حالا کافی است در سایت کلادفلر دامنه خود را به IP سرور خود متصل کنید.

با کلیک روی گزینه Add site در کلادفلر در باکسی که به شما نشان می‌دهد اسم دامنه خود را به این صورت تایپ کنید example2.ir

کلادفلر به شما گزینه‌های خرید اکانت و البته پلن رایگان را نمایش می‌دهد. می‌توانید پلن رایگان را انتخاب کنید و در مرحله‌ی بعدی کلادفلر تنظیمات پیشنهادی خود را به شما نمایش می‌دهد. تنظیمات پیشنهادی کلادفلر را بپذیرید و دکمه ادامه را کلیک کنید. (نکته مهم: قبل از تایید تنظیمات این بخش، IP سرور خود را در فیلد IPv4 address کنترل کنید چون کلادفلر بعضی‌ وقت‌ها سر خود آن را تغییر می‌دهد!)

پس از این مرحله کلادفلر دو nameserver به شما می‌دهد که باید به تنظیمات دامنه خود بروید و به جای تنظیمات قبلی جایگزین کنید. از این به بعد nameserverهای دامنه شما روی کلادفلر تنظیم خواهد شد. پس از اعمال تغییرات، دو سه تا تنظیم دیگر هم به شما پیشنهاد می‌شود تایید کرده و مراحل را به پایان برسانید و حالا باید چند ساعت منتظر باشید که تغییرات DNS در شبکه جهانی اینترنت اعمال شوند.

و تمام!

آقا یک سوال! من می‌خواهم سایتم یا فقط با www یا فقط بدون www دیده شود. می‌گویند برای سئو و خیلی چیزهای دیگر خوب است. چکار باید بکنم؟ بله درست شنیدید. برای سئو بسیار مهم است و بالاخره یک چیزی است که باید یا اینوری یا اونوری باشد. دو تاش نمی‌شود.

اول مطمئن باشید که در این فایل etc/apache2/apache2.conf

قطعه کد زیر:

<Directory /var/www/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

باید به صورت زیر باشد:

<Directory /var/www/> Options -Indexes +FollowSymLinks AllowOverride All Require all granted </Directory>

یعنی گزینه AllowOverride باید فعال باشد که بتوانیم فایل htaccess را در پوشه‌های مسیر www اجرا کنیم.

مهم: علامت منهای و بعلاوه‌ای که اضافه کرده‌ایم بسیار مهم است. علامت منها می‌گوید اجازه نمایش محتویات پوشه‌های داخل www را به صورت index لغو کن و علامت بعلاوه می‌گوید که اجازه دنبال کردن لینک‌ها را داخل سرور تایید کن.

سپس در پوشه مربوط به هر وب‌سایت مثلا example2.ir قطعه کد زیر را داخل یک فایل htaccess. می‌نویسیم:

<IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTP_HOST} ^www\. RewriteCond %{HTTPS}s ^on(s)|off RewriteCond http%1://%{HTTP_HOST} ^(https?://)(www\.)?(.+)$ RewriteRule ^ %1%3%{REQUEST_URI} [R=301,L] </IfModule>

البته این قطعه کد مثال‌ها و روش‌های متفاوتی دارد که من قطعه کد دلخواهم را در منبع شماره 4 پیدا کردم. مرجع خوبی برای انواع فایل‌های htaccess می‌باشد.

منابع: 1 2 3 4 5

vpsلاراولlaravelاوبونتوubuntu
یک آموزگار...
شاید از این پست‌ها خوشتان بیاید