স্থানীয় বিকাশের জন্য ভার্চুয়াল হোস্ট কীভাবে সেটআপ করবেন


10

উবুন্টু ১১.০৪ এপাচে ২ এবং সমস্ত প্রাসঙ্গিক প্যাকেজ ইনস্টল করা আছে। আমি বেশিরভাগ ব্লগ চেষ্টা করেছি এবং গুগল এবং অন্যান্য ফোরামগুলিকে আমার সেরা বন্ধু বানিয়েছি, তবুও আমি এই সমস্যাটি সমাধান করতে পারছি না।

উন্নয়নের জন্য আমার স্থানীয় সিস্টেমে একটি নামযুক্ত ভার্চুয়াল হোস্ট স্থাপন করা দরকার।

আমি "ভিভেক" ডিরেক্টরিটি তৈরি করেছি /var/wwwএবং ডিফল্ট সূচক html অনুলিপি করেছি এবং কিছু উপাদান সম্পাদনা করেছি।

আমি ফাইল যোগ vivek.comমধ্যে /etc/apache2/sites-availableনিম্নরূপ:

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.vivek.com
DocumentRoot /var/www/vivek

# Other directives here
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/vivek/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

</VirtualHost>



<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /var/www
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>

ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined

Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>

</VirtualHost>

আমি এই নিম্নলিখিত লাইন যুক্ত করেছি

# Ensure that Apache listens on port 80
Listen 80

# Listen for virtual host requests on all IP addresses
NameVirtualHost *:80

<VirtualHost *:80>
ServerName www.vivek.com
DocumentRoot /var/www/vivek

# Other directives here
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/vivek/>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>

</VirtualHost>

ডিফল্ট ফাইলে যা ইতিমধ্যে "সাইটগুলি উপলভ্য" ফোল্ডারে উপস্থিত ছিল (এটি সম্পাদনার আগে ডিফল্ট ফাইলটির ব্যাক আপ নিয়েছিল)

এটি / etc / হোস্টগুলিতে উপস্থিত হোস্ট ফাইলগুলিতে যুক্ত করা হয়েছে

127.0.0.1 localhost
127.0.1.1 vivek-PC
127.0.0.1 www.vivek.com

কোনও ত্রুটি না করে নিম্নলিখিত ক্রিয়াকলাপ সম্পাদন করেছেন:

root@vivek-PC:~# a2ensite vivek.com
Enabling site vivek.com.
Run '/etc/init.d/apache2 reload' to activate new configuration!
root@vivek-PC:~# /etc/init.d/apache2 reload
* Reloading web server config apache2

আমি যখন প্রবেশ করলাম www.vivek.com, এটি আমাকে ডিফল্ট সূচক html এ দিয়েছে /var/wwwতবে সম্পাদিত ফোল্ডারে / var / www / vivek এ উপস্থিত নেই।

পরে, আমি সূচকটি এইচটিএমএল থেকে সম্পাদনা করেছি /var/wwwতবে আমি এখনও একই সূচক html (সম্পাদনা করার পূর্বে ডিফল্ট) পাচ্ছিলাম। সমস্ত সূচক। Htmls সম্পাদনা করা হয়েছে তবে আপাচে কিছু লুকানো আছে যা আমি যখন অনুরোধ করব তখন অবিরত থাকেwww.vivek.com

এবং বিদ্রূপাত্মক বিষয়টি হল আমি পুনরায় চালু করার পরে - অ্যাপাচি ঠিকঠাক এসেছিল তবে আমার সাইট - www.vivek.comদেখাতে ব্যর্থ হয়েছে (এমনকী সূচিপত্রের সাথে যা লুকানো godশ্বর জানেন কোথায়) !! .. এখন আমার ব্রাউজারটি "সংযোগ দিতে অক্ষম "

দয়া করে সহায়তা করুন Iআমি এক সপ্তাহ থেকে কোনও সফল ফলাফল ছাড়াই সেট আপ করার চেষ্টা করছি।

উত্তর:


6

পরে, আমি / var / www থেকে সূচকটি html সম্পাদনা করেছি তবে আমি এখনও একই সূচক html (সম্পাদনা করার পূর্বে ডিফল্ট) পাচ্ছিলাম। সমস্ত সূচক। Htmls সম্পাদনা করা হয়েছে তবে অ্যাপাচে মনে হয় কিছু লুকানো রয়েছে যা আমি www.vivek.com এর জন্য অনুরোধ করলে অবিরত থাকে

এটি পড়ে, আমি অনুমান করি আপনি একটি ক্যাশেড ফাইলটি দেখছেন। F5রিফ্রেশ বোতাম টিপুন বা আঘাত করার পরিবর্তে, Ctrl+ টিপে রিফ্রেশ করার সময় ক্যাশেটি এড়িয়ে যান F5

