فصل اول آپاچی دایرکت ادمین
اگر از customapache با نسخه ۱٫۳ apache به آخرین نسخه استفاده می کنید، کد زیر را اجرا کنید
cd /usr/local/directadmin/customapache
./build clean
./build update
./build apache_mod_ssl
اگر از آپاچی ۲٫x استفاده می کنید، به جای apache_mod_ssl از “./build apache_2” استفاده کنید.
این باید هر دو گزینه پیکربندی و نسخه آپاچی را به آخرین نسخه به روز رسانی کند. پس از اتمام به روز رسانی، شما باید آپاچی را مجددا راه اندازی کنید:
/sbin/service httpd restart
BSD رایگان
/usr/local/etc/rc.d/httpd restart
قسمت دوم
قالب VirtualHost
اگر می خواهید تنظیمات VirtualHosts را برای تمام دامنه ها تغییر دهید، می توانید با ایجاد قالب های سفارشی خودتان این کار را انجام دهید.
cd /usr/local/directadmin/data/templates
cp virtual_host2*.conf custom
cd custom
هنگامی که ۴ فایل VirtualHost (یا فقط آنهایی که میخواهید) را به دایرکتوری سفارشی کپی کرده اید، سپس می توانید فایل های جدیدی که کپی کرده اید را ویرایش کنید. DirectAdmin همیشه قبل از رفتن به موارد پیش فرض، برای فایل سفارشی بررسی می کند. عدم قابلیت کپی کردن فایلهای مجازی virtual_host2 * .conf به دایرکتوری سفارشی قبل از اصلاح آنها باعث از بین رفتن تمام تغییرات خواهد شد که DirectAdmin به روز رسانی می کند (فایل ها رونویسی می شوند). توجه داشته باشید که در واقع ۸ فایل virtual_host وجود دارد، اما فقط باید درباره ۴ مورد که برای شما اعمال می شود نگران باشید. فایل ها با ۲ در آنها برای apache 2.x هستند. کسانی که بدون ۲ در آنها هستند برای apache 1.3 هستند.
در داخل فایلهای مجازی * .conf، شما کدی شبیه کد httpd.conf را پیدا خواهید کرد، اما حاوی چه چیزی است که به عنوان tokens شناخته می شود. این نشانه ها چه خواهد شد با داده های خاص کاربر برای هر دامنه ایجاد شده جایگزین.
Available tokens | |
DOMAIN | the name of the domain. eg: domain.com |
IP | the IP address associated with that domain. eg: 192.168.3.4 |
HOME | The users home directory. eg: /home/gary |
ADMIN | The email address of the server admin. webmaster@domain.com |
HOSTNAME | The hostname of the server. eg: server.domain.com |
SAFE_MODE | ON or OFF if php safe_mode is enabled or not |
PHP | ON or OFF if php is enabled or not |
CGI | The whole httpd.conf line used to add the Script-Alias |
HANDLERS | httpd.conf code holding all apache handlers |
MIMETYPE | httpd.conf code holding all apache mime types |
USER | the username |
GROUP | the users group name (99% of the time, it’s the same as the USER) |
DOCROOT | The DocumentRoot of the VirtualHost. This is the path that apache will use to access the data when the ServerName (domain.com) is requested |
SUB | for the virtual_host_*sub.conf file, the subdomain name. eg: sub |
CUSTOM | custom httpd.conf code to be inserted if the domain.com.cust_httpd file exists. (See Adding custom httpd.conf code the VirtualHost of one domain) |
CAROOT | The whole httpd.conf line used to load in the SSLCACertificateFile directive |
CERT | The path of the certificate to be used for the domain |
CREATOR | The username of the account that created the User account who owns this domain |
KEY | The path of the certificate to be used for the domain |
بالا از قالب باید حاوی |؟ CGI = … | و | DOCROOT = … |. این خطوط جایی هستند که داده ها برای نشانگرهای CGI و DOCROOT تنظیم می شوند. اگر CGI غیرفعال باشد، این خط را نادیده گرفته و نشانه CGI خالی است. اگر دامنه به حالت تعلیق درآید، DOCROOT مسیر مسیر صفحه تعلیق را پر می کند. نشانه CAROOT خالی خواهد ماند مگر اینکه کاربر یک CARootCertificate معتبر را از طریق DA اضافه کرده است.
هنگام اختصاص یک مقدار به CGI یا DOCROOT می توانید از نشانه ها استفاده کنید، فقط از TOKEN به جای TOKEN استفاده کنید.
هنگامی که از فایل virtual_host * .conf جدید خود خوشحال هستید، باید در فایل های httpd.conf واقعی استفاده کنید. شما می توانید دایرکت ادمین را برای بازنویسی تمام فایل های کاربر httpd.conf با اجرای اجرا، فعال کنید:
echo “action=rewrite&value=httpd” >> /usr/local/directadmin/data/task.queue
فرمان صف صف کار را که یک بار در هر دقیقه بررسی می شود، اضافه می کند، بنابراین ممکن است چند دقیقه قبل از اینکه تمام فایل های httpd.conf بازنویسی شوند. توجه داشته باشید: /etc/httpd/conf/httpd.conf اصلی هرگز نویسی نداشته باشد (مگر اینکه DirectAdmin نصب مجدد شود) بنابراین هر گونه تغییری که ایجاد می کنید ایمن خواهد بود.
توجه داشته باشید که اگر شما نمی خواهید تمام تنظیمات جهانی باشد، می توانید از دستورات if-then-else نیز استفاده کنید. مثلا می گویند میخواهید یک آیتم سفارشی اضافه کنید، فقط برای ۱ دامنه:
|*if DOMAIN=”domain.com”|
#custom item for just this domain
|*endif|
برای اطلاعات بیشتر درباره اینکه چه چیز دیگری می توانید با این ابزار اسکریپت اولیه انجام دهید، پیوند if-then-else را مشاهده کنید.
شما همچنین می توانید اسکریپت های واقعی را با نمایش داده های پایگاه داده، و غیره اجرا کنید … اگر شما می خواهید با استفاده از بخش اسکریپت از قالب ها.
اطلاعات بیشتر در مورد آن در اینجا: http://www.directadmin.com/features.php؟id=756
قسمت سوم
اضافه کردن کد httpd.conf به VirtualHosts یک دامنه
DirectAdmin به Administrator اجازه می دهد کد اضافی httpd.conf را وارد کند که کاربر ممکن است نیاز داشته باشد. برای دسترسی به صفحه کنترل برای این قابلیت، به پنل مدیریت -> تنظیمات مدیریت -> تنظیمات Httpd سفارشی بروید.
هنگامی که فهرست دامنه را مشاهده می کنید، روی دامنه ای که می خواهید کد اضافی httpd.conf را وارد کنید را کلیک کنید.
در پایین صفحه، httpd.conf فعلی را برای آن کاربر مشاهده خواهید کرد. این شامل تمام VirtualHosts برای تمام دامنه، زیر دامنه و هدایت می شود. هر گونه تغییری که توسط این صفحه ساخته شده تنها بر روی VirtualHosts برای دامنه مورد نظر تاثیر می گذارد نه دامنه های دیگر متعلق به آن کاربر. اگر تمام دامنه ها به تغییرات نیاز دارند، شما می توانید این روند را برای هر دامنه تکرار کنید.
در قسمت textarea بالا، کد httpd.conf سفارشی را که می خواهید وارد کنید، کپی کنید. کد شما نوشتار در CUSTOM | نشانه برای همه VirtualHosts برای این دامنه. اگر شما نیاز به حرکت | CUSTOM | است، می توانید قالب ها را به صورت مورد نیاز ویرایش کنید نشانه به جایگاه دیگری در VirtualHost.
تمام نشانه هایی که برای VirtualHost در دسترس هستند با این ویژگی در دسترس خواهند بود. شما همچنین می توانید هر نشانه ای که می خواهید را تنظیم کنید. برای مثال، اگر شما برای تغییر DocumentRoot برای یک دامنه، می توانید وارد کنید:
|?DOCROOT=/new/path/you/want|
توجه داشته باشید که این DocumentRoot جدید برای تمام DocumentRoots برای این دامنه استفاده می شود، از جمله اتصالات https و زیر دامنه، بنابراین ممکن است اثر دلخواه نباشد.
یکی دیگر از کاربردهای رایج این است که سرورAlias دیگری را اضافه کنید. این اجازه می دهد تا دامنه دیگری برای دسترسی به همان محتوای مشابه استفاده شود. برای انجام این کار، می توانید نوشت
ServerAlias newdomain.com www.newdomain.com
برای دریافت domains newdomain.com و www.newdomain.com برای اشاره به دامنه اصلی VirtualHost. شما همچنین باید اطمینان حاصل کنید که newdomain.com و www.newdomain.com هر دو به آیسی مشابه در IP | ذخیره می شوند.
توجه داشته باشید، در مثال بالا، DOCROOT token را در تمام ۴ قالب تنظیم خواهد کرد، بنابراین این نیز برای تمام زیردامنه ها اعمال می شود که ممکن است مورد نظر نباشد.
برای اینکه DOCROOT فقط به دامنه اعمال شود و نه به زیر دامنه، اگر اگر مثلا:
|*if !SUB|
|?DOCROOT=/new/path/you/want|
|*endif|
قسمت چهارم
فایل های CGI باعث ایجاد خطای سرور داخلی می شوند
این به این معنی است که اسکریپت cgi به درستی اجرا نشد. چندین دلیل وجود دارد که می تواند این خطا را ایجاد کند، بنابراین چند چیز باید بررسی شود.
۱) check / var / log / httpd / suexec_log. این شامل هرگونه خطا می شود که نتیجه آن عدم دسترسی صحیح به پرونده است. فایل باید در یک cgi-bin باشد و باید مالک / گروه را به عنوان نام کاربری که مالک سایت است داشته باشد. اگر آن متعلق به هر کس دیگری باشد، اجرا نخواهد شد. همچنین، اسکریپت باید اجازه اجرا داشته باشد. شایع ترین مجوز chmod 755 است. برو از طریق تمام دایرکتوری ها از public_html پایین به دایرکتوری که اسکریپت در است و مطمئن شوید که آنها همه را به ۷۵۵ (public_html می تواند ۷۵۰ * تنها * اگر آن را به گروه از آپاچی) .
اگر suexec_log فقط اسکریپت را اجرا می کند، پس علت ممکن است با کد اسکریپت باشد. ساده ترین راه برای تشخیص مشکلات کدگذاری اسکریپت اینست که ابتدا اسکریپت را از طریق ssh به صورت دستی اجرا کنید.
cd /home/username/domains/domain.com/public_html/cgi-bin
./script.cgi
یک خطای رایج برای استفاده از مترجم نادرست است. ۲ شایع ترین مترجم عبارتند از:
#!/usr/bin/perl
و
#!/usr/local/bin/php
این کد باید در خط اول اسکریپت نمایش داده شود. Somtimes یک فایل در فرمت ویندوز بارگذاری می شود، بنابراین شخصیت خط جدید بازگشت (بازگشت) اشتباه شکل گرفته و فایل باید در فرمت دیگری بارگیری شود.
خطاهای دیگر که هنگام اجرای اسکریپت به صورت دستی از ssh تولید می شود، ماژول های perl را از دست می دهد، در این صورت شما باید خودتان آن را نصب کنید. Cpan ساده ترین روش برای نصب ماژول های پرل جدید است، به عنوان مثال:
perl -e shell -MCPAN
install Bundle::DBD::mysql
یا
perl -MCPAN -e ‘install Bundle::DBD::mysql’
قسمت پنجم
اجرای اسکریپت CGI از هر دایرکتوری یا از طریق / ~ username / cgi-bin
به منظور اعمال فشار به apache برای اجرای اسکریپت cgi، به سادگی یک فایل با نام .htaccess در داخل پوشه ای که در آن شما می خواهید اسکریپت را اجرا کنید، ایجاد کنید. این متن را در فایل وارد کنید:
Options +ExecCGI
AddHandler cgi-script .cgi .pl
قسمت ششم
آپاچی پاسخ متوقف می شود اما در حال اجرا است
علل احتمالی:
۱) MaxClients مجموعه ای به ارزش بسیار کم است
۲) اگر بیش از ۸۰۰ ورودی VirtualHost دارید (دامنه، زیر دامنه، ssl، و غیره)، فایلهای ErrorLog بازه های متنوع فایل را باز می کنند و آپاچی قادر به ورود به سیستم خطاهای نمی باشد و ممکن است متوقف شود. این شماره می تواند در هر بسته بسته به محدودیت و تنظیم سیستم متفاوت باشد. (پایین / بالاتر)
راه حل ها:
۱) ویرایش /etc/httpd/conf/httpd.conf و تنظیمات MaxClients را به چیزی مانند ۲۰۰ یا ۳۰۰ افزایش دهید.
۲)
cd /usr/local/directadmin/data/templates
cp virtual_host*.conf custom
cd custom
# حذف تمام خطوط ErrorLog (و یا اظهار نظر آنها) از ۴ فایل virtual_host * .conf که در دایرکتوری سفارشی هستند.
perl -pi -e ‘s/Error/#Error/’ virtual_host*.conf
echo “action=rewrite&value=httpd” >> /usr/local/directadmin/data/task.queue
چند دقیقه بعد آپاچی باید به صورت خودکار راه اندازی مجدد شود (ممکن است بازنویسی با بیش از ۸۰۰ سایت انجام شود).
اگر این به اندازه کافی برای کاهش حد مجاز نیست و مشکل همچنان ادامه دارد، همچنین سعی کنید از نوشته های CustomLog نظر دهید:
perl -pi -e ‘s/CustomLog/#CustomLog/’ virtual_host*.conf
و فرمان echo بالا را برای بازنویسی فایل های httpd.conf تکرار کنید.
۳) سایر اطلاعات احتمالی:
ویرایش /usr/include/bits/typesizes.h و /usr/include/linux/posix_types.h و تنظیم
#define __FD_SETSIZE 32768
و سپس با customapache یا custombuild مجددا ترکیب کنید.
در FreeBSD، آن /usr/include/sys/select.h یا /usr/include/sys/types.h است
تغییر دادن:
#define FD_SETSIZE 1024U
به
#define FD_SETSIZE 32768U
سپس apache / php را دوباره کامپایل کنید
۴) ویرایش /etc/sysctl.conf و اضافه کردن:
fs.file-max = 32768
/sbin/sysctl -w kern.maxfiles=32768
/sbin/sysctl -w kern.maxfilesperproc=32768
سپس apache / php را دوباره کامپایل کنید
سایر امکانات ممکن برای sysctl.conf:
kern.maxfiles = 32768
kern.maxfilesperproc = 32768
5) راه دیگری برای آزاد سازی FileDescriptors (FDs) این است که ssl را غیر فعال کنید در هر دامنه ای که نیازی به آن ندارد.
روش quck برای چک کردن این است که تایپ کنید:
ls -la /home/*/domains/*/private_html/index.html
به سرعت اسکن لیست برای هر index.html است که betwen 200-300 بایت در اندازه نیست. هر کسی که در آن محدوده نیست، ویرایش خواهد شد و کاربر احتمالا از ssl استفاده می کند، بنابراین از آن نام های کاربری و دامنه استفاده می شود. در حال حاضر، راه سریع برای خاموش کردن SSL تودهای برای دامنه ها، تایپ است:
perl -pi -e ‘s/ssl=ON/ssl=OFF/’ /usr/local/directadmin/data/users/*/domains/*.conf
چه کاری انجام می شود تعداد FD ها را ۵۰٪ کاهش می دهد.
۶) اشکال Openssl. یا به روز رسانی openssl و recompile apache، یا patch apache 2:
http://issues.apache.org/bugzilla/show_bug.cgi؟id=43717
پیام های خطا مرتبط:
[error] System: Too many open files in system (errno: 23)
host: isc_socket_create: not enough free resources socket.c:2117: REQUIRE(maxfd <= (int)1024) failed.
host: isc_socket_create: not enough free resources
همچنین Exim ممکن است خطای زیر را پر کند: Exim از طریق اسکریپت php نامیده می شود:
R=lookuphost defer (-1): host lookup did not complete
کاهش تعداد دفعات استفاده از Apache Filedescriptors، اگر محدودیت توصیفگر فایل دلیل دلیل خطا باشد، کمک خواهد کرد.
قسمت هفتم
آپاچی شروع نخواهد شد و در سیاههها چیزی نخواهد بود
احتمال این است که اگر آپاچی شروع نشود و هیچ چیز را وارد نمی کند، error_log کامل است که از شروع آپاچی جلوگیری می کند. برای چک کردن دوبار، اجرا کنید:
cd /var/log/httpd
ls -lS | less
اگر هر فایل حدود ۲-۳ گیگ (یا بیشتر) باشد، پس احتمالا این مشکل است.
راه حل این است که حذف سیاهههای مربوط، آپاچی را مجددا راه اندازی کنید و سپس اقدامات پیشگیرانه را اجرا کنید.
cd /var/log/httpd/
rm -f error_log
rm -f access_log
rm -f suexec_log
rm -f fpexec_log
/sbin/service httpd restart (“/usr/local/etc/rc.d httpd restart” for FreeBSD)
۲) برای هر روز چرخش دهید
perl -pi -e ‘s/weekly/daily/’ /etc/logrotate.conf
perl -pi -e ‘s/rotate 4/rotate 2/’ /etc/logrotate.conf
اگر آپاچی هنوز شروع نشود، / var / log / messages را بررسی کنید و تجدید آپاچی را امتحان کنید.
قسمت ۸
اگر می خواهید همه فایل ها را در یک دایرکتوری که از یک فایل index.html (یا index.php) استفاده نمی کنند، می توانید یک فایل .htaccess با مطالب زیر ایجاد کنید:
Options +Indexes
این به apache می گوید که شما می خواهید تمامی فایل های موجود در دایرکتوری را لیست کنید.قسمت ۹
آپاچی دوباره راه اندازی نمی شود: [crit] (98) آدرس در حال استفاده است: make_sock: نمی تواند به پورت ۸۰۹۰ متصل شود
اگر آپاچی به طور کامل خاموش نشود، در نظر گرفتن راه اندازی مجدد مجازی (پیوند مربوطه را در زیر ببینید) را بررسی کنید و همچنین اطمینان حاصل کنید که سیستم شما به روز می شود به طوری که شما هیچ اسکریپت پی اچ پی قدیمی در سرور ندارید.
[crit] (98) آدرس در حال حاضر در حال استفاده: make_sock: نمی تواند به پورت ۸۰۹۰ متصل شود
یا
[crit] (98) آدرس در حال استفاده است: make_sock: نمی تواند به پورت ۴۴۳ متصل شود
یا
[crit] (98) آدرس در حال استفاده است: make_sock: نمی تواند به پورت ۸۰ متصل شود
اگر شما این خطا را در var / log / httpd / error_log خود مشاهده می کنید، این بدان معنا است که قبل از تلاش برای راه اندازی مجدد آپاچی به طور کامل خاموش نخواهد شد. این به این معنی است که فرآیند جدید قادر به اتصال به پورت های داده شده نخواهد بود زیرا هنوز توسط کپی قدیمی آپاچی که به طور کامل تعطیل نشده استفاده می شود.
برای حل این مسئله، از یک اسکریپت بوت متفاوت استفاده کنید که برای جلوگیری از توقف همه فرآیندهای آپاچی قبل از شروع کار جدید صبر کنید:
cd /usr/local/directadmin/customapache
rm -f httpd*
./build update
هنگامی که اسکریپت های جدیدی را دانلود کرده اید، باید آنها را نصب کنید:
cp httpd /etc/init.d/httpd
chmod 755 /etc/init.d/httpd
chkconfig httpd reset
رایگان BSD:
cp httpd_freebsd /usr/local/etc/rc.d/httpd
chmod 755 /usr/local/etc/rc.d/httpd
قسمت ۱۰
حفاظت از Hotlink: چگونه برای جلوگیری از سرقت فایل های شما
یک فایل htaccess را در دایرکتوری public_html خود با کد زیر ایجاد کنید:
RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://(www.)?domain.com.*$ [NC]
RewriteRule .(gif|jpg)$ – [F]
در حقیقت domain.com دامنه شماست
قسمت ۱۱
چگونه یک وب سایت را به یک آدرس دیگر بفرستیم
چند راه برای انجام این کار وجود دارد، اما ساده ترین راه این است که از php استفاده کنید.
برای انجام این کار، شما نیاز به ایجاد صفحه ای دارید که حمل و نقل را انجام می دهد. این می تواند هر صفحه باشد، تا زمانی که به «php» پایان یابد. اگر میخواهید یک دامنه را هدایت کنید، می توانید index.php را در داخل پوشه public_html ایجاد کنید.
هنگامی که شما تصمیم می گیرید کدام صفحه را استفاده کنید، آن را ایجاد کنید و متن زیر را وارد کنید:
<?php
header(“Location: http://whereyouwant.com/to/go.html“);
?>
جایی که http://whereyouwant.com/to/go.html جایی است که شما می خواهید صفحه را به جلو ببرید. شما می توانید از مقادیر محلی، به عنوان مثال: /page.html، یا URL های کامل مانند مثال بالا (http: //… و غیره) استفاده کنید.
راه دیگری برای انجام این کار این است که از فایل htaccess در پوشه public_html استفاده کنید. محتوای نمونه:
Redirect 301 / http://whereyouwant.com/to/go.html
که یک نتیجه مشابه را به عنوان index.php موقعیت تغییر مسیر تولید می کند.
قسمت ۱۲
چگونه از آپاچی ۲ به apache 1.3 پیشی بگیریم
اگر پس از نصب apache 2 به apache 1.3 نیاز دارید، باید موارد
زیر را انجام دهید:
۱) فایل httpd.conf قدیمی را بازیابی کنید:
cp -f /etc/httpd/conf/httpd.conf.1.3.backup /etc/httpd/conf/httpd.conf
2) دریافت DirectAdmin برای استفاده از فایل های قدیمی httpd.conf برای کاربران. ویرایش فایل /usr/local/directadmin/conf/directadmin.conf و تغییر apache_ver = 2.0 به apache_ver = 1.3. همچنین، اگر شما از custombuild استفاده می کنید و به customapache می روید، باید مقدار apache_conf را دوباره تنظیم کنید:
apacheconf=/etc/httpd/conf/httpd.conf
سپس تایپ کنید
echo “action=rewrite&value=ips” >> /usr/local/directadmin/data/task.queue
echo “action=rewrite&value=httpd” >> /usr/local/directadmin/data/task.queue
echo “action=directadmin&value=restart” >> /usr/local/directadmin/data/task.queue
3) حالا شما می توانید apache 1.3 را دوباره کامپایل کنید
rm -f /usr/lib/apache/*
cd /usr/local/directadmin/customapache
./build clean
./build all
4) ثابت لینک ماژول ها:
cd /etc/httpd
rm -f modules
ln -s /usr/lib/apache modules
۵) اسکریپت بوت قدیمی را بازیابی کنید:
رایگان BSD:
cp -f /usr/local/directadmin/customapache/httpd_freebsd /usr/local/etc/rc.d/httpd
chmod 755 /usr/local/etc/rc.d/httpd
/usr/local/etc/rc.d/httpd restart
سپس تایپ کنید
cp -f /usr/local/directadmin/customapache/httpd /etc/init.d/httpd
chmod 755 /etc/init.d/httpd
/etc/init.d/httpd restart
قسمت ۱۳
چگونه می توان پیگیری کرد که کدام سایت از فرآیندهای آپاچی استفاده می کند و باعث ایجاد بار می شود
اگر شما آپاچی ۲٫x را با custombuild اجرا می کنید، آنگاه در فایل موجود است:
/etc/httpd/conf/extra/httpd-info.conf
خط “اجازه از” را تغییر دهید تا IP شما را شامل شود (به عنوان مثال: ۱٫۲٫۳٫۴)، یا خط را به طور کامل حذف کنید تا اجازه دهید همه از آن استفاده شود.
<Location /server-status>
SetHandler server-status
Order deny,allow
Deny from all
Allow from 1.2.3.4
</Location>
یا
<Location /secret-server-status>
SetHandler server-status
</Location>
تغییر وضعیت / server-status به چیزی که سخت است حدس بزنید اگر از روش دوم استفاده می کنید، چون ما نمی خواهیم فقط کسی که این صفحه را ببیند باشد.
همچنین حذف #ExtendedStatus با حذف # کاراکتر تغییر دهید
ExtendedStatus On
برای آپاچی ۱٫۳، /etc/httpd/conf/httpd.conf خود را ویرایش کنید و اضافه کنید
ExtendedStatus On
<Location /httpd-status>
SetHandler server-status
</Location>
درست بعد از کد ای که می گوید “ServerSignature On”. ذخیره، خروج، سپس آپاچی را راه اندازی مجدد کنید. شما می توانید به صفحه آمار با رفتن به http://1.2.3.4/httpd-status که در آن ۱٫۲٫۳٫۴ IP سرور شما است، دسترسی پیدا کنید.
قسمت ۱۴
راه اندازی webmail.domain.com به عنوان پیش فرض برای دامنه های جدید.
۱) باید آپاچی را مجددا راه اندازی کنید. این را می توان با اضافه کردن یک مجله مجازی ۲ در امتداد دامنه اصلی یکی انجام داد.
cd /usr/local/directadmin/data/templates
cp virtual_host2.conf custom
cd custom
شما باید فایل مجازی کپی شده virtual_host2.conf را ویرایش کنید و تا پایان آنچه که در حال حاضر دارید، آبی بنویسید (محتویات ممکن است متفاوت باشد)
فقط مطمئن شوید که VirtualHost جدید را زیر یک موجود اضافه کنید.
|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html|
|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/usr/local/lib/php/|
<VirtualHost |IP|:|PORT_80| |MULTI_IP|>
|CUSTOM|
|?CGI=ScriptAlias /cgi-bin/ `DOCROOT`/cgi-bin/|
ServerName www.|DOMAIN|
ServerAlias www.|DOMAIN| |DOMAIN| |SERVER_ALIASES|
ServerAdmin |ADMIN|
DocumentRoot |DOCROOT|
|CGI|
…
…
</VirtualHost>
<VirtualHost |IP|:|PORT_80| |MULTI_IP|>
ServerName webmail.|DOMAIN|
ServerAdmin |ADMIN|
DocumentRoot /var/www/html/squirrelmail
CustomLog /var/log/httpd/domains/|DOMAIN|.bytes bytes
CustomLog /var/log/httpd/domains/|DOMAIN|.log combined
ErrorLog /var/log/httpd/domains/|DOMAIN|.error.log
</VirtualHost>
ذخیره و خروج. سپس اجرا شود
echo “action=rewrite&value=httpd” >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d
برای بازنویسی فایل های httpd.conf.
2) شما همچنین باید تنظیمات DNS را تنظیم کنید.
cd /usr/local/directadmin/data/templates
cp dns_a.conf custom
cd custom
echo “webmail=|IP|” >> dns_a.conf
این پیام وب پست را برای مناطق جدید DNS تنظیم خواهد کرد. برای مناطق موجود در دنیای مجازی، شما باید به صورت دستی پیام وب پست را وارد کنید تا به IP های دامنه اشاره شود.
قسمت ۱۵
آپاچی بعد از به روز رسانی در FreeBSD شروع نخواهد شد
یک مشکل با php / apache باعث آپاچی در FreeBSD نمی شود. این segfaults و هسته تجزیه و تحلیل، ورود به / var / log / httpd / error_log.
سعی کنید با استفاده از فایل configure.php خود را با –with-openssl پاک کنید و پیپ را مجددا پیکربندی کنید.
cd /usr/local/directadmin/customapache
vi configure.php
#remove –with-openssl from the file, save, exit.
./build clean
./build php n
تغییر دادن:
AddModule mod_perl.c
به
#AddModule mod_perl.c
و سپس apache را راه اندازی مجدد کنید. اگر “AddModule mod_perl.c” ندارید، نگران این مطلب نباشید.
اگر شما آن را نیز داشته باشید، “LoadModule perl_module /usr/lib/apache/mod_perl.so” را حذف کنید.
این فایل ها در cgi-bin تاثیر نمی گذارد (من تعداد بسیار کمی از کاربران را در حال استفاده از mod_perl خودم دیده ام).
اطلاعات بیشتر:
راه حل قبلی برای مشکل این است که پرچم های php php را از فایل های httpd.conf حذف کنید:
cd /usr/local/directadmin/data/templates
cp virtual_host*.conf custom
cd custom
perl -pi -e ‘s/php_admin/#php_admin/’ *
echo “action=rewrite&value=httpd” >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d
/usr/local/etc/rc.d/httpd restart
یک کاربر گزارش داد که نصب zend این مشکل را نیز حل کرده است، بنابراین سعی کنید:
cd /usr/local/directadmin/customapache
./build zend
احتمالا باید zend را به ۲٫۵٫۷ از ۲٫۶٫۲ پایین بیاوریم و همچنین فایل zend binaries ممکن است به عقب سازگار نباشد.
برای پایین آوردن به آپاچی ۱٫۳٫۳۳ و پی اچ پی ۴٫۳٫۱۱، اجرا کنید:
cd /usr/local/directadmin/customapache
./build clean
perl -pi -e ‘s/1.3.34/1.3.33/’ build
perl -pi -e ‘s/1.3.34/1.3.33/’ configure.apache_ssl
perl -pi -e ‘s/2.8.25/2.8.24/’ build
perl -pi -e ‘s/4.4.1/4.3.11/’ build
./build update_data
./build all d
خطا: نمی توان SSL باینری زیر / usr یافت
این اتفاق می افتد با اسکریپت پیکربندی برای آپاچی نمی تواند فایل های openssl (یا ssleay) را در هر یک از
/ usr / bin / openssl
/ usr / sbin / openssl
/ usr / apps / openssl
مکان معمول برای openssl است / usr / bin / openssl
در یک سیستم Debian، اجرا کنید
apt-get install openssl
قسمت ۱۷
semget: هیچ فضای بر روی دستگاه وجود ندارد
این مربوط به سمافورها در سیستم شما است (شما اجرا کرده اید). برای پاک کردن آنها موارد زیر را اجرا کنید:
ipcs | grep apache | awk ‘{print $2}’ > sem.txt
for i in `cat sem.txt`; do { ipcrm -s $i; }; done;
اگر این اتفاق معمولی می افتد، ممکن است مجبور شوید حد مجاز IPPC خود را تغییر دهید.
در زیر /etc/sysctl.conf زیر را تنظیم کنید:
kernel.msgmni = 1024
kernel.sem = 250 256000 32 1024
و سیستم خود را برای بارگذاری در آن مقادیر راه اندازی مجدد کنید.
در صورتی که هنوز هم کمک نمی کند، شما می توانید با استفاده از cronjob به طور مرتب چک کنید و آنها را در صورت نیاز پاک کنید.
قسمت ۱۸
چگونه همه خطوط را به httpd.conf اضافه کنیم
اگر DA (./directadmin I) را در یک جعبه زنده دوباره نصب کنید، فایل /etc/httpd/conf/httpd.conf شما تمام اطلاعات را رونویسی و خالی میکند. شما باید همه خطوط Include را برای کاربران خود بخوانید تا سایتهای آنها نشان داده شوند (به جای آن صفحات آپاچی یا صفحات IP مشترک را خواهید دید)
نوع:
cd /usr/local/directadmin/data/users
for i in `ls`; do { echo “Include /usr/local/directadmin/data/users/$i/httpd.conf” >> /etc/httpd/conf/httpd.conf; }; done;
توجه داشته باشید که این اضافه کردن خطوط شامل برای * همه * کاربران است. بنابراین اگر شما کاربران را به DA اضافه کردید پس از اینکه شما “./directadmin من” را اجرا کردید، شما با تکراری پایان خواهید یافت. اطمینان حاصل کنید که نسخه های Include lines را کپی نکنید (آپاچی راه اندازی مجدد نمی کند، به شما اجازه می دهد)
قسمت ۱۹
wildcard * .domain.com
آخرین روش زیر را ببینید اگر می خواهید دیگر دامنه های زیر را با داده های خود کار کنید یا اگر می خواهید دامنه اصلی داده های مختلف را نشان دهد.
۱) راه اندازی DNS با یک علامت – رکورد. به کنترل Dns بروید و یک ضبط “A” اضافه کنید:
* -> 1.2.3.4
جایی که ۱٫۲٫۳٫۴ IP از دامنه شما است
این اجازه خواهد داد anything.domain.com برای حل و فصل به سرور شما. آپاچی هنوز نمی داند چگونه این نام را هدایت کند.
۲) برای نصب آپاچی، به:
سطح مدیریت -> تنظیمات سفارشی Httpd -> domain.com
در قسمت متن بالا، این خط * یکی را اضافه کنید:
ServerAlias *.|DOMAIN|
مرحله ۲
سایر کاربردهای مشابه ممکن است aliasing subdomain باشد، در حالی که test.domain.com مشابه test.domain2.com است.
شما می توانید این را با مرحله ۱) بالا انجام دهید، سپس به جای مرحله ۲ به بالا زیر وارد کنید:
|*if SUB|
ServerAlias |SUB|.domain2.com
|*endif|
که هر زیر دامنه موجود از domain2.com را به domain.com می رساند.
من هنوز تمام زیر دامنه های دیگر را می خواهم تا با داده های مختلف خود کار کنند
شما ممکن است متوجه شوید که هنگام استفاده از گزینه DomainAlias در حوزه اصلی خود، آن دسته از زیر دامنه های دیگر نیز با علامت زیر رفتار می شود.
اگر می خواهید یک مقدار سرآیند را داشته باشید، اما هنوز subdomains ها را به جای دیگری ایجاد کرده اید، پس باید موارد زیر را انجام دهید.
پیش فرض این است که VirtualHost را در httpd.conf نشان می دهد تا بعد از VHs زیر دامنه اضافه شود.
۱) سوابق DNS را همانند مرحله ۱ (بالا) ایجاد کنید.
۲) ایجاد زیر دامنه به طور معمول در DA، به طوری که آن را به نظر می رسد مرده آخرین در لیست زیر دامنه.
این ASCII به ترتیب حروف الفبا است، بنابراین مقدار zzzz در پایان لیست قابل اطمینان است (مگر اینکه شخصیت های بین المللی خاص مانند ÿ داشته باشید، از آنها استفاده کنید، به عنوان آنها یک مقدار بالاتر از ascii).
فرض میکنیم شما به عنوان زیر دامنه ایجاد شده با zzzz.domain.com رفتید.
این اطلاعات شما را در محل معمول ذخیره می کند:
/home/user/domains/domain.com/public_html/zzzz
به طوری که در آن شما می خواهید برای ذخیره داده های داده های خود را. تمام URL های کلمات متفاوتی به آن DocumentRoot میروند. (اگر می خواهید آن را به public_html حوزه اصلی مشخص کنید، یا پوشه zzzz را حذف کنید و آن را با یک لینک نمادین به “..” جایگزین کنید یا DOCROOT را به public_html در قالب تغییر دهید (لینک های نمادین ساده هستند))
۳) حالا برای ساختن تمام کلمات متفاوتی به subdomain zzzz بروید، به:
Admin Level -> Custom Httpd Configuration -> domain.com
در منطقه متن بالا، در این کد وارد کنید:
|*if SUB=”zzzz“|
ServerAlias *.|DOMAIN|
|*endif|
کدام زمانی که ذخیره می شود باید کد ServerAlias را فقط در زیر دامنه zzzz VirtualHost اضافه کنیم که باید در انتهای پرونده httpd.conf کاربر باشد.
آپاچی ۲٫۰، پی اچ پی ۵ و mysql 5
DirectAdmin اساسا با هر نسخه ای از نرم افزار که می خواهید (در درون) کار می کند. شما می توانید از این نسخه های جدیدتر نرم افزار استفاده کنید تا بتوانید آنها را داشته باشید.
*** برای آپاچی ۲٫۲ و php 5.x، ما یک اسکریپت custombuild جدید در دسترس داریم:
http://files.directadmin.com/services/custombuild/1.1 هر دو آپاچی ۲٫۲ و پی اچ پی ۵ به طور خودکار برای شما نصب خواهد ش۲٫۲ و php 5.x، ما یک اسکریپت custombuild جدید در دسترس داریم:
http://files.directadmin.com/د. همچنین شامل کد برای نصب mysql است. script custombuild روش جدیدی برای آپاچی ۲، php 5 و mysql 5 قرار دارد. بقیه راهنمایی هنوز هم کار خواهند کرد، اما وقت بیشتری نیاز دارند.
برای تبدیل آپاچی ۱٫۳ به apache 2.0، از این راهنمای استفاده کنید:
directadmin.com/features.php؟id=441
برای php 5، از این راهنما (پس از اجرای نسخه آپاچی که میخواهید استفاده کنید) استفاده کنید:
help.directadmin.com/item.php؟id=135
با توجه به MySQL 5.0، ابتدا باید تصمیم بگیرید که آیا واجد شرایط برای تغییر نسخه هستید. اگر شما MySQL 4.1.x یا بالاتر را اجرا می کنید، هیچ مشکلی وجود نخواهد داشت. اگر MySQL 4.0.x یا کمتر اجرا می کنید، باید موارد زیر را در نظر داشته باشید:
کلمه عبور و جدول جدول تغییر در بین ۴٫۰ و ۴٫۱ وجود دارد. به روز رسانی جداول به فرمت ۴٫۱ پس از اتمام به روز رسانی خیلی مشکل است:
mysql_fix_privilege_tables –user=da_admin –password=`cat /usr/local/directadmin/conf/mysql.conf | grep passwd |cut -d= -f2`
۱) بعد از به روز رسانی، از طریق تمام حسابهای MySQL بروید و رمزهای عبور خود را دوباره ذخیره کنید. برای انجام این کار باید رمز عبور متن ساده خود را بدانید. این ایده آل است، به طوری که شما از آخرین فرمت ها استفاده می کنید و نیازی به نگرانی در مورد مسائل سازگاری با نسخه های آینده ندارید.
۲) فرمت های رمز عبور قدیمی را حفظ کنید و نسخه جدیدی از mysql را برای استفاده از فرمت های قدیمی با اضافه کردن:
[mysqld]
old_passwords
به فایل /etc/my.cnf خود، سپس mysqld را راه اندازی مجدد کنید. شما باید این فایل را ایجاد کنید.
این گزینه ۲ برای صرفه جویی در وقت خوب است، اما اگر هرگز نیازی به انتقال حساب ها به یک سرور جدید در حال اجرا MySQL 4.1 یا بالاتر نباشید، لازم است همه گذرواژه mysqld را برای آن حساب منتقل کنید. سرور MySQL باید تمام کلمات عبور را در قالب یکسان داشته باشد .. یا جدید، یا قدیمی. اگر قبلا در فرمت جدید حساب کاربری وجود داشته باشد، باید رمزهای عبور آن را دوباره ذخیره کنید.
راهنمای مرتبط: directadmin.com/features.php؟id=466
هنگامی که تصمیم گرفتید اگر بروز رسانی برای شما باشد، از این راهنمایی ها برای انجام این کار استفاده کنید:
FreeBSD / دبیان:
help.directadmin.com/item.php؟id=106
شما باید نسخه های باینری را برای نسخه سیستم عامل خاص خود دریافت کنید. اگر شما نمیتوانید آنها را در files.directadmin.com/services بارگذاری کنید، سپس به dev.mysql.com بروید و باینریها را برای سیستم خود دانلود کنید. ما هیچ گزینه کامپایل خاصی نداریم و هر زمان که امکان دارد، از تمام مجوزهای سهام از dev.mysql.com استفاده می کنیم. ** توجه داشته باشید ** که راهنمای آن وجود دارد binaries freebsd. اگر شما از دبیان استفاده می کنید باید فایل های داینامیک را دانلود کنید. دستورالعمل های مشابه اعمال می شود.
Redhat / فدورا / CentOS (هر چیزی با rpms):
تبدیل با rpms بسیار آسان است (توجه داشته باشید توجه بالا در مورد حرکت از ۴٫۰ به ۴٫۱ یا بالاتر هنوز هم اعمال می شود).
دانلود ۴ خروجی rpms که میخواهید از فایلهای file.directadmin.com یا dev.mysql.com استفاده کنید. شما نیاز به سرور، مشتری، به اشتراک گذاشته شده و devel rpms دارید. شما نباید نسخه های متناقض داشته باشید. توصیه می کنیم به طور کلی i386 rpms. اگر سیستم ۶۴ بیتی دارید، باید دوتایی خاص برای سیستم خود داشته باشید (dev.mysql.com دارای همه چیزهایی است که شما نیاز دارید)
از wget برای دانلود همه ۴ RPMS استفاده کنید و سپس برای استفاده از “rpm -Uvh file.rpm” برای به روز رسانی / نصب آنها، به عنوان مثال:
mkdir mysql
cd mysql
wget http://files.directadmin.com/services/all/mysql/MySQL-client-5.0.37-0.i386.rpm
wget http://files.directadmin.com/services/all/mysql/MySQL-devel-5.0.37-0.i386.rpm
wget http://files.directadmin.com/services/all/mysql/MySQL-server-5.0.37-0.i386.rpm
wget http://files.directadmin.com/services/all/mysql/MySQL-shared-5.0.37-0.i386.rpm
rpm -Uvh MySQL-*-5.0.37-0.i386.rpm
/sbin/service mysqld restart
باز هم، به خاطر داشته باشید که هر تغییری که ممکن است لازم باشد به پایگاه داده خود انجام دهید تا این نسخه کار کند.
اگر DirectAdmin را نصب کرده باشید بدون هیچ گونه پایگاه داده ای بر روی آن، و شما می خواهید نسخه جدید را نصب کنید، احتمالا ساده تر از استفاده از این راهنمای برای حرکت به صورت دقیق به نسخه مورد نظر شما است: help.directadmin.com/item.php؟ id = 96. پس از حذف داده های قبلی، تمام داده ها و رمزهای عبور را نصب می کند (از این رو شما ابتدا نیاز به نصب جدیدی دارید زیرا هر پایگاه داده ای از دست رفته است). برای راهنمایی، شما می توانید ۴٫۰ RPMS مورد استفاده در مثال را جایگزین کنید و به سادگی نسخه ۵٫۰٫x که در بالا ذکر شد را وارد کنید.
همچنین توصیه می شود که یک پی اچ پی کامل را مجددا برای بارگذاری در نسخه فعلی MySQL کتابخانه های مشتری انجام دهید. از این رو، اگر قصد دارید به روز رسانی پی اچ پی به هر حال، ابتدا MySQL را انجام دهید.
نحوه غیر فعال کردن SSL2.0 در آپاچی
برای غیرفعال کردن پروتکل SSL2.0 (در نتیجه اجباری ۳٫۰)،
برای apache 1.3، خط را پیدا کنید:
#SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
و تغییر آن را به:
SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:!SSLv2:+EXP:+eNULL
توجه داشته باشید که ۲ تغییرات: الف) حذف # کاراکتر در ابتدای خط، و ب) تغییر + SSLv2 به! SSLv2
برای آپاچی ۲٫x، همین کار را انجام دهید، اما در عوض در فایل /etc/httpd/conf/ssl.conf یا برای سیستم آپاچی جدید، / etc / httpd / conf / extra / httpd-ssl وجود دارد. conf (اگر هر دو فایل دارید، فقط آن را در هر دو تغییر دهید).
لینک های مربوطه:
http://www.directadmin.com/forum/showthread.php؟t=36143
http://httpd.apache.org/docs/2.0/ssl/ssl_howto.html
mod_ssl: Init: خطای خصوصی RSA 512 بیتی موقت تولید نشد
این خطا ظاهر می شود گاهی اوقات هنگام استفاده از MySQL 5 با –with-mysql = / usr.
گزارش هایی وجود دارد مبنی بر اینکه تغییر آن به –with-mysqli = / usr / bin / mysql_config این را حل خواهد کرد، اما زمانی که من آن را امتحان کردم، APi مشتری mysql در php به mysql 3 تنظیم شده بود، بنابراین کار درستی نبود. راه حل من استفاده شده است که آنها را هر دو در configure.php:
–with-mysql=/usr \
–with-mysqli=/usr/bin/mysql_config \
سپس پیپ را دوباره کامپایل کنید:
./build clean
./build php n
سپس من /etc/httpd/conf/httpd.conf را ویرایش کردم و تغییر دادم:
SSLRandomSeed startup builtin
SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random ۵۱۲
#SSLRandomSeed startup file:/dev/urandom 512
#SSLRandomSeed connect file:/dev/random ۵۱۲
#SSLRandomSeed connect file:/dev/urandom 512
به
#SSLRandomSeed startup builtin
#SSLRandomSeed connect builtin
#SSLRandomSeed startup file:/dev/random ۵۱۲
SSLRandomSeed startup file:/dev/urandom 512
#SSLRandomSeed connect file:/dev/random ۵۱۲
SSLRandomSeed connect file:/dev/urandom 512
کاملا احتمالا فقط تغییرات در httpd.conf در واقع لازم است، اما اضافه کردن قابلیت های اضافی از mysql احتمالا هیچ آسیبی نمی باشد.
من همچنین MySQL را به ۵٫۰٫۴۱ ارتقا دادم (این مورد، آن یک سرور ۶۴ بیتی بود):
http://files.directadmin.com/services/all/mysql/64-bit/
با استفاده از suPhp (custombuild)، اسکریپت های php را در زیر نام کاربری استفاده کنید
suPHP_UserGroup username username
همه فایل های php باید توسط نام کاربری متعلق باشند یا suPhp یک “۵۰۰ Internal Error Server” را پرتاب کند.
این امر در مورد دامنه ها، زمانی که به طور معمول استفاده می شود، اعمال نمی شود، زیرا هر دامنه دارای VirtualHost خود است با suPHP_UserGroup داخل آن با استفاده از تنظیمات صحیح.
روش ~ username (UserDir) در حالت paranoid خراب خواهد شد، زیرا برای هر مسیر username راه اندازی نمی شود و هیچ تنظیمات suPHP_UserGroup برای هر کاربر وجود ندارد، از این رو ۵۰۰ خطا را دریافت می کنید.
راه حل این است که suPhp را در حالت “مالک” به جای حالت “paranoid” کامپایل کنید.
برای انجام این کار، این دستورات را اجرا کنید.
cd /usr/local/directadmin/custombuild
mkdir -p custom/suphp
cp -fp configure/suphp/configure.suphp custom/suphp/configure.suphp
perl -pi -e ‘s/paranoid/owner/’ custom/suphp/configure.suphp
./build clean
./build suphp
cd /usr/local/directadmin/data/templates/custom
cp -f ../virtual_host* .
perl -pi -e ‘s/suPHP_UserGroup/#suPHP_UserGroup/’ virtual_host*.conf
perl -pi -e ‘s/suPHP_UserGroup/#suPHP_UserGroup/’ /etc/httpd/conf/httpd.conf
perl -pi -e ‘s/suPHP_UserGroup/#suPHP_UserGroup/’ /etc/httpd/conf/extra/httpd-directories-*.conf
echo “action=rewrite&value=httpd” >> /usr/local/directadmin/data/task.queue
کدام همه مراجع از suPHP_UserGroup را به #suPHP_UserGroup تغییر خواهد داد، اساسا، فقط آنها را بیان می کنند.
بروزرسانی: ۲۱ سپتامبر ۲۰۱۲
یک روش جدید کشف شد که بسیار ساده تر از تغییر نحوه عملکرد suPhp می باشد.
تا زمانی که در DA کاملا پشتیبانی نشود، و اگر می خواهید آن را امتحان کنید (بدون نیاز به تغییرات بالا)، موارد زیر را انجام دهید:
۱) ویرایش:
/etc/httpd/conf/extra/httpd-includes.conf
2) کد برای هر کاربری که میخواهید به آن اضافه کنید، اضافه کنید:
<Directory “/home/username“>
<IfModule mod_suphp.c>
suPHP_Engine On
suPHP_UserGroup username username
SetEnv PHP_INI_SCAN_DIR /usr/local/directadmin/data/users/username/php/
</IfModule>
</Directory>
و آپاچی را راه اندازی مجدد کنید
آپاچی را تغییر دهید تا دوباره راه اندازی مجدد کنید
از ۱٫۳۳٫۷، DA می تواند این کار را بدون نیاز به تغییر اسکریپت بوت HTTP خود انجام دهد:
http://www.directadmin.com/features.php؟id=980
راه دستی قدیمی تر:
اگر میخواهید از زمان بارگزاری آپاچی اجتناب کنید، آپاچی بایستی مجددا بایستی مجددا راه اندازی شود.
برای انجام این کار، شما باید اسکریپت بوت httpd خود را تغییر دهید.
مسیر اسکریپت شما بسته به سیستم عامل شما متفاوت خواهد بود.
برای FreeBsd این است:
/usr/local/etc/rc.d/httpd
برای همه سیستم عامل های دیگر، این است:
/etc/init.d/httpd
همانطور که برای تغییر واقعی، اسکریپت boot httpd را برای سیستم خود ویرایش کنید، این کد را پیدا کنید:
restart)
stop
waitforexit “httpd” 20
start
;;
و تغییر آن را به عنوان خوانده شده:
restart)
kill -USR1 `cat $PIDFILE`
;;
توجه داشته باشید، این مورد به اندازه ای مورد آزمایش قرار نگرفته است، بنابراین باید مراقب باشید تا مطمئن شوید که پایدار است.
راه اندازی آپاچی دیگر آپاچی را شروع نخواهد کرد در صورتی که متوقف شود. شما باید “شروع” آن، به عنوان راه اندازی مجدد با شکوه تنها در فرآیندهای در حال اجرا در حال اجرا است.
چگونه می توان تنظیمات open_basedir را برای یک دامنه تغییر داد.
سطح مدیریت -> پیکربندی سفارشی httpd -> domain.com
در قسمت متن بالا، این یک خط را وارد کنید:
|?OPEN_BASEDIR_PATH=`HOME`/:/tmp:/var/tmp/:/usr/local/lib/php/|
که مقدار پیش فرض در قالب است. مسیرهای موجود در آن خط را برای رفع نیازهای خود ویرایش کنید.
اگر شما CustomBuild 2.0 را اجرا می کنید، ممکن است لازم باشد مسیر را نیز اضافه کنید:
/usr/local/php55/lib/php/
به لیست بالا php55 (برای php 5.5.x) را به نسخه php که از آن استفاده می کنید تنظیم کنید.
چگونگی ایجاد یک گواهینامه سرور مشترک جدید خود را امضا کنید
فرمان زیر شما یک گواهینامه سرور جدید مشترک خود را امضا می کند
/usr/bin/openssl req -sha256 -x509 -newkey rsa:4096 -keyout /etc/httpd/conf/ssl.key/server.key -out /etc/httpd/conf/ssl.crt/server.crt -days 9000 -nodes
به سوالات پاسخ داده شود.
توجه داشته باشید، شما می توانید همین کار را از طریق DirectAdmin انجام دهید.
برای انجام این کار به عنوان «admin» وارد شوید
روی “Level User” کلیک کنید
از یک دامنه ایجاد شده در “admin” استفاده کنید، اگر شما آن را ندارید، یک دامنه جعلی ایجاد کنید، مهم نیست.
به “گواهینامه های SSL” بروید
فرض بر این است که “admin” همچنان برای استفاده از IP سرور استفاده می شود و گواهی خود ایجاد شده در آنجا به همان فایل سرور server.crt و server.key همانطور که در بالا ذکر شد، می نویسد.
همچنین، اگر شما یک درخواست گواهی را در این مانور (از طریق DA) ایجاد کنید، توصیه شود که کلید و درخواست csr (cert request) را به عنوان نتیجه ایجاد کنید. کلید * not * در این فرایند ذخیره شده است (فقط برای “admin” در IP سرور). بنابراین اطمینان حاصل کنید که کلیدی و csr را کپی کرده و آن را در جای امن ذخیره کنید.
ابتدا certificate / key در textarea هنگام ایجاد یک csr لمس نمی شود.
چگونه می توان DocumentRoot تنها یکی از زیر دامنه های من را تغییر داد؟
۱) اگر می خواهید فقط یک مسیر زیر دامنه را تغییر دهید، از این راهنما به عنوان نقطه شروع استفاده کنید:
http://help.directadmin.com/item.php؟id=3
و کد زیر را وارد کنید
|*if SUB=”subname“|
|?DOCROOT=/the/new/path/you/want|
|*endif|
این یک چک در نام دامنه را انجام می دهد.
تغییر نام نام خانوادگی به نام زیر دامنه که می خواهید مسیر را برای آن تنظیم کنید.
همچنین مسیر را به مسیری که دوست دارید تغییر دهید.
عدم استفاده از عبارت if در زیر دامنه باعث می شود که دامنه اصلی و تمام زیر دامنه ها از این مسیر جدید استفاده شود که همیشه به عنوان مورد نظر نمی باشد.
۲) به جزئیات بیشتر، DocumentRoot برای یک Subdomain همیشه نام “Sub” اضافه شده به پایان را دارد. اگر این اثر دلخواه نیست، پس باید قالب ها را اصلاح کرد تا از انتهای بیت خلاص شوند، در حالی که هنوز مسیرهای زیر دامنه برای زیر دامنه های معمولی را معتبر می دانند. برای انجام این کار ابتدا قالب ها را به پوشه سفارشی کپی کنید
cd /usr/local/directadmin/data/templates/custom
cp ../virtual_host2*_sub.conf .
سپس هر دو فایل virtual_host2_sub.conf و virtual_host2_secure_sub.conf را ویرایش کنید. خط زیر را پیدا کنید:
|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html|
و آن را تغییر دهید:
|?DOCROOT=`HOME`/domains/`DOMAIN`/public_html/`SUB`|
همین کار برای این خط:
|?CGI=ScriptAlias /cgi-bin/ `DOCROOT`/`SUB`/cgi-bin/|
آن را تغییر دهید:
|?CGI=ScriptAlias /cgi-bin/ `DOCROOT`/cgi-bin/|
و آخرین بار برای یک خط ۳، تغییر:
DocumentRoot |DOCROOT|/|SUB|
بودن:
DocumentRoot |DOCROOT|
۲ virtual_host2 * _sub.conf را با این ۳ تغییر ذخیره کنید، سپس مرحله ۱ را به طور معمول ادامه دهید و مسیر همان چیزی است که شما دنبال آن هستید. تمام زیر دامنه های موجود نیز بدون تغییر باقی می ماند، زیرا ما فقط قسمت SUB را از پایین حرکت دادیم و آن را به سمت بالا منتقل کردیم.
۳) به طور مشابه، اگر فقط شما برای تغییر مسیر دامنه و نه هر زیردامنه، می توانید از آن استفاده کنید
|*if !SUB|
|?DOCROOT=/the/new/path/you/want|
|*endif|
چگونگی راه اندازی نام مستعار در هر دامنه
اگر میخواهید فقط یک دامنه را غیرفعال کنید / برای وبسایت (به عنوان مثال)، یک راه برای این کار این است که نامهای مستعار را تغییر دهید تا در عوض ۱ نام مستعار جهانی در VirtualHosts قرار گیرد.
برای انجام این کار، ما باید از template virtual_host2.conf (برای apache 2) استفاده کنیم و از تنظیمات سفارشی httpd config که در سطح مدیریت وجود دارد استفاده کنیم. این راهنما فرض می کند شما از Apache 2 با custombuild استفاده می کنید.
۱) قالب سفارشی را تنظیم کنید تا از آپدیت DA ایمن شود:
cd /usr/local/directadmin/data/templates/custom
cp ../virtual_host2.conf .
2) فایل مجازی virtual_host2.conf را ویرایش کنید و در بالای فایل زیر را وارد کنید:
|?WEBMAIL=ON|
سپس درست زیر نشانه ای که می گوید | CUSTOM | (در همان فایل) اضافه کنید:
|*if WEBMAIL=”ON”|
Alias /webmail /var/www/html/webmail/
|*endif|
3) رفتن به:
سطح مدیریت -> سفارشی httpd پیکربندی -> domain.com
در قسمت متن در بالا، این یک خط را وارد کنید:
|?WEBMAIL=OFF|
که وب پست را فقط برای آن دامنه خاموش می کند.
۴) نام مستعار جهانی را از فایل /etc/httpd/conf/extra/httpd-aliases.conf حذف کنید.
۵) یک پرونده کامل httpd.conf را بازنویسی کنید، سپس آپاچی را راه اندازی مجدد کنید.
echo “action=rewrite&value=httpd” >> /usr/local/directadmin/data/task.queue
/usr/local/directadmin/dataskq d
/etc/init.d/httpd restart
[هشدار می دهد] Init: اتصال سرور IP / پورت سرور: www.domain.com:443
اگر این هشدار را در سیاهههای آپاچی خود دریافت کنید، نگران نباشید، کاملا طبیعی است.
[warn] RSA server certificate CommonName (CN) `localhost’ does NOT match server name!?
[warn] Init: SSL server IP/port conflict: www.domain.com:443
[warn] Init: You should not use name-based virtual hosts in conjunction with SSL!!
دلیل آن وجود دارد زیرا DA از میزبانی مبتنی بر نام میزبانی استفاده می کند. این بدان معنی است که شما یک دامنه را در یک IP دارید. اخطار به دلیل این واقعیت است که تنها ۱ گواهی SSL برای هر آدرس IP معتبر است. یک توضیح در مورد آن را می توان از لینک زیر دریافت کرد.
توجه داشته باشید که این فقط هشدارها و نه خطاها است.
خطاهای مشابه برای nginx:
nginx: [warn] conflicting server name “www.domain1.com” on 1.2.3.4:80, ignored
nginx: [warn] conflicting server name “www.domain2.com” on 1.2.3.4:80, ignored
من domain.com/stats را به طور پیش فرض می خواهم حضور داشته باشم
/usr/local/directadmin/scripts/custom/domain_create_post.sh
اگر می خواهید صفحات webalizer یا awstats به طور پیش فرض برای دامنه های جدید در دسترس باشند، می توانید این کار را با ایجاد:
در فایل اضافه کردن کد
#!/bin/sh
ln -s ../stats /home/$username/domains/$domain/public_html/stats
exit 0;
سپس اسکریپت domain_create_post.sh را به ۷۵۵ تغییر دهید.
اگر می خواهید آن را برای awstats بگذارید، سپس نام String را به جای awstats تغییر دهید.
چگونگی ایجاد یک درخواست گواهی (CSR) دستی
اگر میخواهید همه ابزارهای خودکار را برای کنترل بیشتر ببنید، میتوانید یک کلید بیت و درخواست گواهی را با استفاده از دستورات زیر ایجاد کنید:
/usr/bin/openssl genrsa 4096 > private.key
/usr/bin/openssl req -new -key private.key
اگر شما می خواهید کلید اندازه های مختلفی را انتخاب کنید، می توانید ۴۰۹۶ جایگزین کنید.
ژنرال از همه اطلاعات برای گواهی درخواست خواهد کرد.
پس از ایجاد، درخواست گواهی را به یک مجوز گواهینامه می دهید.
آنها یک گواهینامه جدید می دهند که شما می توانید با private.key خود استفاده کنید.
برای یک درخواست گواهی چند دامنه، شما می توانید یک پیکربندی برای ورودی SubjectAltName، san.cfg ایجاد کنید.
دامنه: crmit.ir
کشور:iran
دولت:iran
شهر:ardabil
شرکت:sadaf-rayane-ardabil
پست الکترونیک:info@crmit.ir
Domain: | |
Country: | |
State: | |
City: | |
Company: | |
E-Mail: | |
Extra Domains |
[ req ]
default_bits = 4096
default_keyfile = private.key
distinguished_name = req_distinguished_name
attributes = req_attributes
prompt = no
[ req_distinguished_name ]
C = IRAN
ST = IRAN
L = ardabil
O = sadaf-rayane-ardabil
CN = crmit.ir
emailAddress = info@crmit.ir
[ req_attributes ]
[SAN]
subjectAltName=DNS:crmit.ir,DNS:www.crmit.ir,DNS:ex2ir,DNS:www.ex2.ir
و دستور کمی را تغییر دهید:
/usr/bin/openssl req -new -sha256 -key private.key -subj “/CN=domain.com” -reqexts SAN -config san.cfg
DirectAdmin کل کلید SSL رمز شده من را قبول نمی کند
اگر یک کلید خصوصی RSA با سرصفحه ای دارید که چیزی شبیه به آن است:
—–BEGIN RSA PRIVATE KEY—–
Proc-Type: 4,ENCRYPTED
DEK-Info: DES-EDE3-CBC,D061ACF7F7A7D27F
سپس شما کلید رمزنگاری رمز عبور خواهید داشت.
این کار با DirectAdmin کار نخواهد کرد، زیرا هر بار که هربار که مجددا آپاچی را وارد می کند، یک رمز عبور را تایپ کند.
شما لازم نیست که برای شروع، شما می توانید این کلید رمز محافظت شده را تبدیل به یک کلید عادی با تایپ کردن:
openssl rsa -in /path/to/your/key -out /the/new/key
جایی که شما می خواهی مقادیر جسور با ارزش های مناسب را جایگزین کنی.
این از شما درخواست رمز عبور شما را مشخص می کند زمانی که کلید اصلی را ایجاد کردید.
سپس یک کلید حفاظت نشده با رمز عبور ایجاد می کند که می توانید برای DA استفاده کنید.
قسمت ۳۲
من میخواهم فایلهای کاربر httpd.conf را بر اساس یک مورد بسته سفارشی سفارشی کنم
با اضافه کردن موارد بسته بندی سفارشی، می توانید از این موارد برای کنترل مناطق دیگر سیستم استفاده کنید. برای این مثال، ما این موارد را کنترل می کنیم محتوای کاربر httpd.conf.
1) گام اول این است که یک مورد بسته سفارشی اضافه کنید. در این راهنما به نحوه انجام این کار مراجعه کنید. برای این مثال، از کادر انتخاب استفاده کنید. به متغیر نامی به نام myval بدهید
۲) بعد، ما باید این گزینه را انجام دهیم. به طور پیش فرض، آیتم فقط در فایل user.conf ذخیره می شود .. هیچ کاری انجام نمی دهد.
برای اینکه کاری انجام دهید، اسکریپت را ایجاد کنید: /usr/local/directadmin/scripts/custom/user_create_post.sh. داخل این فایل، این کد را اضافه کنید:
if [ “$myval” = “yes” ]; then
echo “CustomApache code” >> /usr/local/directadmin/data/users/$username/domains/$domain.cust_httpd
echo “action=rewrite&value=httpd&user=$username” >> /usr/local/directadmin/data/task.queue
fi
exit 0;
کدام کد customApache را در | CUSTOM | وارد می کند نشانه در فایل های قالب مجازی_host2 * .conf.
قالب ها درجه بندی انعطاف پذیری بیشتری با استفاده از اظهارات و متغیرهای if-then-else ارائه می دهند. به عنوان مثال، اگر شما قالب های جهانی را به برخی از کد ها ویرایش می کنید …. اما شما فقط می خواهید کد موجود برای برخی از کاربران یا دامنه ها، شما می توانید اگر و بعد دیگری همراه با متغیرها. برای مثال اگر متغیر MYVAL = yes باشد، کد را در httpd.conf قرار می دهیم، به عنوان مثال، در فایل های مجازی virtual_host2 * .conf پس از | CUSTOM | نشانه:
سپس، در مرحله ۲) بالا، به جای اضافه کردن با استفاده از این
echo “CustomApache code” >> /usr/local/directadmin/data/users/$username/domains/$domain.cust_httpd
شما به جای آن از این استفاده می کنید
echo “|?MYVAL=yes|” >> /usr/local/directadmin/data/users/$username/domains/$domain.cust_httpd
پس از آن میتوانید دامنه را فعال یا غیرفعال کنید:
سطح مدیریت -> سفارشی httpd پیکربندی -> دامنه
با اضافه کردن یا از بین بردن | MYVAL = yes | کد از منطقه متن.
این همچنین می تواند از طریق بسته ها مدیریت شود، اما همچنین باید کاربر user_modify_post.sh را برای افزودن یا حذف فایل domain.com.cust_httpd بر اساس مقدار تعیین شده، ایجاد کنید.