PDA

View Full Version : سوال: راهکاری برای وصل کردن دامنه به سرور با PHP ؟؟؟



mohsen_31369
چهارشنبه 19 آذر 1393, 12:25 عصر
با سلام خدمت دوستان

به تازگی سروری گرفتم و روی آن lighttpd و php رو نصب کردم. حالا دارم روی یه اسکریپت کار میکنم که وقتی یک دامنه به آن بدهم، اون بیاد دامنه رو به سرور وصل کنه.
برای این کار باید به وسیله php برخی از فایل ها کانفیگ رو ایجاد کنم. مثلا در مسیر /etc/lighttpd/vhosts.d یک فایل جدید مانند domain.com.conf ایجاد کنم. یا اینکه در فایل کانفیگ bind یک zone جدید برای دامنه ایجاد کنم.

برای این کار باید permission اون پوشه ها رو روی 777 بزارم تا بتونم از طریق php دسترسی داشته باشم به اون مسیرها.
آیا این کار از نظر امنیتی مشکلی نداره ؟؟؟ راه دیگه ای هم هست به غیر راه بالا ؟؟؟ مثلا WHM برای وصل کردن یک دامنه به سرور چطور عمل می کنه ؟

متشکر

php_zone
چهارشنبه 19 آذر 1393, 12:51 عصر
درکل منظورت رو خوب بیان نکرده بودی ! ولی باید از api های سیستم کنترل سرور استفاده کنید !
مثلا cPanel یا plesk فکر کنم api دارن و کلی کار میشه باهاشون کرد ...

mohsen_31369
چهارشنبه 19 آذر 1393, 13:15 عصر
من از cpanel یا plesk استفاده نمی کنم،
می خوام خودم با php این کار رو بکنم

rezaonline.net
چهارشنبه 19 آذر 1393, 13:57 عصر
من از cpanel یا plesk استفاده نمی کنم،
می خوام خودم با php این کار رو بکنم
آفرین عین خودمی :)

lighttpd رو حذف کن nginx یا apache نصب کن
بعد باید bind نصب کنید .

سیستم عاملت چیه ؟

با bind میتونی دامنه وصل کنی به سرور و بعدش با آپاچی میتونی دامنه هایی که وصل کردی به سرور رو ، هدایت کنی به یک پوشه خاص .
بقیه اشم که راحته دیگه توی اون پوشه برنامه ات رو میریزی

mohsen_31369
چهارشنبه 19 آذر 1393, 14:14 عصر
ممنون
سیستم عاملم centos6.5 هست.
چرا lighttpd رو حذف کنم؟ چون از htaccess نداره میگی ؟

Bind رو نصب کردم. حالا اگه بخوام یه دامنه جدید به سرور وصل کنم باید توی bind برم یه zone جدید براش ایجاد کنم. خوب اینکار رو خودم باید دستی با ssh انجام بدم. ولی من میخوام خود php این کار رو بکنه با تابع fopen تنظیمات رو باز کنم و دامنه جدید رو اضافه کنم. چون قراره تو سیستمی که دارم روش کار می کنم کاربری که تو سایتم ثبت نام میکنه یه دامنه بهم میده و سایت به طور خودکار دامنه رو به سرور وصل می کنه و یک فضایی بهش میده. حالا برای این کار مجبورم permission مسیرهایی که قراره با php ویرایش بشه رو روی 777 قرار بدم که این کار به نظرم از لحاظ امنیتی یه باگ باشه.مثلا برای اینکه یه zone ایجاد کنم باید فایل named.conf رو با php ویرایش کنم و باید دسترسیش رو 777 بزارم...

آیا این راه درسته یا راههای امن دیگه ای هم هستن ؟

arta.nasiri
چهارشنبه 19 آذر 1393, 15:08 عصر
تو این لینک webBind های خوبی رو معرفی کرده که میتونید با مطالعه سورس کدشون با روال کار آشنا بشید http://www.debianadmin.com/bind-dns-server-web-interfacefrontend-or-gui-tools.html

rezaonline.net
چهارشنبه 19 آذر 1393, 16:33 عصر
سیستم عاملم centos6.5 هست.
کاش اوبونتو داشتی :)


چرا lighttpd رو حذف کنم؟ چون از htaccess نداره میگی ؟
احتمالا یه ذره اذیت بشی باهاش nginx بهتره .


