আমার নিজের / var / www ডিরেক্টরিটি আমার বাড়িতে সিমলিংক করা উচিত?


20

আমি সবেমাত্র একটি ল্যাম্প সেটআপ সহ উবুন্টু সার্ভার 10.04 ইনস্টল করেছি। আমি সেখানে একটি ওয়েবসাইট হোস্ট করতে চাই তবে আমি নিশ্চিত নই যে সার্ভারে আমার ফাইলগুলি সম্পাদনা / সম্পাদনা করার সর্বোত্তম উপায়। গুগলিং অনেকগুলি বিকল্প সরবরাহ করে তবে আমি নিশ্চিত না কোনটি সবচেয়ে ভাল?

এর চেয়ে ভাল বিকল্প না হলে আমি অন্য পিসিতে (উইন্ডোজ বা লিনাক্স) পৃষ্ঠাগুলি তৈরি করে সার্ভারের পরিবর্তনগুলি সিঙ্ক করতে এসএফটিপি ব্যবহার করতে চাই - তবে আমি কি এইটি ~ / অথবা সিলেকড ফোল্ডারে এই অধিকারগুলি পরিবর্তন করে করব? / var / www / ফোল্ডারে?


5
/ Var / ww / এর chmod 777 না থাকার কারণগুলি - কেবল এটি পরিষ্কার করার জন্য।
মার্কো সেপ্পি

উত্তর:


21

প্রতিটি সেটআপ আলাদা। আমার জন্য আমার একটি সার্ভারে প্রচুর ব্যবহারকারী রয়েছে যা প্রত্যেকটি ওয়েবসাইটকে হোস্ট করে, আপনার জন্য সম্ভবত আপনার সিস্টেমে কেবলমাত্র একজন ব্যবহারকারী তৈরি করার প্রয়োজন হবে না। তবে আপনি যদি এই সার্ভারে একাধিক ওয়েবসাইট পরিচালনা করেন তবে এই সেটআপটি আপনাকে একটি স্ট্যান্ডার্ড এলএএমপি সেটআপের চেয়ে সহজভাবে একটি ফ্যাশনে প্রতিটি ডোমেন পরিচালনা, কনফিগার করতে এবং ডিবাগ করতে সহায়তা করবে। এটি যাতে ঘটে যায় তার জন্য ক্রমে অনুমতি ত্রুটিগুলি পেতে আমি অ্যাপাচি দ্বারা বেশ কয়েকটি ডিভাইস ব্যবহার করি।

প্রথমত, এটি আমি নথির কাঠামোটি ব্যবহার করি:

/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs

প্রতিটি ব্যবহারকারী ফোল্ডারের একটি ডোমেন (যা আমি যোগ করা সঙ্গে তাদের নিজস্ব অ্যাকাউন্ট রয়েছে সে ক্ষেত্রে /etc/skelতাই এটি প্রত্যেক সময় নির্মিত হয়। প্রতিটি ডোমেইন এতে নিজস্ব ফোল্ডার এর রয়েছে domainsএকটি সঙ্গে ফোল্ডারের htmlফোল্ডারে (আমি এই জন্য আমার কারণ রয়েছে, প্রাথমিকভাবে তাই ডোমেইনের ওয়েব ফাইল বাহিরে থাকতে পারে সর্বজনীন রাজ্যের)) আপনি উপযুক্ত হিসাবে এই কাঠামোটি সংশোধন করতে দ্বিধা বোধ করবেন না, কেবলমাত্র এই পোস্ট জুড়ে এই পরিবর্তনগুলি বহন করতে ভুলবেন না।

