خطای Apache "نمی توان با اطمینان نام دامنه کاملاً واجد شرایط سرور را تعیین کرد"


به جواب پذیرفته شده بروید




وقتی سرور آپاچی خود را با استفاده از دستور شروع مجدد می کنم

 sudo /etc/init.d/apache2 restart
 

من خطای زیر را دریافت می کنم:

 Restarting web server apache2
apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
... waiting apache2:
Could not reliably determine the server's fully qualified domain name, using 127.0.1.1 for ServerName
 

آیا سرور به جای 127.0.0.1 از 127.0.1.1 استفاده می کند؟ چه عواملی باعث ایجاد این خطا می شود؟


440









14 :تعداد پاسخها


6 # 13.04 و بالاتر

این فقط یک هشدار دوستانه است و واقعاً مشکلی ندارد (همانطور که در این مورد کار نمی کند).

اگر بروید به:

 /etc/apache2/apache2.conf
 

و درج کنید:

 ServerName localhost   
 

و سپس با وارد کردن در ترمینال ، آپاچی را مجدداً راه اندازی کنید:

 sudo systemctl reload apache2
 

هشدار ناپدید می شود

اگر نامی در داخل /etc/hostname دارید می توانید به جای آن از آن نام استفاده کنید localhost .


و در 127.0.1.1 صورتی که درون شما باشد استفاده می کند /etc/hosts :

 127.0.0.1 localhost
127.0.1.1 myhostname
 

روش ترجیحی

عیب یابی آپاچی

در صورت بروز این خطا:

 apache2: Could not determine the server's fully qualified domain name, 
using 127.0.0.1 for ServerName
 

سپس از یک ویرایشگر متنی مانند "sudo nano" در خط فرمان یا "gksudo gedit" در دسک تاپ استفاده کنید تا یک فایل جدید ایجاد کنید ،

 sudo nano /etc/apache2/conf.d/fqdn
 

یا

 gksu "gedit /etc/apache2/conf.d/fqdn"
 

سپس اضافه کنید

 ServerName localhost
 

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

  echo "ServerName localhost" | sudo tee /etc/apache2/conf.d/fqdn
 

اما در اوبونتو 14.04:

  echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/fqdn.conf
 sudo a2enconf fqdn
 

".conf" را فراموش نکنید (بدون کار نخواهد کرد).


524



13.10 یا جدیدتر

در مورد Apache 2.4 - که به طور پیش فرض از تاریخ 13.10 در دسترس است - شما نمی توانید از روش اضافه کردن پرونده پیکربندی در conf.d دایرکتوری استفاده کنید.

آپاچی دیگر از conf.d فهرست استفاده نمی کند . همه پرونده های پیکربندی در /etc/apache2/conf-available فهرست قرار می گیرند و اکنون کلیه پرونده های پیکربندی باید .conf پسوند داشته باشند.

برای حل این پیام در آپاچی 2.4 ، باید یک فایل پیکربندی را در داخل فهرست موجود در دسترس داشته باشیم. به عنوان مثال servername.conf .

 sudo vi /etc/apache2/conf-available/servername.conf
 

و در داخل این ما فقط باید یک خط اضافه کنیم

 ServerName localhost
 

می توانید دو دستور قبلی را در یک با یکدیگر ترکیب کنید:

 echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
 

اگر می خواهید از یک نام دامنه یا هر نام دیگر بسته به نیاز آن استفاده کنید ، کافی است localhost آنچه را که لازم دارید جایگزین کنید. در مرحله بعد باید این پیکربندی را فعال کنید. برای این کار باید دستور زیر را اجرا کنید:

 sudo a2enconf servername
 

a2enconf یک دستور برای فعال کردن یک پرونده پیکربندی در Apaches 2.4 است. همچنین توجه داشته باشید که servername در دستور فوق از نام پرونده پیکربندی موجود است servername.conf . اگر پرونده پیکربندی ngenericserver.conf شما بود ، باید می نوشتید sudo a2enconf ngenericserver .

پس از این بارگیری مجدد ، سرور و پیام فوق دیگر برای شما اشکال نخواهد داشت.

 sudo service apache2 reload
 

یا

 sudo apache2ctl graceful
 

حال بعد از این خواهید دید که پیام دوباره نشان داده نمی شود و مشکل برطرف می شود.


178



