تنظیمات per-domain یا per-path برای php

با توجه به اینکه suPhp قدیمی است و کارایی انواع جدید تر php را ندارد ،  مدیران می خواهند روشهای جدید را با آن ترکیب کنند و علاوه بر آن قابلیت تنظیم هر آیتم را داشته باشند تا بتوانند تنظیمات سفارشی را در صورت لزوم انجام دهند .

در صورتی که شما از (mod_php (cli استفاده می کنید ، بخش عمده ای از تنظیمات php می تواند در Custom Httpd Config با تنظیمات درست و استاندارد php_admin_flag / php_admin_value  در VirtualHost تنظیم شود.

ممکن است شما بخواهید کنترل بیشتری داشته باشید ، مثلا برای مواردی که این روش یا این مسیر و ..  آنها را ساپورت نمی یکند و … .

در این موارد CustomBuild 2.0 از یک پوشه برای فایل های php.ini اضافه استفاده می کند ، اگر آنها در این پوشه وجود داشته باشند لود می شوند .

مسیر به حالت php  بستگی دارد ، به عنوان مثال ما از مسیر زیر استفاده خواهیم کرد :

/usr/local/lib/php.conf.d

اما برای حالات دیگر php ، اگرورژن php ای که استفاده می کنیم  php55 است ، مسیر ممکن است مانند زیر باشد :

/usr/local/lib/php55/php.conf.d

شما هم می توانید مکان php.ini و php.conf.d را تعیین کنید ، اینجا را ببینید .

زمانی که مسیر را میدانید می توانید  فایل ini سفارشی خود را ایجاد کنید .

بارگذاری فایل های ini به ترتیب حروف الفبا انجام می شود ، بنابراین ما فایل ها را برای اینکه بدانیم در کدام یک از آنها بارگذاری می شود، بررسی می کنیم .

معمولا این دستور خیلی مهم نیست، مگر اینکه تنظیمات مربوط به یک ماژول را که باید ابتدا بارگیری شود تغییر دهید

Per-domain settings

اگر شما بخواهید تنظیمات Per-domain را برای domain.com انجام دهید باید فایل زیر را  بسازید :

/usr/local/lib/php.conf.d/30-domain.com.ini

و سپس کدی شبیه به زیر وارد کنید :

[HOST=domain.com]
session.save_path=/home/fred/tmp
upload_tmp_dir=/home/fred/tmp

این کد مثال است .

Per-path settings

به طور مشابه شما می توانید تنظیمات را براساس per-path تغییر دهید .

برای کاربری به عنوان مثال fred که ماهر  است اگر شما بخواهید تنظیمات را برای دامنه ی تحت آن اعمال کنید (معمولا برای هر کاربر) ، فایل را ویرایش کنید :

/usr/local/lib/php.conf.d/30-fred.ini

و سپس کد های زیر را اضافه کنید :

[PATH=/home/fred]
session.save_path=/home/fred/tmp
upload_tmp_dir=/home/fred/tmp

مثال بالا به این معنی است که برای هر آیتمی که میخواهید اضافه کنید ، یک فایل جداگانه ایجاد کنید . البته این لازم نیست .

شما می توانید از یک فایل اضافی برای لود سریع تر استفاده کنید اما شما باید لیست دامنه ها را در خروجی phpinfo() پنهان کنید .

همانگونه که همه ی فایل های اضافی  php.ini بارگذاری شده نمایش داده می شوند .

بنابراین اگر شما از این مورد استفاده می کنید :

/usr/local/lib/php.conf.d/30-custom-domains.ini

نکته : شما می توانید بسیاری از مطالب [HOST = xx] را یکی پس از دیگری در یک فایل اضافه کنید.