দ্বিতীয়ত, আমি প্রচুর পিএইচপি সাইট হোস্ট করি তাই আমি আমার কনফিগারেশনে suPHP ব্যবহার করি। ডিফল্টরূপে স্ট্যান্ডার্ড সংরক্ষণাগার প্যাকেজটিতে সঠিক সংকলন পতাকা সক্ষম করা নেই যার ফলে suPHP এর কম সুরক্ষিত সংস্করণ দেখা যায়। আমি আমার নিজস্ব suPHP প্যাকেজ তৈরি করেছি যা আমি আমার সার্ভারগুলিতে ব্যবহার করি, নীচে ইনস্টলেশন সংক্রান্ত নির্দেশাবলী। suPHP আপনাকে কোন ব্যবহারকারী পিএইচপি স্ক্রিপ্টগুলি নির্বাহ করতে হবে তা নির্ধারণ করতে দেয় (প্রতিটি বিষয়গুলির জন্য: প্রতিটি সাইটের জন্য কাস্টম php.ini ইত্যাদি) among আমি অ্যাপাচি-র জন্য সুেক্সেক্সকে সক্ষম করে রেখেছি - আরও www-ডেটা ব্যবহারকারীর (যে ব্যবহারকারীকে আমি ঘৃণা করি) তার কোনও মালিকানা থাকার প্রয়োজনীয়তা অপসারণ করছি।

প্রথমে আপনার সার্ভারে অ্যাপাচি এবং অন্যান্য সমস্ত পরিষেবা ইনস্টল রয়েছে তা নিশ্চিত করুন। তারা কমপক্ষে কাজ করছে কিনা তা নিশ্চিত করুন। এর পরে আমি সুপ-প্রচলিত এবং প্রয়োজনীয় লিবাপাছে ২-মোড-সুপ্প মডিউল ইনস্টল করার পরামর্শ দিচ্ছি (আরও তথ্য: পিপিএ কী কী এবং আমি কীভাবে সেগুলি ব্যবহার করব? )। তারপরে, ইনস্টল হওয়ার পরে, suPHP এবং suexec ব্যবহার করে সক্রিয় করুনa2enmod

sudo a2enmod suphp
sudo a2enmod suexec
sudo a2dismod php5

sudo /etc/init.d/apache restart

এর পরে কনফিগারেশন ফাইল আসবে। আমি বিভিন্ন সরঞ্জাম তৈরি করেছি যা প্রতিবার নতুন সাইট যুক্ত করার পরে কনফিগারেশন ফাইলগুলি স্বয়ংক্রিয়ভাবে উত্পন্ন করে; তবে, আমি যে বেসিক টেম্পলেটটি ব্যবহার করি তা এখানে:

<VirtualHost *:80>
    ServerAdmin [EMAIL]
    ServerName [DOMAIN]
    ServerAlias www.[DOMAIN] [DOMAIN]
    DocumentRoot /home/[USER]/domains/[DOMAIN]/html

    <Directory /home/[USER]/domains/[DOMAIN]>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all
    </Directory>

    ErrorLog /home/[USER]/domains/[DOMAIN]/logs/error.log

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

    CustomLog /home/[USER]/domains/[DOMAIN]/logs/access.log combined

    SuexecUserGroup [USER] [USER]

    suPHP_UserGroup [USER] [USER]
    suPHP_ConfigPath /home/[USER]/etc
</VirtualHost>

এটি সেই ডোমেনটির জন্য লগইন সেট করে, ডকুমেন্ট রুট এবং ডোমেনটি পরিচালনা করার জন্য অন্যান্য সমস্ত মৌলিক প্রয়োজনীয়তা। আমি এই ফাইলগুলিকে /etc/apache2/sites-available/সাধারণত নামযুক্ত রাখি [USER]-[DOMAIN]এবং এগুলি এর a2ensiteমতো সক্ষম / অক্ষম করি :

sudo a2ensite [USER]-[DOMAIN]
sudo a2dissite [USER]-[DOMAIN]

কনফিগারেশন ফাইলগুলিতে প্রতিটি সংশোধন করার পরে অ্যাপাচি পুনরায় লোড করা প্রয়োজন

sudo /etc/init.d/apache reload

যদিও এটি আমার মতে, নমনীয়তার পরিমাণটি অর্জনে সেটআপ করা অনেকটা মনে হতে পারে, সেটআপের চেয়ে অনেক বেশি। যদিও আপনার কেবলমাত্র একটি একক ব্যবহারকারী ওয়েবসভার প্রয়োজন, ভবিষ্যতে আপনি যদি কখনও কোনও একক ব্যবহারকারী ওয়েবসার্ভার ব্যতীত অন্য কিছু চান, তবে আপনাকে আরও ক্রিয়া সম্পাদন করতে হবে (বা কেবল সমস্ত একসাথে সুরক্ষা বাদ দিন) এটি করার জন্য।