Apache2 همچنین می تواند FQDN را از یک نام میزبان سیستم به درستی پیکربندی شده به جای هک کردن در پرونده پیکربندی apache دریافت کند. در صورت تغییر نام میزبان ، کدگذاری سخت آن باعث سردرگمی خواهد شد. شما در واقع هر نیاز ندارد ServerName دستورات در httpd.conf و یا هر فایل آپاچی پیکربندی.

موارد زیر را در اینجا قرار دهید /etc/hosts :

 # IPv4 and IPv6 localhost aliases
127.0.0.1 hostname.domainname.com  hostname  localhost
::1       hostname.domainname.com  hostname  localhost
 

hostname.domainname.com FQDN دستگاه شما کجاست

در کنار یک نام میزبان به درستی تنظیم شده در /etc/hostname/ یا با آن hostnamectl ، این سرویس همچنین به سایر سرویس های دستگاه شما کمک می کند تا به درستی کار کنند (به عنوان مثال سریع ورود به سیستم ، This is hostname.domainname.com به جای نشان دادن This is hostname.unknown_domain ).


29



  • یک ترمینال را باز کنید
  • /etc/apache2/httpd.conf پرونده را باز کنید:

     sudo editor /etc/apache2/httpd.conf # [1]
     
  • به طور پیش فرض ، خالی خواهد بود. به سادگی خط زیر را اضافه کنید:

     ServerName localhost
     
  • پرونده را ذخیره کرده و خارج شوید

  • راه اندازی مجدد سرور

     sudo service apache2 restart
     

[1] ویرایشگر پیش فرض را راه‌اندازی کنید ، ببینید sudo update-alternatives --config editor


26



در نسخه جدید apache2 شما دستور زیر را دنبال می کنید:

 sudo nano /etc/apache2/apache2.conf
 

انتهای خط جدید زیر را اضافه کنید:

 ServerName localhost
 

سپس apache2 را مجدداً راه اندازی کنید:

 sudo service apache2 restart
 

انجام شد.


21



من آن است که کمی بهتر است برای ایجاد یک فایل جدید در /etc/conf.d که به تغییر هم apache2.conf یا httpd.conf .

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

من پرونده را ایجاد می کنم /etc/apache2/conf.d/AAserverName و فقط شامل:

 ServerName myhost.mycomain.tld
 

پیشنهادات دیگر قطعاً نیز کار می کنند.


6



در اوبونتو 16.04:

 sudo -i

echo 'ServerName localhost' > /etc/apache2/conf-available/server-name.conf
a2enconf server-name
 

2



اضافه کردن ServerName localhost

به

  sudo leafpad /etc/apache2/apache2.conf

 sudo leafpad /etc/apache2/httpd.conf
 

این یک خطا نیست .. فقط یک یادآوری دوست است


1



مشخص کردن ServerName localhost پرونده های پیکربندی شما در خارج از بخش میزبان مجازی راهی برای انجام این کار است.

برخی از پاسخ های دیگر نشان می دهد که شما باید اصلاح کنید /etc/apache2/httpd.conf . این فایل با آپگرید شدن آپاچ از apt به متن رونویسی می شود. برای پیکربندی Apache که نمی خواهید رونویسی شود ، باید یک فایل جدید ایجاد کنید. در اینجا "روش دبیان" برای تغییر این پیکربندی آمده است:

 # create the configuration file in the "available" section
echo "ServerName localhost" | sudo tee /etc/apache2/conf-available/servername.conf
# enable it by creating a symlink to it from the "enabled" section
sudo a2enconf servername
# restart the server
sudo service apache2 restart
 

این در اصل همان جواب استارک است ، اما به راحتی کپی و چسباندن فرم اسکریپت آسان است. من در ابتدا این موضوع را در سؤالی ارسال کردم که به صورت تکراری مشخص شده بود: https://askubuntu.com/a/432408


1



در اوبونتو 16.04 :

فرمان زیر را ServerName localhost به پرونده اضافه کنید httpd.conf .

 sudo vi  /etc/apache2/httpd.conf
 

سپس Include httpd.conf در انتهای این پرونده این خط را وارد کنید

 sudo vi /etc/apache2/apache2.conf
 

دوباره خطاهای نحوی را بررسی کنید

 sudo apache2ctl configtest
 

حالا باید دریافت کنید

 Syntax OK
 

اکنون می توانید با بارگذاری مجدد تنظیمات ، سرور را با کمال میل مجدداً راه اندازی کنید

 sudo service apache2 reload
 

یا روند را بکشید و دوباره شروع کنید

 sudo service apache2 restart
 

1



