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

خانه / Apache

Apache

ریدایرکت سایت با 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 {} ;

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

معرفی ( XCache, Varnish, APC و Memcached)

XCache:
Xcache یک opcode کش open-source میباشد، بدان معنی است که عملکرد PHP بر روی سرور را تسریع می بخشد. عملکرد بهینه سازی به این صورت است که زمان compile کدهای PHP در حاظفه RAM را حذف میکند با cache کردن کدهای complie شده قبلی در RAM . این فرایند زمان اجرا را تا ۵ برابر افزایش میدهد و باعث کاهش serverload میشود.
Varnish :
یک شتاب دهنده Http طراحی شده برای وب سایت های پویا با محتوای سنگین است. Varnish داده را بروی virtual memory ذخیره میکند و فایل های استاتیک و anonymous page-views ها را بسیار سریع تر و در حجم های بالاتر از آپاچی پردازش میکند.
با استفاده از این فناوری سرعت ارایه اطلاعات تا حدود ۳۰۰-۱۰۰۰ برابر می‌شود.
APC:
یک framework رایگان و open source که کدهای PHP را shared memory ذخیره می کند. علاوه بر cache یک user cache برای ذخیره اطلاعات application ها را نیز فراه می آورد.
Memcache:
یک سیستم high-performance، سیستم object caching حافظه توزیع شده برای استفاده در بالا بردن سرعت برنامه های dynamic web application با کاهش بار پایگاه داده می باشد.

افزایش کارایی WordPress با Varnish cache

این مقاله ترجمه شده است و صحت کامل آن توسط serversetup تایید نمی شود.

یک واقعیت که با آن روبرو هستیم این است که WordPress آهسته است. هر درخواست چندین خط را اجرا و درخواست به دیتابیس ارسال می نماید. WordPress یک انتخاب خوب و راحت برای راه اندازی سایت می باشد اما نیاز به کمک برای بهبود سرعت آن وجود دارد. در غیر اینصورت ممکن است سرعت سایت کاهش یابد و یا دیتابیس با crash مواجه شود.

Varnish Cache یک برنامه یک شتاب دهنده وب نیز به عنوان caching HTTP reverse proxy است. در هر سرور apache قابل نصب و پیکربندی برای cache کردن می باشد. Varnish Cache واقعا سریع است و سرعت پردازش هر فاکتور ارسالی بین ۳۰۰-۱۰۰۰ برابر سریعتر خواهد بود. Varnish پیش از وب سرور به پورت ۸۰ گوش میدهد. بسته به معماری و config سرور تا ۸۰% سرور پردازش درخواست ها افزایش می باشد. شرکت سازنده اعتقاد دارد Varnish از Nginx, Litespeedو Lighttpd عملکرد بهتری دارد و بار سرور را به طور چشمگیری کاهش میدهد.

مقایسه Apache2 و NginX

زمان، پول است. این جمله در زمان تجارت و تبلیغ معنای بیشتری میابد. اکنون زمان را بدست آورید.

Nginx معمولا در قالب PHP-FPM (مدیریت فرآیند FastCGI) و APC (جایگزین PHP کش) استفاده می شود.

آزمونی برای ۳ نوع متفاوت از نرم افزارهای  PHP  در سه Config  مختلف سرور:

۱-      برنامه حجیمی با استفاده از Zend Framework

۲-      اسکریپت کوچکی از PHP

۳-      WordPress

ادامه ی مطلب

12