رو نصب کردم. حالا اگه بخوام یه دامنه جدید به سرور وصل کنم باید توی bind برم یه zone جدید براش ایجاد کنم. خوب اینکار رو خودم باید دستی با ssh انجام بدم. ولی من میخوام خود php این کار رو بکنه با تابع fopen تنظیمات رو باز کنم و دامنه جدید رو اضافه کنم. چون قراره تو سیستمی که دارم روش کار می کنم کاربری که تو سایتم ثبت نام میکنه یه دامنه بهم میده و سایت به طور خودکار دامنه رو به سرور وصل می کنه و یک فضایی بهش میده. حالا برای این کار مجبورم permission مسیرهایی که قراره با php ویرایش بشه رو روی 777 قرار بدم که این کار به نظرم از لحاظ امنیتی یه باگ باشه.مثلا برای اینکه یه zone ایجاد کنم باید فایل named.conf رو با php ویرایش کنم و باید دسترسیش رو 777 بزارم...
داری لقمه رو دور سرت میچرخونی اساسی :)
البته ببخشید انقدره رک گفتم .

یه دونه zone مینویسی آدرس رو بصورت . بهش میدی و خلاص .
دیگه هر دامینی که dns هاتو بذاره وصل میشه خودکار

کاری که من توی hastishop.ir انجام دادم .

zone اش رو برات میذارم .


$TTL 3h
@ IN SOA ns1.hastishop.ir. reza19sh.gmail.com. (
1 ; Serial
3h ; Refresh after 3 hours
1h ; Retry after 1 hour
1w ; Expire after 1 week
1h ) ; Negative caching TTL of 1 day
;
@ IN NS ns1.hastishop.ir.
@ IN NS ns2.hastishop.ir.


* IN MX 10 mail.hastishop.ir.
* IN A 148.251.112.92
ns1 IN A 148.251.112.92
ns2 IN A 148.251.112.92
www IN CNAME hastishop.ir.
mail IN A 148.251.112.92
ftp IN CNAME hastishop.ir.

اینطوری هم تعریفش میکنی

zone "." {
type master;
file "/etc/bind/db.all";
};

http://intodns.com/hastishop.ir

mohsen_31369
پنج شنبه 20 آذر 1393, 10:28 صبح
کاش اوبونتو داشتی :)
تازه سرور گرفتم. دارم تست می کنم کدوم بهتره. فکر کنم اوبونتو کارکردن باهاش راحتتر باشه.

من تنظیمات bind رو مطابق با این لینک (https://www.digitalocean.com/community/tutorials/how-to-install-the-bind-dns-server-on-centos-6)انجام دادم ولی مجبور بودم برای هر دامنه ای که بخوام به سرور وصل شه یه zone ایجاد کنم ولی روشت خیلی خوبه !!!

فقط چندتا سوال
این reza19sh.gmail.com. چیه ؟ یکم توضیح می دی؟

اگه بخوایم برای هر دامینی که به سرور وصل میشه یه ساب دامین ایجاد کنم که cookieless باشه. مثل توضیحی که این سایت (https://www.linkedin.com/today/post/article/20140612085341-3877069-increase-the-speed-of-your-website-in-10-mins-by-serving-static-content-from-a-cookieless-domain)داده. دوباره مجبورم که یه zone جدید برای ساب دامین جدید ایجاد کنم که cname باشه. برای اون هم راحلی هست که دیگه نخوام فایل های named رو ویرایش نکنم؟

rezaonline.net
پنج شنبه 20 آذر 1393, 12:01 عصر
این reza19sh.gmail.com. چیه ؟ یکم توضیح می دی؟
ایمیله


اگه بخوایم برای هر دامینی که به سرور وصل میشه یه ساب دامین ایجاد کنم که cookieless باشه.
اینو توی پی اچ پی ست کن برای کوکی

برای سابدامین هم به فایل zone یه رکورد اضافه کن بصورت


* IN A 148.251.112.92
آی پی تو تغییر بده

همین کافیه

توی کانفیگ اپاچی هم باید server name رو فکر کنم بصورت *.example.com بذارید

mohsen_31369
پنج شنبه 20 آذر 1393, 12:19 عصر
ممنون از جوابت

من زیاد با تنظیمات Bind آشنا نیستم. خوب ایمیلت رو برای چی وارد کردی؟ چکاری انجام میده.؟




برای سابدامین هم به فایل zone یه رکورد اضافه کن بصورت




1

* IN A 148.251.112.92









تو لینکی که گذاشتم مقدار type ساب دامین رو برابر CNAME قرار داده. یعنی



* IN CNAME 111.111.111



الان وقت ندارم چکش کنم. می خوام برم فرودگاه ببینم میتونم پا پرواز برم اربعین .... ان شاالله که بتونم برم و همه تون رو دعا کنم.
یا علی ...