প্রতিটি সেটআপের জন্য +1 আলাদা এবং প্রতিটি ওয়েবসাইটের জন্য পৃথক ব্যবহারকারী অ্যাকাউন্ট ব্যবহার করে
লেকেনস্টেইন

1
এটি একাধিক ব্যবহারকারীর ল্যাম্প সিস্টেমের জন্য দুর্দান্ত, তবে প্রশ্নটি ছিল একটি একক ব্যবহারকারী ল্যাম্প সিস্টেম সম্পর্কে, এই ক্ষেত্রে এই উত্তরটি ওভারকিল। :)
কিস কুক

@ কিসের একই নীতিটি প্রযোজ্য - কেবলমাত্র আপনাকে আরও বেশি ব্যবহারকারী তৈরি করতে হবে না। এইভাবে আপনাকে কখনই ব্যবহারকারীর বা অনুমতি সংক্রান্ত সমস্যার বিষয়ে চিন্তা করতে হবে না - এবং যদি কোনও একক ব্যবহারকারীর একাধিক ডোমেন থাকে তবে এই সেটআপটি এটি আবরণ করবে।
মার্কো সেপ্পি

মার্কো, আপনি এই সময়টি একেবারে ঠিক সময়ে প্রয়োগ করতে পারেন যে আপনি আপনার দ্বিতীয় ব্যবহারকারীকে পাবেন। যদিও এটি প্রথমটি খুব সহজ হওয়া উচিত যদি না এটি নির্দিষ্ট থাকে তবে আপনার আরও কিছু থাকবে।
স্প্যাম্যাপস

+1 - এটি সবচেয়ে নিরাপদ এবং বুদ্ধিমান কনফিগারেশন।
নাথান ওসমান

11

এসএফটিপি ইনস্টল করা খুব সহজ। কেবল প্যাকেজটি ইনস্টল করুন openssh-serverএবং আপনার এসএফপি হবে p আপনি যদি ইন্টারনেট থেকে এটি পেতে পারেন তবে আপনার ব্যবহারকারীর একটি ভাল পাসওয়ার্ড রয়েছে তা নিশ্চিত করুন। (8+ অক্ষর, অভিধানের শব্দ নয়, এর চিহ্ন এবং সংখ্যা রয়েছে)।

অনুমতিগুলির জন্য, আমি সাধারণত এটি করি
sudo adduser <username> www-data
sudo chown -R www-data:www-data /var/www
sudo chmod -R g+rw /var/www
আপনি তখন sftp (আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড ব্যবহার করে) এর সাথে সংযোগ স্থাপন করে এবং তারপরে / var / www ফোল্ডারে গিয়ে আপনার ফাইলগুলি সেখানে রেখে পৃষ্ঠাগুলি পোস্ট করতে সক্ষম হবেন।


1
আরও সুরক্ষিত পদ্ধতি হ'ল কী-ভিত্তিক প্রমাণীকরণ (প্রাইভেট কী পাসওয়ার্ড সহ সুরক্ষিত)
লেকেনস্টেইন

@ লেকেনস্টেইন আমি এটির পরামর্শ দেওয়ার বিষয়টি বিবেচনা করেছি, তবে আমি এটিকে সহজ রাখার চেষ্টা করছি। যদি তিনি আরও সুরক্ষিত কী ভিত্তিক প্রমাণীকরণ সেট আপ করতে চান তবে ক্রেগ টি হেল্প.বুন্টু . com / কমিনিউটি / এসএসএইচ / ওপেনএসএইচ / কী এবং হেল্প.বুন্টু . com / কম্যুনিটি / এসএসএইচ / ওপেনএসএইচ / এর দিকে নজর রাখতে পারে।
আজেন্ডালে