পর্যায়ক্রমে, কমান্ড-লাইন প্রোগ্রামটি ব্যবহার করুন curl(যা ডিফল্টরূপে ইনস্টল করা হয় না)। ব্যবহারের উদাহরণ:

$ curl -i http://localhost/
HTTP/1.1 200 OK
Date: Sat, 02 Jul 2011 00:42:01 GMT
Server: Apache/2.2.17 (Ubuntu)
Last-Modified: Fri, 01 Jul 2011 04:12:49 GMT
ETag: "4507-b1-4a6fa3b114149"
Accept-Ranges: bytes
Content-Length: 177
Vary: Accept-Encoding
Content-Type: text/html

<html><body><h1>It works!</h1>
<p>This is the default web page for this server.</p>
<p>The web server software is running but no content has been added, yet.</p>
</body></html>

একটি নোট: আমি একটি পরিষ্কার অ্যাপাচি ইনস্টল করে নিম্নলিখিতগুলি করেছি:

  • এতে আপনার প্রথম কনফিগারেশন ফাইল যুক্ত করুন /etc/apache2/sites-available/vivek.com
  • ( /etc/apache2/sites-available/default ছোঁয়া না রেখে )
  • চালান sudo a2ensite vivek.com
  • চালান sudo /etc/init.d/apache reload

আমি আপনার মত একই বার্তা পেতে। তবে সার্ভারটি আরম্ভ করতে ব্যর্থ হয়েছে। সার্ভারটি ব্যবহার বন্ধ করে sudo /etc/init.d/apache2 stopএবং আবার ব্যবহার করে এটি শুরু করার সময় sudo /etc/init.d/apache2 start, এটি একেবারেই শুরু করতে অস্বীকার করেছিল। ত্রুটি লগটি অনুসন্ধান করা /var/log/apache2/error.logকিছু ত্রুটি প্রকাশ করেছে:

[Sat Jul 02 00:48:09 2011] [notice] Graceful restart requested, doing restart
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
[Sat Jul 02 00:48:09 2011] [warn] NameVirtualHost *:80 has no VirtualHosts
(98)Address already in use: make_sock: could not bind to address 0.0.0.0:80
no listening sockets available, shutting down
Unable to open logs

সুতরাং 80 বন্দরটি ব্যবহৃত হতে পারে বলে মনে হচ্ছে। তবে যদি আপাচি এখনও শুরু না করা হয় তবে আমি নিশ্চিত করতে পারি যে 80 চালুর মাধ্যমে পোর্ট 80 তে কিছুই শোনে না sudo netstat -tpln। আমি কনফিগারেশন পর্যালোচনা করেছি এবং এই সিদ্ধান্তে পৌঁছেছি যে Listen 80আপনার কনফিগারেশন ফাইল থেকে লাইনটি সরানো উচিত /etc/apache2/sites-available/vivek.com। এর পরে, আমি আবার সার্ভারটি শুরু করতে এবং ব্যবহার curlকরতে গিয়ে নিশ্চিত করেছিলাম যে সার্ভারটি অনুরোধগুলিতে সঠিকভাবে প্রতিক্রিয়া জানাচ্ছে।

কিআইএসএস , আপনার দ্বিতীয় ভোস্ট ব্লকটি আবৃত হওয়ার সাথে সাথে এটি অনর্থক /etc/apache2/sites-available/default। পরবর্তী কনফিগারেশন ফাইলটি হ'ল /etc/apache2/sites-available/vivek.com:

<VirtualHost *:80>
    ServerName www.vivek.com
    DocumentRoot /var/www/vivek

    # Other directives here
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/vivek/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

1

এমন একটি স্ক্রিপ্ট রয়েছে যা আপনার জন্য এটিকে সহজ করে তোলে - https://github.com/RoverWire/virtualhost

প্রদত্ত উত্তরগুলি দ্বারা বর্ণিত হিসাবে এটি শেষ পর্যন্ত একই পাতাগুলি করে তবে এটি কেবল একটি কমান্ডে করে। -

sudo virtualhost create mysite.local my_site

এটি আপনাকে তৈরি করা একটি হোস্ট মুছতে সক্ষম করে

sudo virtualhost delete mysite.local my_site

কেবলমাত্র নোট করুন যে "আমার_দির" ধরে নেয় যে এটি / var / www এর পরে শুরু হয় starts

সুতরাং আপনার সাইটের ফোল্ডারটি যদি / var / www / my_site এ থাকে

আপনার এটি চালানো উচিত (/ var / www ছাড়াই ডিরেক্টরি পাস করুন) -

sudo virtualhost create mysite.local my_site

আপনি স্ক্রিপ্ট ফাইলটিও পরিবর্তন করতে পারেন এবং "/ var / www" ডিফল্ট পাথটি সরিয়ে ফেলতে পারেন যাতে আপনি সাইট ডিরেক্টরিতে একটি নিখুঁত পথ পার করতে পারেন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.