afshinaz
March 13th, 2013, 00:06
سلام
لطفا ببینید این آموزش درست هست؟
مواردی که اینجا هست از چندین وب سایت جمع آوری شده
رو وی پی اس انجام دادم
فقط یک وب سایت میزبانی میشه
--------------------------------------------------------------------------------
اول باید 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) :
نام هاست
Is this correct? (y,n):
y بزنید
Enter the device name:
venet0:0
نام کارت شبکه سرور. در صورتی که از سرورهای اختصاصی یا سرورهای مجازی مبتنی بر Xen استفاده میکنید، معمولا لازم است عبارت eth0 و در صورتی که از سرورهای مجازی OpenVZ استفاده میفرمایید معمولا لازم است عبارت venet0:0 را وارد نمایید.
Is xxx.xxx.xxx.xxx the IP in your license? (y,n) :
اگر آی پی تصحیح است y بزنید
DirectAdmin will now be installed on: Enterprise 5.9
Is this correct? (must match license) (y,n) : در صورتی که سیستم عامل انتخاب شده در هنگام تهیه لایسنس با سیستم عامل ذکر شده در این پیام (Enterprise 5.9) تطابق دارد، عبارت y را وارد کنید.
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):
عدد 2 را وارد کنید
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):
y بزنید
http://xxx.xxx.xxx.xxx:2222
قسمت 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
حالا مقادیر زیر رو تغییر بدین
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
با کلیدهای Ctrl + X سیو و خارج شوید
حالا دستور زیر رو بزنید و صبر کنید تا کارش انجام بشه
./build all
دستور زیر رو در ssh بزنید
nano /usr/local/lib/php.ini
با کلیدهای Ctrl + W کلمه disable_functions را پیدا کنید و فاکشنهای خطرناک را مسدود کنید
"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"
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" داخل " " ایمیل خود را تایپ کنید
با کلیدهای Ctrl + X سیو و خارج شوید
----------------------------
دستور زیر رو در ssh بزنی
nano /etc/ssh/sshd_config
با زدم دکمه CTRL + W از کیبرد عبارت UseDNS رو پیدا کنید اگر کنار # بود بردارید و مقدارشو به no تغییر بدید (اگه جلوش نوشته بود no به هیچی دست نزنید و اگه نوتشه yes فقط اون yes رو به no تبدیل کنید
در جایی که نوشته port 22 باید # رو بردارید و بجای عدد ۲۲ ، یه پورت آزاد مثلا ۲۰۱۱ رو قرار بدید . یادتون باشه که باید این پورت رو در فایروال ، آزاد کنیم.
با کلیدهای Ctrl + X سیو و خارج شوید
----------------------------
امن کردن /tmp:
cd /dev
ساخت 2000 مگابایت فضا ذخیره سازی:
dd if=/dev/zero of=tmpMnt bs=1024 count=2000000
ساخت فایل سیستم ext :
/sbin/mke2fs /dev/tmpMnt
ایجاد یک پشتیبان:
cp -R /tmp/ /tmp_backup
mount کردن فایل سیستم جدید با noexec:
mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
سطح مجوز را هم تغییر دهید:
chmod 0777 /tmp
پشتیبانی را که تهیه کرده بودیم، کپی میکنیم:
cp -R /tmp_backup/* /tmp/
پشتیبان را حذف میکنیم:
rm -rf /tmp_backup
امن کردن /var/tmp :
تهیه یک پشتیبان:
mv /var/tmp /var/tmpbck
آدرس دهی میکنیم:
ln -s /tmp /var/tmp
فایل های داخل پشتیبان را کپی میگیریم:
cp /var/tmpbck/* /tmp/
امن کردن /dev/shm :
فایل زیر را با ویرایشگر باز میکنیم:
اگر ویرایشگر nano را نصب ندارید، با دستور زیر نصب کنید.
nano /etc/fstab
مقدار زیر را پیدا کنید :
none /dev/shm tmpfs defaults,rw 0 0
مقدار زیر را جایگزین مقدار فوق میکنیم:
none /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0
مجددا” mount میکنیم:
mount -o remount /dev/shm
و حالا یه بار سرور رو با دستور reboot ریبوت کنید
----------------------------
نصب 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 به میزان رم و قدرت سی پی یو بستگی داره. مثلا برای یک وی پی اس با رم ۲۵۶ تا ۵۱۲ مگابایت ، کانفیگ زیر برای پروسس ها می تونه خوب باشه:
Timeout 200
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 3
MinSpareServers 5
MaxSpareServers 20
StartServers 5
MaxClients 25
MaxRequestsPerChild 2000
HostnameLookups Off
البته شما می تونید بعد از یک دو روز از زمانی که سرور رو کانفیگ کردید با دستور free -m در محیط SSH مقدار رم خالی رو پیدا کنید و در صورتی که رم خالی داشتید مقادیر MaxClients و MaxSpareServers رو ارتقا بدید.
فایل کانفیگ دایرکت ادمین برای 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
این مورد رو در نظر داشته باشید که همه چیز به قدرت سرور یا وی پی اس شما بستگی داره.
با دستور زیر می تونید تعداد آی پی هایی که به سرور شما متصل شدند رو در بیارید:
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -n
البته بحث تنظیم apache خیلی پیچیده و مفصل هست و مدهای زیادی برای کنترل اون وجود داره که انشاالله در جلسات بعد ، در حد توانم اونا رو هم براتون آماده می کنم.
--------------------
خوب بریم تا بحث در مورد کنترل پنل دایرکت ادمین و مدیریت سرور به کمک اون رو ادامه بدیم. توی این جلسه یه سری آموزش مربوط کانفیگ فایل 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
این مقادیر در سایت دایرکت ادمین برای یک سرور با سیستم عامل سنت اُ اس و بیش از ۲ گیگ رم آمده است.
لطفا ببینید این آموزش درست هست؟
مواردی که اینجا هست از چندین وب سایت جمع آوری شده
رو وی پی اس انجام دادم
فقط یک وب سایت میزبانی میشه
--------------------------------------------------------------------------------
اول باید 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) :
نام هاست
Is this correct? (y,n):
y بزنید
Enter the device name:
venet0:0
نام کارت شبکه سرور. در صورتی که از سرورهای اختصاصی یا سرورهای مجازی مبتنی بر Xen استفاده میکنید، معمولا لازم است عبارت eth0 و در صورتی که از سرورهای مجازی OpenVZ استفاده میفرمایید معمولا لازم است عبارت venet0:0 را وارد نمایید.
Is xxx.xxx.xxx.xxx the IP in your license? (y,n) :
اگر آی پی تصحیح است y بزنید
DirectAdmin will now be installed on: Enterprise 5.9
Is this correct? (must match license) (y,n) : در صورتی که سیستم عامل انتخاب شده در هنگام تهیه لایسنس با سیستم عامل ذکر شده در این پیام (Enterprise 5.9) تطابق دارد، عبارت y را وارد کنید.
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):
عدد 2 را وارد کنید
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):
y بزنید
http://xxx.xxx.xxx.xxx:2222
قسمت 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
حالا مقادیر زیر رو تغییر بدین
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
با کلیدهای Ctrl + X سیو و خارج شوید
حالا دستور زیر رو بزنید و صبر کنید تا کارش انجام بشه
./build all
دستور زیر رو در ssh بزنید
nano /usr/local/lib/php.ini
با کلیدهای Ctrl + W کلمه disable_functions را پیدا کنید و فاکشنهای خطرناک را مسدود کنید
"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"
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" داخل " " ایمیل خود را تایپ کنید
با کلیدهای Ctrl + X سیو و خارج شوید
----------------------------
دستور زیر رو در ssh بزنی
nano /etc/ssh/sshd_config
با زدم دکمه CTRL + W از کیبرد عبارت UseDNS رو پیدا کنید اگر کنار # بود بردارید و مقدارشو به no تغییر بدید (اگه جلوش نوشته بود no به هیچی دست نزنید و اگه نوتشه yes فقط اون yes رو به no تبدیل کنید
در جایی که نوشته port 22 باید # رو بردارید و بجای عدد ۲۲ ، یه پورت آزاد مثلا ۲۰۱۱ رو قرار بدید . یادتون باشه که باید این پورت رو در فایروال ، آزاد کنیم.
با کلیدهای Ctrl + X سیو و خارج شوید
----------------------------
امن کردن /tmp:
cd /dev
ساخت 2000 مگابایت فضا ذخیره سازی:
dd if=/dev/zero of=tmpMnt bs=1024 count=2000000
ساخت فایل سیستم ext :
/sbin/mke2fs /dev/tmpMnt
ایجاد یک پشتیبان:
cp -R /tmp/ /tmp_backup
mount کردن فایل سیستم جدید با noexec:
mount -o loop,rw,nosuid,noexec /dev/tmpMnt /tmp
سطح مجوز را هم تغییر دهید:
chmod 0777 /tmp
پشتیبانی را که تهیه کرده بودیم، کپی میکنیم:
cp -R /tmp_backup/* /tmp/
پشتیبان را حذف میکنیم:
rm -rf /tmp_backup
امن کردن /var/tmp :
تهیه یک پشتیبان:
mv /var/tmp /var/tmpbck
آدرس دهی میکنیم:
ln -s /tmp /var/tmp
فایل های داخل پشتیبان را کپی میگیریم:
cp /var/tmpbck/* /tmp/
امن کردن /dev/shm :
فایل زیر را با ویرایشگر باز میکنیم:
اگر ویرایشگر nano را نصب ندارید، با دستور زیر نصب کنید.
nano /etc/fstab
مقدار زیر را پیدا کنید :
none /dev/shm tmpfs defaults,rw 0 0
مقدار زیر را جایگزین مقدار فوق میکنیم:
none /dev/shm tmpfs defaults,nosuid,noexec,rw 0 0
مجددا” mount میکنیم:
mount -o remount /dev/shm
و حالا یه بار سرور رو با دستور reboot ریبوت کنید
----------------------------
نصب 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 به میزان رم و قدرت سی پی یو بستگی داره. مثلا برای یک وی پی اس با رم ۲۵۶ تا ۵۱۲ مگابایت ، کانفیگ زیر برای پروسس ها می تونه خوب باشه:
Timeout 200
KeepAlive On
MaxKeepAliveRequests 200
KeepAliveTimeout 3
MinSpareServers 5
MaxSpareServers 20
StartServers 5
MaxClients 25
MaxRequestsPerChild 2000
HostnameLookups Off
البته شما می تونید بعد از یک دو روز از زمانی که سرور رو کانفیگ کردید با دستور free -m در محیط SSH مقدار رم خالی رو پیدا کنید و در صورتی که رم خالی داشتید مقادیر MaxClients و MaxSpareServers رو ارتقا بدید.
فایل کانفیگ دایرکت ادمین برای 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
این مورد رو در نظر داشته باشید که همه چیز به قدرت سرور یا وی پی اس شما بستگی داره.
با دستور زیر می تونید تعداد آی پی هایی که به سرور شما متصل شدند رو در بیارید:
netstat -plan|grep :80|awk {'print $5'}|cut -d: -f 1|sort|uniq -c|sort -n
البته بحث تنظیم apache خیلی پیچیده و مفصل هست و مدهای زیادی برای کنترل اون وجود داره که انشاالله در جلسات بعد ، در حد توانم اونا رو هم براتون آماده می کنم.
--------------------
خوب بریم تا بحث در مورد کنترل پنل دایرکت ادمین و مدیریت سرور به کمک اون رو ادامه بدیم. توی این جلسه یه سری آموزش مربوط کانفیگ فایل 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
این مقادیر در سایت دایرکت ادمین برای یک سرور با سیستم عامل سنت اُ اس و بیش از ۲ گیگ رم آمده است.