2
ফাইলের অনুমতি নষ্ট না করেই সিঙ্গল-ইনস্ট্যান্স ওয়েব সার্ভারে ফাইলগুলি সঠিক জায়গায় to :) অতিরিক্তভাবে, এসএসটিপি পরিবর্তে আরএসএনসি ব্যবহার করা যেতে পারে। দু'জনই হুডের নীচে এসএসএইচ ব্যবহার করে (এবং আমি পাসওয়ার্ডের পরিবর্তে এসএসএস কী ব্যবহার করার পরামর্শ দেব তবে ইতিমধ্যে কেউ তা উল্লেখ করেছেন)।
কিস কুক

1
+1, কিসের সাথে একমত, এটি অত্যন্ত সহজ এবং বর্ণিত প্রশ্নের পক্ষে কাজ করে। আমি কেবলমাত্র এসএসএইচ কীগুলিতে অ্যাক্সেসকে সীমাবদ্ধ রেখে 40+ নোড সহ উত্পাদন ক্লাস্টারগুলির জন্য প্রায় একই সেটআপটি ব্যবহার করেছি।
স্প্যাম্যাপস

1

আমি ওয়েবডাব ব্যবহার করি। উবুন্টু সার্ভারে এটি ইনস্টল করা খুব সহজ। আপনি যদি অ্যাপাচি ইনস্টল করে থাকেন তবে আপনি প্রায় শেষ হয়ে গেছেন। শুধু sudo a2enmod dav; service apache2 restart। আপনার ভার্চুয়াল সাইটের একটি সামান্য কনফিগারেশন করতে হবে। এখানে একটি উদাহরণ যা আমি উত্পাদন ব্যবহার করছি:

<VirtualHost *>
    ServerName webdav.mysite.com
    ServerAdmin webmaster@mysite.com

    DocumentRoot /srv/mysite
    DAVLockDB /var/lock/apache2/DAVLock
    <Directory /srv/mysite>
        Order allow,deny
        Allow from all
    Dav On
    DAVMinTimeout 600
    DAVDepthInfinity On
AuthName "mysite login"
AuthType Basic
AuthUserFile /srv/mysite/.htpassword
Require valid-user

    </Directory>
php_admin_value engine off
</VirtualHost>

<VirtualHost *>

    ServerName mysite.com
    ServerAlias *.mysite.com
    ServerAdmin webmaster@mysite.com

    DocumentRoot /srv/mysite/www
    <Directory /srv/mysite/www>
        Order allow,deny
        Allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /srv/mysite/cgi-bin/
</VirtualHost>

আপনি এটিকে / এসআরভি / ইত্যাদি / অ্যাপাচি 2 / সাইটগুলি উপলব্ধ / মাইসাইট রাখতে পারেন এবং তারপরে এটি করতে পারেন sudo a2ensite mysite; sudo service apache2 reload

এখানে যা ঘটছে তা হ'ল আপনি দুটি ভার্চুয়াল সাইট তৈরি করেছেন। একটি হ'ল www.mysite.com এবং অন্যটি ওয়েবডাভ.মাইসাইট ডটকম। পিএইচপি Webdav.mysite.com এ অক্ষম করা হয়েছে যা গুরুত্বপূর্ণ।

এখন আপনি উবুন্টু, উইন্ডোজ এবং ম্যাকোস-এ HTTP- র মাধ্যমে আপনার সাইটে অ্যাক্সেস করতে পারবেন। তিনটিই ওয়েবড্যাভ সমর্থন তৈরি করেছেন। উবুন্টুতে একটি ওয়েবডাভ নেটওয়ার্ক অবস্থান যুক্ত করার জন্য এখানে নির্দেশাবলী রয়েছে ।


কেন এই ভাল? যেহেতু আপনি কোনও অতিরিক্ত সফ্টওয়্যার ছাড়াই যে কোনও অপারেটিং সিস্টেম থেকে আপনার সাইট অ্যাক্সেস করতে পারবেন (sftp উবুন্টুতে কাজ করে, অন্যান্য ওএসে একটি পৃথক প্রোগ্রাম প্রয়োজন)। এছাড়াও, ওয়ার্ডপ্রেসের মতো সাইটের সাথে, ফাইল আপলোডগুলি মোকাবেলার জন্য অনুমতিগুলি ইতিমধ্যে সঠিক কারণ অ্যাপাচি উভয় দিকই নিয়ে কাজ করে। এবং আপনি যদি সুরক্ষা চান, মানক https পাশাপাশি উপলব্ধ। (একই আইপিতে একাধিক সাইট থাকলে আপনি বিভিন্ন বন্দর ব্যবহার করতে পারেন)
newz2000

