سلام
لطفا ببینید این آموزش درست هست؟
مواردی که اینجا هست از چندین وب سایت جمع آوری شده
رو وی پی اس انجام دادم
فقط یک وب سایت میزبانی میشه
--------------------------------------------------------------------------------
اول باید selinux رو خاموش کنید (در وی پی اس های اوپن وی زد نیازی به انجام اینکار نیست)
در SSH بزنید : setup
در صفحه ای که میاد برید به قسمت Firewall configuration و بعد یه دور کلید tab رو بزنید تا بیاید روی run tools و بعد اینتر بزنید بعد در صفحه ای که میاد برید رو Disabled (با زدن یه بار دکمه فلش راست کیبرد) و بعد کلید space رو بزنید بعد اگه یه بار دیگه کلید tab رو بزنید میاد تو قسمت SELinux بعد بیاید رو Disabled و دوباره کلید space رو بزنید بعد یه tab بزنید تا بیاید رو OK بعد اینتر بزنید و دوباره بر میگردید به صفحه اول این بار با زدن tab بیاد رو Quit و اینتر کنید
نصب
yum install nano
yum install flex
yum install perl-libwww-perl
yum update -y
yum install gcc-c++ gcc automake -y
wget http://directadmin.com/setup.sh
chmod +x setup.sh
sh setup.shدر زمان تهیه لایسنس در اختیار شما قرار داده میشودPlease enter your Client ID :
در زمان تهیه لایسنس در اختیار شما قرار داده میشودPlease enter your License ID :
نام هاستEnter your hostname (FQDN) :
y بزنیدIs this correct? (y,n):
venet0:0Enter the device name:
نام کارت شبکه سرور. در صورتی که از سرورهای اختصاصی یا سرورهای مجازی مبتنی بر Xen استفاده میکنید، معمولا لازم است عبارت eth0 و در صورتی که از سرورهای مجازی OpenVZ استفاده میفرمایید معمولا لازم است عبارت venet0:0 را وارد نمایید.
اگر آی پی تصحیح است y بزنیدIs xxx.xxx.xxx.xxx the IP in your license? (y,n) :
Is this correct? (must match license) (y,n) : در صورتی که سیستم عامل انتخاب شده در هنگام تهیه لایسنس با سیستم عامل ذکر شده در این پیام (Enterprise 5.9) تطابق دارد، عبارت y را وارد کنید.DirectAdmin will now be installed on: Enterprise 5.9
عدد 2 را وارد کنیدYou now have 2 options for your apache/php setup.
1: customapache: end-of-life software. Includes Apache 1.3, php 4 and frontpage. **Not recommended**. Will not work with newer OSs. Limited tech support.
2: custombuild 1.1: newer software (recommended). Includes any Apache version, php 4, 5, or both in cli and/or suphp. Frontpage not available.
Post any issues with custombuild to the forum: http://www.directadmin.com/forum/forumdisplay.php?f=61
Enter your choice (1 or 2):
در صورت استفاده از تنظیمات پیشفرض y بزنیدWould you like the default settings of apache 2.2 and php 5.2 cli? (y/n):
y بزنیدWould you like to search for the fastest download mirror? (y/n):
قسمت Message System ایمیل خود را در Email a copy of all messages to وارد کنید و تیک بزنید و سیو کنید
در صفحه اصلی دایرکت ادمین برید به قسمت List Administrators و روی admin کلیک کنید
admin's user data رو بزنید و در صفحه ای که میاد در قسمت ایمیل ، ایمیل خودتون رو وارد کنید و سیو کنید
برگردید به صفحه اصلی دایرکت ادمین
در قسمت Administrator Settings
تیک گزینه های زیر رو بردارید
Enable User Demo. Login: demo_user Password : demo
Enable Reseller Demo. Login: demo_reseller Password : demo
Enable Admin Demo. Login: demo_admin Password : demo
حالا گزینه ها رو به صورتی که میدم تغییر بدید
Max Request/Upload Size (bytes) ---->1048576000
Prevent 127.0.0.1 from being Blacklisted --- > تیک بزنید
Time before failed login count resets --->10
Check domain owner for Subdomain creation ---->yes
Enable Automatic Lost Password Recovery --->NO
Blacklist IPs for excessive login attempts ---> تیک و 80 بزنید
Difficult Password Enforcemen ---> Yes
سیو کنید
----------------------------
دستور زیر رو در ssh بزنیدد
حالا بزنیدcd /usr/local/directadmin/custombuild
nano options.conf
حالا مقادیر زیر رو تغییر بدین
با کلیدهای Ctrl + X سیو و خارج شوید
default_php=5
php5_ver=5.2
php4_cli=no
php4_cgi=no
php5_cli=yes
php5_cgi=no
zend=yes
mysql=5.1
mysql_inst=no
mysql_backup=yes
apache_ver=2.2
phpmyadmin=yes
atmail=no
squirrelmail=yes
roundcube=yes
uebimiau=no
exim=no
spamassassin=no
mail-header-patch=yes
dovecot=yes
awstats=no
webalizer=no
proftpd=no
pureftpd=yes
حالا دستور زیر رو بزنید و صبر کنید تا کارش انجام بشه
دستور زیر رو در ssh بزنید./build all
با کلیدهای Ctrl + W کلمه disable_functions را پیدا کنید و فاکشنهای خطرناک را مسدود کنیدnano /usr/local/lib/php.ini
"apache_child_terminate, apache_get_modules, apache_note, apache_setenv, backtick, bzopen, bzread, bzwrite, c99_buff_prepare, c99_sess_put, c99fsearch, c99ftpbrutecheck, c99getsource, c99sh_getupdate, c99shexit, cat, chgrp, chown, closelog, cmd, crack_check, crack_closedict, crack_getlastmessage, crack_opendict, ctrl_dir, datasec, debugge_on, debugger_off, define_s yslog_variables, disk_free_space, disk_total_space, diskfreespace, dl, dos_conv, e_ini_file, escapeshellarg, escapeshellcmd, exec,filegroup, fileowner, fileperms, find, fpassthru, ftp_exec, get_current_user, get_dir, getmygid, getmyuid, getrusage, highlight_file, hypot, id, ilegetcontents, ini_ get_all, ini_alter, ini_restore, ini_set, inurl, leak, listen, ln, ls, mysql_li, netscript, old_offset, passthru, pclose, pcntl_exec, perl, perm, pfsockopen, pg_host, php_ini_scanned_files, php_uname, phpinfo, popen, popens, pos, posame, posix_access, posix_ctermid, posix_get_last_error, posix_getcwd, posix_getegid, posix_geteuid, posix_getgi, posix_getgrgid, posix_getgrnam, posix_getgroups, posix_getlogin, posix_getpgid, posix_getpgrp, posix_getpid, posix_getppid, posix_getpwnam, posix_getpwuid, posix_getrlimit, posix_getservbyname, posix_getsid, posix_getuid, posix_initgroups, posix_isatty, posix_kill, posix_mkfifo, posix_mknod, posix_setegid, posix_seteuid, posix_setgid, posix_setpgid, posix_setsid, posix_setuid, posix_strerror, posix_times, posix_ttyname, posix_uname, posixc, pro, c_close, proc_get_status, proc_nice, proc_open, proc_terminate, ps_aux, psockopen, rar_open, root, rsync, safe_mode, server_software, shell-exec, shell_exec, shellcode, show_source, suExec, symlink, system, systemroot, t_dbs, tmp, virtual, wget, whoami, zip_read"
با کلیدهای Ctrl + X سیو و خارج شوید
allow_url_fopen --> Off
register_globals --> Off
enable_dl --> Off
display_errors --> Off
display_startup_errors --> Off
safe_mode --> Off
log_errors --> On
expose_php --> Off
magic_quotes_gpc --> On
magic_quotes_sybase --> Off
open_basedir --> On
بیشترین مدت زمان اجرای اسکریپت max_execution_time = 60
حداکثر زمان مصرف شده جهت تجزیه ورودی max_input_time = 60
بیشترین مقدار استفاده یک اسکریپت از حافظه memory_limit = 64M
max_file_uploads = 32
بیشترین حجم مجاز برای آپلود max_upload_filesize = 600M
حداکثر حجم ارسال post_max_size = 8M
پ.ن اصلاً نیازی به گفتن من نیست شما باید مقدار توابع بالا را به میزان استفاده و کارایی مورد نیاز کم و زیاد کنید.
from="john@doe.com" داخل " " ایمیل خود را تایپ کنید
----------------------------
دستور زیر رو در ssh بزنی
با زدم دکمه CTRL + W از کیبرد عبارت UseDNS رو پیدا کنید اگر کنار # بود بردارید و مقدارشو به no تغییر بدید (اگه جلوش نوشته بود no به هیچی دست نزنید و اگه نوتشه yes فقط اون yes رو به no تبدیل کنیدnano /etc/ssh/sshd_config
در جایی که نوشته port 22 باید # رو بردارید و بجای عدد ۲۲ ، یه پورت آزاد مثلا ۲۰۱۱ رو قرار بدید . یادتون باشه که باید این پورت رو در فایروال ، آزاد کنیم.
با کلیدهای Ctrl + X سیو و خارج شوید
----------------------------
امن کردن /tmp:
ساخت 2000 مگابایت فضا ذخیره سازی:cd /dev
ساخت فایل سیستم ext :dd if=/dev/zero of=tmpMnt bs=1024 count=2000000
ایجاد یک پشتیبان:/sbin/mke2fs /dev/tmpMnt
mount کردن فایل سیستم جدید با noexec:cp -R /tmp/ /tmp_backup
سطح مجوز را هم تغییر دهید:mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
پشتیبانی را که تهیه کرده بودیم، کپی میکنیم:chmod 0777 /tmp
پشتیبان را حذف میکنیم:cp -R /tmp_backup/* /tmp/
امن کردن /var/tmp :rm -rf /tmp_backup
تهیه یک پشتیبان:
آدرس دهی میکنیم:mv /var/tmp /var/tmpbck
فایل های داخل پشتیبان را کپی میگیریم:ln -s /tmp /var/tmp
امن کردن /dev/shm :cp /var/tmpbck/* /tmp/
فایل زیر را با ویرایشگر باز میکنیم:
اگر ویرایشگر nano را نصب ندارید، با دستور زیر نصب کنید.
مقدار زیر را پیدا کنید :nano /etc/fstab
مقدار زیر را جایگزین مقدار فوق میکنیم:none /dev/shm tmpfs defaults,rw 0 0
مجددا” mount میکنیم:none /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0
و حالا یه بار سرور رو با دستور reboot ریبوت کنیدmount -o remount /dev/shm
----------------------------
نصب CSF
حالا باید یه ایمیل به سرور بدید تا سی اس اف از طریق اون با شما در ارتباط باشه
yum -y install perl-libwww-perl.noarch
wget http://www.configserver.com/free/csf.tgz
tar -xzf csf.tgz
cd csf
sh install.directadmin.sh
chmod 600 /etc/csf/csf.conf
برای این کار در اس اس اچ بزنید
و آدرس ایمیلتون رو داخلش بنویسید و سیوش کنیدnano /root/.forward
----------------------------
خوب نوبتی هم باشه نوبت کانفیگ apache هست. همونطور که گفتم تنظیمات apache و mysql به میزان رم و قدرت سی پی یو بستگی داره. مثلا برای یک وی پی اس با رم ۲۵۶ تا ۵۱۲ مگابایت ، کانفیگ زیر برای پروسس ها می تونه خوب باشه:
البته شما می تونید بعد از یک دو روز از زمانی که سرور رو کانفیگ کردید با دستور free -m در محیط SSH مقدار رم خالی رو پیدا کنید و در صورتی که رم خالی داشتید مقادیر MaxClients و MaxSpareServers رو ارتقا بدید.
Timeout 200
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 3
MinSpareServers 5
MaxSpareServers 20
StartServers 5
MaxClients 25
MaxRequestsPerChild 2000
HostnameLookups Off
فایل کانفیگ دایرکت ادمین برای apache در مسیر زیر هست:
برای ویرایش مقادیری که گفتم به مسیر زیر برید:
/etc/httpd/conf/httpd.conf
و دنبال این خط بگردید:/etc/httpd/conf/extra/httpd-mpm.conf
البته در صورتی که دارای سرور قوی و با رم بالا هستید پبشنهاد می کنم طبق کانفیگ زیر عمل کنید:<IfModule mpm_prefork_module>
این مورد رو در نظر داشته باشید که همه چیز به قدرت سرور یا وی پی اس شما بستگی داره.
ServerLimit 2000
KeepAlive On
KeepAliveTimeout 60
MaxClients 1600
MaxSpareServers 200
MinSpareServers 50
با دستور زیر می تونید تعداد آی پی هایی که به سرور شما متصل شدند رو در بیارید:
البته بحث تنظیم apache خیلی پیچیده و مفصل هست و مدهای زیادی برای کنترل اون وجود داره که انشاالله در جلسات بعد ، در حد توانم اونا رو هم براتون آماده می کنم.netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -n
--------------------
خوب بریم تا بحث در مورد کنترل پنل دایرکت ادمین و مدیریت سرور به کمک اون رو ادامه بدیم. توی این جلسه یه سری آموزش مربوط کانفیگ فایل mysql رو براوتون آماده کردم .
در مورد کانفیگ mysql و apache باید این رو بدونیم که مقدار رم ما و نیز قدرت پردازنده CPU خیلی مهمه! و در واقع همه ی تنظیمات با توجه به اونا انجام میشه. البته برای کاربرد های مختلف هم کانفیگ ها متفاوت هست. مثلا کانفیگ این فایل ها برای سروری که مخصوص دانلود هست با سروری که مخصوص هاستینگ هست با سروری که مخصوص فقط یک سایت هست متفاوته!
ما فرض رو بر این می زاریم که وی پی اس شما برای میزبانی چند سایت در نظر گرفته شده که معمولا بیشترین حالت رو شامل میشه. اول میریم تا فایل کانفیگ mysql رو ویرایش کنیم.
دستور زیر رو وارد کنید :
حالا اگه مقداری داشت و چیزی داخلش بود پاک کنید و با مقادیر زیر اون رو جایگزین کنید:nano /etc/nano.cnf
[mysqld]
local-infile=0
max_connections = 400
key_buffer = 16M
myisam_sort_buffer_size = 32M
join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1024
thread_concurrency=2
thread_cache_size = 286
interactive_timeout = 25
wait_timeout = 1000
connect_timeout = 10
max_allowed_packet = 16M
max_connect_errors = 10
query_cache_limit = 1M
query_cache_size = 16M
query_cache_type = 1
tmp_table_size = 16M
skip-innodb
[mysqld_safe]
open_files_limit = 8192
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer = 32M
sort_buffer = 32M
read_buffer = 16M
write_buffer = 16M
[mysqlhotcopy]
interactive-timeout
این مقادیر در زمانی که رم شما بین ۲۵۶ تا ۵۱۲ مگ هست مناسبه و در حالتی که رم بیشتری دارید طبق آموزش خود دایرکت ادمین ، این فایل رو ادیت کنید.(در پایین این آموزش رو هم خواهم گفت. خطی که بولد کردم رو دقت کنید. مقدار این خط باید ۲ برابر تعداد هسته های سی پی یوی شما باشه. یعنی اگه دو هسته اختصاصی دارید این عدد باید ۴ باشه و … .
حالا اگه مقدار رو شما بالا بود به کانفیگ زیر و توضیحات اون دقت کنید:
این مقادیر در سایت دایرکت ادمین برای یک سرور با سیستم عامل سنت اُ اس و بیش از ۲ گیگ رم آمده است.[mysqld]
local-infile=0
skip-locking
query_cache_limit=1M
query_cache_size=64M // سی و دو مگابایت به ازای هر یک گیگ رم
query_cache_type=1
max_connections=500
interactive_timeout=100
wait_timeout=100
connect_timeout=10
thread_cache_size=128
key_buffer=16M
join_buffer=1M
max_allowed_packet=16M
table_cache=1024
record_buffer=1M
sort_buffer_size=2M // یک مگابایت به ازای هر یک گیگ رم
read_buffer_size=2M // یک مگابایت به ازای هر یک گیگ رم
max_connect_errors=10
# تعداد سی پی یو ها ضرب در دو
thread_concurrency=2
myisam_sort_buffer_size=64M
server-id=1
[safe_mysqld]
err-log=/var/log/mysqld.log
open_files_limit=8192
[mysqldump]
quick
max_allowed_packet=16M
[mysql]
no-auto-rehash
#safe-updates
[isamchk]
key_buffer=64M // سی و دو مگابایت به ازای هر یک گیگ رم
sort_buffer=64M
read_buffer=16M
write_buffer=16M
[myisamchk]
key_buffer=64M
sort_buffer=64M
read_buffer=16M
write_buffer=16M
[mysqlhotcopy]
interactive-timeout