ভার্চুয়াল হোস্টে ত্রুটি_লগ?


113

একটি লিনাক্স সার্ভারে অ্যাপাচি এবং পিএইচপি 5 চলমান রয়েছে, আমাদের পৃথক লগ ফাইল সহ একাধিক ভার্চুয়াল হোস্ট রয়েছে। error_logভার্চুয়াল হোস্টগুলির মধ্যে আমরা পিএইচপি আলাদা করতে পারি না ।

এই সেটিং অগ্রাহ্য <Location>এর httpd.confকিছু করতে মনে হচ্ছে না।

error_logsপ্রতিটি ভার্চুয়াল হোস্টের জন্য আলাদা পিএইচপি করার কোনও উপায় আছে কি ?

উত্তর:


81

অ্যাপাচি ( পিএইচপি নয় ) লগ সেট করতে , এটি করার সবচেয়ে সহজ উপায় হ'ল:

<VirtualHost IP:Port>
   # Stuff,
   # More Stuff,
   ErrorLog /path/where/you/want/the/error.log
</VirtualHost>

যদি নেতৃস্থানীয় "/" না থাকে তবে এটি আপেক্ষিক বলে ধরে নেওয়া হয়।

অ্যাপাচি ত্রুটি লগ পৃষ্ঠা


7
এটিই
অ্যাপাচি

কিসের সাথে আপেক্ষিক? এর ডিরেক্টরিতে httpd.confলেখা আছে, নাকি?
এমবি 21

141

কেউ যদি দেখতে আসে তবে এটি দেখতে এমন হওয়া উচিত:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/domains/example.com/html
    ErrorLog /var/www/domains/example.com/apache.error.log
    CustomLog /var/www/domains/example.com/apache.access.log common
    php_flag log_errors on
    php_flag display_errors on
    php_value error_reporting 2147483647
    php_value error_log /var/www/domains/example.com/php.error.log
</VirtualHost>

এটি কেবলমাত্র চালু হওয়ার পরে বিকাশের জন্য display_error। আপনি লক্ষ্য করবেন যে অ্যাপাচি ত্রুটি লগটি পিএইচপি ত্রুটি লগ থেকে পৃথক। ভাল জিনিস আছে php.error.log

Http://www.php.net/manual/en/errorfunc.configration.php#ini.error-reportingerror_reporting কীটির জন্য এখানে একবার দেখুন


8
আপনার কনফিগারেশনের উপর নির্ভর করে আপনাকে ম্যানুয়ালি লগ ফাইল তৈরি করতে এবং মালিক / গোষ্ঠীটিকে একই ব্যবহারকারী / গোষ্ঠীতে সেট করতে হবে যা অ্যাপাচি ব্যবহার করছে। এটি যদি লগ ফাইলটিতে না লিখতে পারে তবে অ্যাপাচি আপনাকে সতর্ক করবে না।
আয়ান ডান

নোট করুন যে "ত্রুটি_পরিবর্তন" মান পিএইচপি এর নতুন সংস্করণগুলির সাথে আরও ত্রুটির মাত্রা যুক্ত করার সাথে পরিবর্তিত হয়। E_ALL = "30719" এখনই।
রিঅ্যাকটিভরভেন

2
Php_value error_reporting 2147483647: যেহেতু "error_reporting" মান পরিবর্তন এবং যেহেতু আপনি "E_ALL" এবং পিএইচপি এর "E_STRICT 'বাইরে মত পিএইচপি ধ্রুবক ব্যবহার করতে পারবেন না রাখা, তাহলে এটি আপনাকে কিভাবে নিশ্চিত আপনি সবসময় সমস্ত ত্রুটি লগ আছে
Buttle Butkus

আপনি কেন আপনার পাবলিক ডোমেন স্পেসে লগ চান?
অ্যালেক্সভ্যালিজো

1
লগ ফাইলটি সর্বজনীন হবে না। / এইচটিএমএল / হল সর্বজনীন স্থান।
ক্লাচ

13

আমি সাধারণত শুধু একটি এই নির্দিষ্ট .htaccessফাইল বাvhost.conf ডোমেইন আমি কাজ করছি করেন। এই ফাইলগুলির মধ্যে একটিতে এটি যুক্ত করুন:

php_admin_value error_log "/var/www/vhosts/example.com/error_log"

1
মধ্যে পার্থক্য উপর ক্যান যে কেউ মন্তব্য php_admin_valueএবং php_value?
নিক এম

1
এটি পার্থক্যটি ব্যাখ্যা করে: mattiasgeniar.be/2012/02/18/…
জেরেমি

9