উপায় দ্বারা, নির্দেশাবলী উপরে অনুমান আপনি আপনার সাইটের জন্য একটি জায়গা তৈরি করেছি: mkdir -p /srv/mysite/www; chown -R www-data.www-data /srv/mysite
newz2000

1
ডিএভি এনক্রিপ্ট হওয়া সুনিশ্চিত নয় (যদি না আপনার ওয়েবসারভারটি এসএসএলও চালাচ্ছে), তাই আমি সাধারণভাবে ডিএভির চেয়ে এসএফটিপি বা আরএসএনসি-র প্রস্তাব দেব।
কিস কুক

0

আমি www / ডেটাতে / var / www এ লেখার অনুমতি দেব এবং আপনার ব্যবহারকারীকে সেই গোষ্ঠীতে যুক্ত করব। এই পদ্ধতিতে ব্যবহারকারীরা যে ডিরেক্টরিতে লিখতে পারেন তা নিয়ন্ত্রণ করা সহজ হবে।

sudo chgrp -R www-data /var/www
sudo chmod g+w -R /var/www 
usermod -a -G www-data your-user

-1

আপনি কি আপনার সাইটের জন্য কোনও কাঠামো ব্যবহার করছেন? দ্রুপাল, ওয়ার্ডপ্রেস ইত্যাদি? উদাহরণস্বরূপ ড্রুপাল ব্রাউজার ইন্টারঅ্যাকশন মাধ্যমে আপলোড সরঞ্জাম আছে।

আপনি কি সাম্বার দিকে তাকিয়েছেন? আপনি সাম্বা শেয়ার সেটআপ করতে পারেন (এবং তাদের জন্য ওয়েবে প্রচুর সংস্থান রয়েছে) এবং উইন্ডোজ এক্সপ্লোরারটি খোলার / সম্পাদনা / সংরক্ষণ / মুছতে কেবল ব্যবহার করুন। ভাগ করার জন্য সেটআপ / var / www এবং তারপরে উইন্ডোজগুলিতে "নেটওয়ার্ক ড্রাইভ" মানচিত্র করুন।

এটি কি কোনও কাজের বা ঘরের পরিবেশ? এটি বাড়ির মতো শোনাচ্ছে তবে আপনি যদি কোনও কাজের পরিবেশে থাকেন ... তবে আপনি সাম্বাকে একইভাবে-ওপেনের মতো সরঞ্জামগুলির সাথে অ্যাক্টিভ ডিরেক্টরিতে যুক্ত করতে পারেন। আমার একটি সার্ভার / ওয়েবসাইট সেটআপ রয়েছে যাতে আইটি শপের যারা তাদের এডি শংসাপত্রগুলির মাধ্যমে সার্ভারের উভয় পাশ (লিনাক্স বা ওয়েবসাইট) এ লগ ইন করতে পারে।

আমি মার্কুরিয়ালের মতো কিছু খোঁজার পরামর্শ দিই। সার্ভারে একটি সংগ্রহশালা তৈরি করুন, এবং উইন্ডোজের সাথে টর্টিসএইচজি-র মতো কিছু সিঙ্ক করুন। আমি ধরে নিলাম এটি আরএসসিএন এর মতো, তবে আপনার সংস্করণ-ইনগ, ব্যাকআপ, বিতরণ করার ক্ষমতা ইত্যাদি থাকবে (এসভিএন, মার্কিউরিয়াল, গিট ইত্যাদি সমস্ত বিকল্প)



-2

আপনি কি এই জাতীয় কিছু পরে?

rsync -az --rsh "ssh" --rsync-path "sudo rsync" ~/website ubuntu@REMOTE-IP:/var/www

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