[aman@aman-Inspiron-1440:~$ apache2
[Mon Apr 21 17:36:38.019213 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOCK_DIR} is not defined
[Mon Apr 21 17:36:38.019345 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_PID_FILE} is not defined
[Mon Apr 21 17:36:38.019370 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_USER} is not defined
[Mon Apr 21 17:36:38.019385 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_RUN_GROUP} is not defined
[Mon Apr 21 17:36:38.019414 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.028756 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029032 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
[Mon Apr 21 17:36:38.029056 2014] [core:warn] [pid 4134] AH00111: Config variable ${APACHE_LOG_DIR} is not defined
AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf:
Invalid Mutex directory in argument file:${APACHE_LOCK_DIR}
Ini adalah isi /etc/apache2/apache2.conf
file.
Jawaban:
Saya punya masalah ini: Penyebabnya ada di file
di mana root telah berubah:
sebelum peningkatan =
/var/www
setelah peningkatan =
/var/www/html
Jadi edit untuk memodifikasi file ini
Dan restart apache
sumber
000-default.conf
file.html
subfolder sudah ada, yang dalam kasus saya sebenarnya tidak relevan karena semua situs saya menggunakan VirtualHostsDocumentRoot
pengaturan.Saya memiliki masalah ini meskipun apache bekerja untuk saya. Saya hanya ingin melakukan yang cepat
untuk menemukan nilai
SERVER_CONFIG_FILE
. Karena itu bukan cara untuk memulai apache2 lagi gagal dengan kesalahan posting OP. Solusi yang cepat dan kotor adalah dengan mengatur envvars yang hilang terlebih dahulu:Ini menetapkan variabel APACHE_LOCK_DIR dan semuanya baik-baik saja (
-D SERVER_CONFIG_FILE="apache2.conf"
).sumber
apache2 -S
gagal berjalan . Semua sudah diperbaiki.apache2
sebagai root memperbaiki masalah.apache2ctl -V
Gejala dan solusinya
Di banyak situs web atau forum tanya jawab, orang bingung gejala dan penyebab sebenarnya. Saya baru saja memutakhirkan server ubuntu dari 13.10 menjadi 14.04.1 dan mengalami gejala yang sama persis seperti yang dijelaskan oleh OP, termasuk:
1- apache yang tampaknya tidak berfungsi. 2- variabel konfigurasi apache tidak terdefinisi. 3- kesalahan sintaks yang disebutkan oleh OP.
Masalahnya adalah bahwa tidak semua gejala ini benar-benar cocok dengan masalah yang sebenarnya dan mereka hanya berfungsi sebagai pengalih perhatian bagi mereka yang mencoba yang terbaik untuk membantu.
Masalah root yang berbeda dapat menyebabkan administrator datang ke situs seperti ini dengan deskripsi yang kira-kira sama: "Saya memutakhirkan OS dan sekarang apache tidak berfungsi ..."
Satu penyebab spesifik
Dengan semua gejala yang tampak sama persis seperti OP, saya tertarik pada pertanyaan ini. Sayangnya, satu-satunya jawaban yang berisi petunjuk yang valid ke akar penyebab masalah saya adalah downvoted (-1), diposting oleh user1469291 dengan perwakilan 1 !! Jadi saya mencari lebih jauh situs web lain sampai saya menemukan penjelasan yang jelas tentang masalahnya (dan dengan demikian solusinya).
Solusi berikut mungkin tidak memecahkan masalah OP yang sebenarnya, tapi saya yakin itu akan membantu orang lain yang tertarik dengan pertanyaan ini karena alasan yang sama seperti saya.
/etc/apache2/apache2.conf berisi:
yang berarti bahwa hanya file konfigurasi situs di / etc / apache2 / situs-enabled / diakhiri dengan .conf yang akan dimuat. Symlink yang lebih lama di direktori itu akan diabaikan.
Dulu hanya situs-enabled / *. Itu sebabnya semua file konfigurasi virtual host saya yang saya beri nama ww1.example.com, ww2.example.com, dll, dulu berfungsi tetapi tiba-tiba dan awalnya tidak dapat dijelaskan berhenti bekerja setelah peningkatan.
Jadi, ubah direktif di atas dan muat ulang apache, atau, seperti yang saya lakukan, secara manual menghapus semua symlink yang lebih lama di situs yang diaktifkan /, ganti nama semua file di situs yang tersedia / untuk menambahkan akhiran .conf dan kemudian aktifkan kembali masing-masing situs secara individual.
Selain itu, arahan default di apache.conf lebih ketat:
Jadi, jika Anda meng-host situs virtual Anda di / home / user / suatu tempat, pastikan untuk mengesampingkan arahan dengan tepat.
sumber
Melihat dari dekat masalah Anda, Anda hanya berlari
apache2
. Untuk memulai apache di Ubuntu, jalankan perintah berikut:Konfigurasi Apache dibagi menjadi beberapa file, salah satunya adalah variabel lingkungan. Ketika Anda menjalankan hanya
apache2
, variabel-variabel ini tidak diatur.Script apache2ctl akan memuat variabel (dan melakukan beberapa hal lain juga saat diperlukan) sebelum memulai apache
apache2 -k start
.sumber
sudo apache2ctl restart
saja.Edit konfigurasi
sudo leafpad /etc/apache2/apache2.conf
::atau hapus file.
sumber
jawaban augustin bekerja untuk saya ketika semua host virtual saya menghilang setelah upgrade server dari 12,04 LTS ke 14,04 LTS. Saya akan mengangkatnya jika saya memiliki reputasi untuk melakukannya.
Perintah berikut akan menambahkan
.conf
suffix ke semua symlink/etc/apache2/sites-enabled
yang belum memilikinya:Selain itu, ada perubahan dari penggunaan
Allow from
/Deny from
sintaks keRequire
dalam modul mod_authz_host (di sini adalah tautan untuk dokumentasi 2.2).Perintah berikut akan mengedit penggunaan umum yang
Order allow, deny
diikuti olehAllow from all
menjadiRequire all granted
:sumber
Bahkan, dokumen tidak berubah antara tepat dan dapat dipercaya dari / var / www ke / var / www / html. Sangat buruk bahwa skrip do-release-upgrade tidak mundur kembali ke dokumen.
A) Keduanya valid, tetapi html lebih konvensional. CentOS berpengaruh dalam hal ini. Halaman "ini berfungsi" juga lebih dewasa sekarang.
B) Anda tidak harus menggunakan / var / www / html, tetapi jika Anda melakukannya ...
C) Dan mungkin lebih mudah untuk membangun dari bawah ke atas dan bermigrasi.
D) Gejala ini akan terjadi jika Anda "sudo apache2 -k anggun" di luar kotak pada Trusty, upgrade atau tidak karena para utusan tidak berada dalam ruang lingkup? Gunakan "sudo apache2ctl start / stop / restart" sebagai gantinya.
sumber
Dalam hal ini:
html
subfolder di/var/www/
sudah ada tapi masih saya mendapatkan error:AH00526: Syntax error on line 74 of /etc/apache2/apache2.conf
/home/{user}/sites/
bukannya standar/var/www/html
apache2 -v
)Bagaimana saya memecahkan masalah dalam lima langkah mudah:
Dalam
/etc/apache2/apache2.conf
saya menambahkan berikut setelah baris 169:Saya memastikan konfigurasi Virtual Host saya yang bernama
website.conf
at/etc/apache2/sites-available
telah disalin dari default000-default.conf
, dan tampak seperti:Saya memuat ulang situs saya (
sudo a2dissite website && sudo a2ensite website
) dan server saya dan kesalahan awal hilang. WOO HOO! Tetapi yang baru muncul: "AH00035: akses ke / ditolak (jalur sistem file '/ home / {pengguna} / situs') karena izin pencarian tidak ada pada komponen jalur". Ini saya selesaikan di langkah 4.Masalah baru adalah karena izin, jadi saya hanya mengatur masing-masing direktori yang mengarah ke
website
folderchmod 755
. Setiap! Thehome
folder, yang {user} folder, folder situs, dan bahkan folder website sayaSetelah menyegarkan browser saya di
website.dev
semuanya dimuat dengan baik!PS Saya sudah menyiapkan
website.dev
di/etc/hosts
file saya .Tip Bonus: Untuk memeriksa izin folder tertentu Anda dapat menggunakan perintah
stat -c %a /path/to/file/or/folder
. Untuk memeriksa izin setiap bagian dari penggunaan direktorinamei -m /path/to/final/folder
.sumber