हर सेटअप अलग है। मेरे लिए मेरे पास एक सर्वर पर बहुत सारे उपयोगकर्ता हैं जो प्रत्येक वेबसाइट को होस्ट करते हैं, आपके लिए, आपको सिस्टम पर केवल एक से अधिक उपयोगकर्ता बनाने की आवश्यकता नहीं होगी। हालाँकि, यदि आप इस सर्वर पर कई वेबसाइटों का प्रबंधन करते हैं तो यह सेटअप आपको मानक LAMP सेटअप की तुलना में आसान तरीके से प्रत्येक डोमेन को प्रबंधित, कॉन्फ़िगर और डीबग करने में मदद करेगा। ऐसा होने के लिए मैं अपाचे द्वारा कई उपकरणों का उपयोग अनुमति त्रुटियों के आसपास प्राप्त करने के लिए करता हूं।
सबसे पहले, यह दस्तावेज़ संरचना है जिसका मैं उपयोग करता हूं:
/home/[USER]/domains/[DOMAIN]/html
/home/[USER]/domains/[DOMAIN]/logs
प्रत्येक उपयोगकर्ता के पास एक डोमेन फ़ोल्डर के साथ अपना खाता होता है (जिसे मैंने इसमें जोड़ा है जो /etc/skel
हर बार बनाया जाता है। प्रत्येक डोमेन में domains
फ़ोल्डर के साथ फ़ोल्डर में इसका स्वयं का html
फ़ोल्डर है (मेरे पास इसके कारण हैं, मुख्य रूप से इसलिए डोमेन के बाहर वेब फ़ाइलें हो सकती हैं) सार्वजनिक दायरे के अनुसार) इस संरचना को संशोधित करने के लिए स्वतंत्र महसूस करें जैसा कि आप फिट देखते हैं, बस इस पोस्ट में उन परिवर्तनों को ले जाने के लिए याद रखें।
दूसरे, मैं बहुत से PHP साइटों को होस्ट करता हूं इसलिए मैं अपने कॉन्फ़िगरेशन में suPHP का उपयोग करता हूं। डिफ़ॉल्ट रूप से मानक संग्रह पैकेज में उचित संकलित ध्वज सक्षम नहीं होता है जिसके परिणामस्वरूप suPHP का कम सुरक्षित संस्करण होता है। मैंने अपना खुद का suPHP पैकेज बनाया है जिसका उपयोग मैं अपने सर्वर पर करता हूं, नीचे दिए गए इंस्टॉलेशन निर्देश। suPHP आपको यह परिभाषित करने की अनुमति देता है कि उपयोगकर्ता PHP लिपियों को किस तरह निष्पादित किया जाना चाहिए (अन्य बातों के साथ: प्रत्येक साइट के लिए कस्टम php.ini, आदि)। मैं Apache के लिए suExec को भी सक्षम करता हूं - आगे www-data उपयोगकर्ता (ऐसा उपयोगकर्ता जिसे मैं तिरस्कृत करता हूं) के पास कोई स्वामित्व होने की आवश्यकता को दूर करता हूं।
पहले सुनिश्चित करें कि आपके पास अपाचे हैं, और आपके सर्वर पर स्थापित अन्य सभी सेवाएं। सुनिश्चित करें कि वे कम से कम काम कर रहे हैं। उसके बाद मैं suphp-common और आवश्यक libapache2-mod-suphp मॉड्यूल स्थापित करने की सलाह देता हूं (अधिक जानकारी: क्या हैं और मैं उनका उपयोग कैसे करूं? )। फिर, उन स्थापित करने के बाद, 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
हालांकि यह मेरी राय में, लचीलेपन की मात्रा को सेटअप करने के लिए बहुत कुछ लग सकता है, लेकिन सेटअप समय से बहुत दूर है। हालाँकि आपको केवल एक ही उपयोगकर्ता वेबसर्वर की आवश्यकता है, भविष्य में यदि आप कभी भी एक उपयोगकर्ता वेबसर्वर के अलावा कुछ नहीं चाहते थे, तो ऐसा करने के लिए आपको आगे की कार्रवाई (या बस सुरक्षा को एक साथ छोड़ना) करने की आवश्यकता होगी।