در اوبونتو 11.10 ، این پیام را دیدم ، همراه با یک بوت آویزان در حال رخ دادن است زیرا دیسک من پر شده است. یکی از پرونده های لاگ سرکش رفته بود . احتمالاً در آپاچی مشکلی پیش نیامده است ، اما این پیام آخرین سرنخی است که قبل از آویزان کردن بوت داده شده است.

برای رفع مشکل ، مجبور شدم به حالت ریکاوری بوت شوم و پرونده log wayward را حذف کنم.


0



اگر از bash استفاده می کنید و حداقل وابستگی می خواهید (و اگر از اسکله ورودی خود استفاده می کنید ، اگر مانند Docker مانند من استفاده می کنید) ، این دو گزینه باید کار کنند.

اگر می خواهید localhost:

echo "ServerName localhost" >> /etc/apache2/apache2.conf

اگر نام میزبان موجود را می خواهید:

echo "ServerName $(cat /etc/hostname)" >> /etc/apache2/apache2.conf

این با استفاده از عملگرهای تغییر مسیر bash برای اضافه کردن رشته در انتهای پرونده. اکو بطور خودکار خط جدید را وارد می کند ، بنابراین همه شما تنظیم می شوید.


0



دستور زیر را اجرا کنید:

 apachectl -t -D DUMP_INCLUDES
 

برای تعیین مسیر httpd.conf پرونده پیکربندی خود ، سپس آن فایل را ویرایش کرده و خط را حذف کنید / اصلاح کنید که مقدار ServerName گزینه را مشخص می کند ، به عنوان مثال

 ServerName localhost
 

برای وب سرور ، از نام ثبت شده DNS استفاده کنید (به عنوان مثال example.com ).

اگر میزبان شما نام DNS ثبت شده ای ندارد ، آدرس IP آن را در اینجا وارد کنید.


0



در اوبونتو 16.04 :

فرمان زیر را ServerName localhost به پرونده اضافه کنید httpd.conf .

 sudo vi  /etc/apache2/httpd.conf
 

سپس Include httpd.conf در انتهای این پرونده این خط را وارد کنید

 sudo vi /etc/apache2/apache2.conf
 

دوباره خطاهای نحوی را بررسی کنید

 sudo apache2ctl configtest
 

حالا باید دریافت کنید

 Syntax OK
 

اکنون می توانید با بارگیری مجدد تنظیمات sudo service apache2 ، مجدداً سرور را با کمال میل مجدداً راه اندازی کنید


0



انتشارات مرتبط


چگونه می توان نام دامنه کاملاً واجد شرایط را در 12.04 تنظیم کرد؟

خطا! پرونده dkms.conf یافت نشد

نصب jdk توسط و دارای خطا: نمی توان ماشین مجازی جاوا را ایجاد کرد

خطای VSFTPD 553: نمی تواند پرونده ایجاد کند

خطای apache2 نمی توان پرونده پیکربندی را باز کرد /etc/apache2/conf.d/: چنین پرونده یا دایرکتوری وجود ندارد

چگونه باید خطا را اشکال زدایی کنم "نمی توان صفحه کلید را برداشت. ممکن است یک مشتری مخرب در حال گوش دادن به جلسه شما باشد. "

apache2: با اطمینان از نام دامنه کاملاً واجد شرایط سرور ، با استفاده از 127.0.1.1 برای ServerName ... انتظار apache2:

خطا در هنگام بارگیری کلیدهای میزبان SSH قادر به بارگیری کلید میزبان نیست

مشکلی در تنظیم خطای git: نمی توان پرونده پیکربندی را قفل کرد

"خطای libmtp: نمی توان پرونده را از دستگاه دریافت کرد." در تلاش برای انتقال پرونده ها از تلفن Android

[server] سوال برچسب


چگونه کاربر موجود را به یک گروه موجود اضافه کنیم؟

چگونه می توانم تمام HDD / پارتیشن های موجود را مشاهده کنم؟

چگونه سرویس شبکه را مجدداً راه اندازی کنیم؟

با استفاده از خط فرمان ، پرونده ای را پیدا کنید

چگونه "W: ورود منابع فهرست را کپی کنید"؟

روند <defunct> چیست و چرا کشته نمی شود؟

apt-get at 0 [اتصال به us.archive.ubuntu.com]

نام های مستعار هنگام استفاده از سودو در دسترس نیست

چگونه می توان یک دستگاه USB را از خط فرمان بازنشانی کرد؟