آموزش دایرکت ادمین، سی پنل، وب سایت پنل

خانه / Apache

Apache

خطای Domain already exists In The Userdata در سی پنل

Already exists in apache config  cPanel

مسیر را جهت وجود نام دامنه بررسی نمایید و در صورت وجود آن را حذف کنید.

grep $domain /var/cpanel/userdata/*/*

بجای domain نام دامنه را وارد کنید.

مسیر های زیر را نیز بررسی کنید.

grep domain.com /var/cpanel/users/*
grep -R domain.com /var/cpanel/userdata/*

در نهایت پس از از بررسی  و حذف نام دامنه دستورات زیر را اجرا کنید.

/scripts/rebuildhttpdconf

غیرفعال کردن Directory Index در سرور

  Disable Directory Browsing -disable directoy indexing

برای غیرفعال کردن نمایش فایل ها در دایرکتوری خاص در سرور در صورتی که وب سرور شما apache است کافیست کد زیر را در .htaccess خود را public_html قرار دهید.

Options -Indexes

در صورتی که از nginx استفاده میکنید در فایل nginx.conf سایت مورد نظر خود این خط  را به تنظیمات آن اضافه کنید.

autoindex off,

فعال کردن متد PUT و DELETE در apache و nginx در دایرکت ادمین

Enabling PUT and DELETE methods in apache/nginx

برای فعال سازی متد های DELETE و PUT در وب سرورهایی که از دایرکت ادمین استفاده میکنند باید دستورات زیر را در ssh وارد نمایید.

cd /usr/local/directadmin/custombuild
./build set http_methods GET:HEAD:POST:PUT:DELETE
./build rewrite_confs

 

ریدایرکت سایت با htaccess به https

redirect www to non-www or vice versa

کدهای زیر را در htaccess قرار دهید

ریدایرکت بدون www به www

RewriteCond %{HTTP_HOST} ^your_domain.com$
RewriteRule ^(.*)$ http://www.your_domain.com/$1 [R=301]

 

ریدایرکت www به بدون www

RewriteCond %{HTTP_HOST} ^www.your_domain.com$
RewriteRule ^(.*)$ http://your_domain.com/$1 [R=301]

 

برای زمانی که از SSL و https استفاده میکنید..

ریدایرکت بدون www به www

RewriteCond %{HTTP_HOST} ^your_domain.com$
RewriteCond %{SERVER_PORT} ^443
RewriteRule ^(.*)$ https://www.your_domain.com/$1 [R=301]

ریدایرکت www به بدون www

RewriteCond %{HTTP_HOST} ^www.your_domain.com$
RewriteCond %{SERVER_PORT} ^443
RewriteRule ^(.*)$ https://your_domain.com/$1 [R=301]

برای ریدایرکت هم زمان http و https به آدرس https بصورت زیر عمل کنید.

RewriteCond %{HTTP_HOST} ^www.your_domain.com$
RewriteCond %{SERVER_PORT} ^80
RewriteCond %{SERVER_PORT} ^443
RewriteRule ^(.*)$ https://your_domain.com/$1 [R=301]

 

 

عدم مشاهده اکانت در List Accounts در سی پنل

Missing account on the “List Accounts” in the WHM on a cPanel server

در صورتی نام دامنه اکانت شما در سی پنل نمایش داده نمیشود یا به عبارت دیگر نام دامنه خالی است مطمئن شوید دامنه در مسیر ها و فایل های زیر وجود دارد.

/etc/trueuserdomains
/etc/userdomains
/var/cpanel/users/USERNAME
/etc/apache2/conf/httpd.conf

به جای USERNAME نام کاربری را وارد کنید.

در دو فایل اول باید خطی مانند زیر وجود اشته باشد:

domain.com: username

که domain.com نام دامنه و username نام کاربری اکانت است.

در فایل سوم باید خطوط زیر موجود باشد:

DNS=domain.com
USER=username
IP=ipaddress
OWNER=root(or reseller owner)

که شامل نام دامنه، نام کاربری، IP و نماینده مالک یوزر می باشد. مطمئن شوید این ۴ خط در این فایل بصورت صحیح وجود داشته باشد.

فایل httpd.conf هم شامل تنظیمات آپاچی هر یوزر است بنابراین یوزر مورد نظر باید در این فایل دارای تنظیمات صحیح و مشابه سایر اکانت ها باشد. در صورت وجود مشکل و یا نیاز به ایجاد مجددا این فایل دستور زیر را اجرا کنید..

/scripts/rebuildhttpdconf

در نهایت پس از اطمینان از موارد بالا دستور زیر را اجرا کنید.

/scripts/updateuserdomains

 

 

 

نصب mod_Geoip در Cpanel

Install mod_geoip on cPanel with EasyApache

برای بستن IP های یک کشور یا شهر خاص در سرور میتوانید از ماژول geoip برای وب سرور خود استفاده کنید. در این آموزش نحوه نصب mod_geoip روی آپاچی در cpanel را آموزش میدهیم.

سرورستاپ

ابتدا epel را نصب کنید.

yum install epel-release

سپس ماژول های زیر را نصب کنید.

yum install GeoIP GeoIP-devel GeoIP-data zlib-devel

در مسیر

/usr/share/GeoIP

پکیج های زیر را دانلود و extract کنید.

wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz
gunzip GeoIP.dat.gz
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gunzip GeoLiteCity.dat.gz

اکنون موارد زیر را نصب کنید.

yum install httpd-devel apr-devel ea-apache24-devel.x86_64 ea-apache24-tools.x86_64

اکنون باید ماژول mod_geoip برای Apache کامپایل شود.

cd /usr/share/GeoIP
wget https://github.com/maxmind/geoip-api-mod_geoip2/archive/1.2.10.tar.gz
tar xvzf 1.2.10.tar.gz
cd geoip-api-mod_geoip2-1.2.10/
sed s/remote_ip/client_ip/g -i mod_geoip.c
apxs -i -a -L/usr/lib64 -I/usr/include -lGeoIP -c mod_geoip.c

اکنون فایل mod_geoip.conf باز کنید.

nano /etc/apache2/conf.modules.d/mod_geoip.conf

مقادیر زیر را در آن قرار دهید.

LoadModule geoip_module /usr/lib64/apache2/modules/mod_geoip.so
<IfModule mod_geoip.c>
GeoIPEnable On
GeoIPDBFile /usr/share/GeoIP/GeoIP.dat Standard
GeoIPDBFile /usr/share/GeoIP/GeoLiteCity.dat Standard
</IfModule>

در نهایت سرویس apache را restart کنید.

service httpd restart

برای اطمینان از نصب دستور زیر را وارد کنید..

httpd -M | grep geoip


نصب Laravel در centos

How To Install Laravel  Framework on CentOS

پیش نیازهای نصب لاراول:

نسخه PHP:

۵٫۶ و بالاتر

ماژول های PHP:

OpenSSL , PDO , Mbstring , Tokenizer

ترجیا سعی کنید روی سرورهای خارج از ایران نصب نمایید.

ابتدا باید مخزن epel را نصب کنید.

yum install epel-release

ابتدا باید Composer را نصب کنید.

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
chmod +x /usr/local/bin/composer

اکنون باید laravel نصب شود.

وارد مسیری شوید که میخواهید لاراول نصب شود.

git clone https://github.com/laravel/laravel.git
cd laravel
composer install
chown -R USER.USER laravel
chmod -R 755 laravel

در نهایت باید Encryption Key ایجاد و در فایل app.php دخیره شود.

php artisan key:generate

Application key [Z4hfTHU7hFMwHauzOwv7rO9e0MJ9UnhQ] set successfully.

اطلاعات را در فایل config/app.php در قسمت APP_KEY به شکل زیر ذخیره کنید.

‘key’ => env(‘APP_KEY’, ‘Z4hfTHU7hFMwHauzOwv7rO9e0MJ9UnhQ’),
‘cipher’ => ‘AES-256-CBC’,

 

در نهایت سرویس apache را restart کنید.

service httpd restart

ریدایرکت کردن تمام درخواست های DNS به یک IP

در صورتی که میخواهید تمام درخواست هایی که به DNS  سرور شما ارجاع میشود، صفحه پیش فرض سرور را نمایش دهد، بدون انکه این آدرس دارای هاست یا رکورد DNS مستقل باشد، باید بصورت زیر عمل کنید.

با این کار میتوانید DNS تمام دامنه های مورد نظر را بروی سرور خود تنظیم نمایید و صفحه default وب سرور را مشاهده کنید.

برای این کار باید تمام درخواست های DNS وارد شده به سرور به IP سرور redirect شود.

در سیستم عامل Centos بصورت ابتدا باید یک مسیر zone جدید بصورت زیر اضافه کنید. احتمالا مسیر فایل به شکل زیر است:

nano /etc/named.conf

zone جدید با نام db.catchall:

zone "." { type master; file "/var/named/db.catchall"; };

اکنون کافی است فایل این zone را با اطلاعات زیر ایجاد کنید.

nano /var/named/db.catchall

محتویات فایل بصورت زیر خواهد بود.

$TTL       604800
@        IN      SOA     . root.localhost. (
                                ۱              ; Serial
                              ۶۰۴۸۰۰           ; Refresh
                               ۸۶۴۰۰           ; Retry
                           ۲۴۱۹۲۰۰             ; Expire
                              ۶۰۴۸۰۰  )        ; Negative CacheTTL
     IN   NS  .
.    IN   A     Your portal IP
*.   IN   A     Your portal IP

به جای Your portal IP باید IP سرور خود را قرار دهید.

توجه کنید این اموزش برای Centos می باشد در سایر سیستم عامل ها ممکن است مسیرها اندکی متفاوت باشد.

 

مفهوم MPM در Apache و انتخاب آن

وب سرور apache بصورت modular می باشد و امکان اضافه و حذف ویژگی ها به آن براحتی وجود دارد.  ماژول MPM در هسته apache قابلیت مدیریت اتصاصلات شبکه و توزیع درخواست ها را برعهده دارد. MPM به شما امکان استفاده از پردازش های multitasking و استفاده از apache در سایر سیستم عامل ها را میدهد.
MPM در هر لحظه فقط می تواند داری  یک حالت می باشد یکی از حالات worker|prefork|event
انتخاب MPM صحیح به عوامل زیادی ارتباط دارد. 
​– Worker MPM
با استفاده از عملکرد multiple child processes با فرایند زیاد برای هر درخواست انجام میشود. هر فرایند با یک کانکشن در زمان مدیریت میشود. worker یک انتخاب خوب برای سرورهای پر ترافیک به علت استفاده از حافظه کمتر است.
​–  event MPM
 ​مانند worker عمل میکند اما اجازه ورود درخواست های بیشتری را بصورت همزمان در  پردازش فرایندها ها وارد میکند. آزاد کردن فرایند های اصلی برای پردازش بروی درخواست های جدید انجام میشود.
— prefork MPM
از روش multiple child processes برای هر فرایند استفاده میکند.  هر پردازش با یک کانکشن در لحظه انجام میشود. در بسیاری موارد سرعت آن با worker یکسان است اما preforker حافظه memory بیشتری را استفاده میکند. در برخی حالات دارای شرایط بهتری نسبت به worker است، مانند راحت تر بودن رفع مشکل در سیستم عامل های مختلف
صرف نظر ازینکه کدام  MPM را انتخاب کنید، شما باید آن را مناسب پیکربندی کنید. به طور کلی، پیکربندی MPM شامل مشخص کردن اینکه apache چگونه به کنترل  بسیاری از worker در حال اجرا مشغول شود که شامل threads و processes می باشد.
در ادامه مفاهیم بیشتری پیرامون تنظیمات apache ارائه خواهد شد.

پرمیژن طلایی

استفاده از پرمیژن های مناسب تاثییر بسیاری در جلوگیری از سو استفاده از اطلاعات و حفظ امنیت دارد.
می توانید از دستورات زیر در cron برای تنظیم خودکار پرمیژن فایل های مهم مانند config دیتابیس استفاده نمایید.

find /home/*/public_html/configuration.php -print -exec chmod 400 {} ;
find /home/*/public_html/config.php -print -exec chmod 400 {} ;
find /home/*/public_html/wp-config.php -print -exec chmod 400 {} ;
find /home/*/public_html/*/configuration.php -print -exec chmod 400 {} ;
find /home/*/public_html/*/config.php -print -exec chmod 400 {} ;
find /home/*/public_html/*/wp-config.php -print -exec chmod 400 {} ;
find /home -type d -perm 777 -print -exec chmod 755 {} ;

می توانید فایل های دیگر را نیز اضافه نمایید.

12