ত্রুটি_লগ () এর ডিফল্ট আচরণ হ'ল অ্যাপাচি ত্রুটি লগের আউটপুট। যদি এটি না ঘটে থাকে তবে ত্রুটি_লগ নির্দেশনার জন্য আপনার php.ini সেটিংস পরীক্ষা করে দেখুন। বর্তমান vhost এর জন্য অ্যাপাচি লগ ফাইলটি ব্যবহার করতে এটি সেট না করে ছেড়ে দিন।


আমি যাচাই করব. আমি কেবল আশ্চর্য হয়েছি যে যদি আমরা বিকাশকারীদের এপাচি ত্রুটি লগ না দিয়ে তাদের কোডটি ডিবাগ করার সুযোগ দিতে চাই যখন অন্য সংবেদনশীল ডেটা থাকতে পারে তখনও অ্যাপাচি এবং পিএইচপি ত্রুটিযুক্ত লগ আলাদা রাখা সম্ভব কিনা?
মাইকেল স্টাম

7

error_logআপনার যেখানে সেট করবেন নাsyslog স্টাফগুলি যায় সেটিরeg /var/log/apache2 , কারণ এগুলি ত্রুটিগুলি দ্বারা বাধা পাবে ErrorLog। পরিবর্তে, লগ এবং করতে subdirআপনার প্রকল্প ফোল্ডারে একটি তৈরি করুন php_value error_log "/path/to/project/logs"। এটি .htaccess ফাইল এবং vhosts উভয়ের জন্য যায় । আপনি লাগিয়েছেন তা নিশ্চিত php_flag log_errorsকরুন


মজাদার. এই আচরণটি ত্রুটি_লগ ফাইলের পথে নির্ভর করে?
demkoryu

6

আপনি কি php_value error_log '/path/to/php_error_logআপনার ভার্চুয়ালহস্ট কনফিগারেশনে এটি যুক্ত করার চেষ্টা করেছেন ?


6

হ্যাঁ, আপনি চেষ্টা করতে পারেন,

php_value error_log "/var/log/php_log" 

মধ্যে .htaccessবা আপনি ব্যবহারকারীদের ব্যবহার থাকতে পারেini_set() তাদের স্ক্রিপ্ট প্রারম্ভে যদি তারা লগিং করাতে চাই।

অন্য বিকল্পটি হ'ল স্ক্রিপ্টগুলি স্ক্রিপ্টের সাথে php.iniফোল্ডারে থাকা ডিফল্টরূপে সক্ষম করতে , তারপরে ব্যবহারকারী / হোস্টের রুট ফোল্ডারে, তারপরে সার্ভারের রুটে, বা অনুরূপ কিছু। এটি হোস্টগুলিকে তাদের নিজস্ব php.iniমান এবং নিজস্ব error_logঅবস্থানগুলি যুক্ত করতে দেয় ।



5

আমার অ্যাপাচি এরকম কিছু ছিল httpd.conf এ। কেবল ত্রুটিলগ এবং কাস্টমলগ সেটিংস পরিবর্তন করুন

<VirtualHost myvhost:80>
    ServerAdmin webmaster@dummy-host.example.com
    DocumentRoot /opt/web
    ServerName myvhost
    ErrorLog logs/myvhost-error_log
    CustomLog logs/myvhost-access_log common
</VirtualHost>

1
আমরা পিএইচপি লগ সম্পর্কে কথা বলছি, এখানে অ্যাপাচি লগ নয়।
demkoryu

4

আপনি চেষ্টা করতে পারেন:

    <VirtualHost myvhost:80>
       php_value error_log "/var/log/httpd/vhost_php_error_log"
    </Virtual Host>

তবে আমি নিশ্চিত নই যে এটি কার্যকর হবে কিনা। আমি আমার সাইটে কোনও সাফল্য না দিয়ে চেষ্টা করেছি।


2

সাধারণ ভার্চুয়ালহোস্ট তৈরি করুন:

উদাহরণ হোস্টনাম: - thecontrolist.localhost

  1. সি: \ উইন্ডোজ \ সিস্টেম 32 \ ড্রাইভার \ ইত্যাদি

    127.0.0.1 thecontrolist.localhost হোস্ট ফাইল মধ্যে

  2. সি: \ XAMPP \ Apache \ সার্ভার \ অতিরিক্ত \ httpd 'র-vhosts.conf

    <VirtualHost *>
      ServerName thecontrolist.localhost
      ServerAlias thecontrolist.localhost
      DocumentRoot "/xampp/htdocs/thecontrolist"
      <Directory "/xampp/htdocs/thecontrolist">
        Options +Indexes +Includes +FollowSymLinks +MultiViews
        AllowOverride All
        Require local
      </Directory>
    </VirtualHost>
    
  3. আপনার অ্যাপাচি পুনরায় চালু করতে ভুলবেন না। আরও এই লিঙ্কটি পরীক্ষা করে দেখুন

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.