Saya masuk ke server Linux. Saya pikir ini adalah distribusi Red Hat.
Perintah a2ensitedan a2dissitetidak tersedia. Dalam /etc/httpddirektori, saya tidak melihat penyebutan sites-enabledatau sites-available.
Saya cukup yakin situs ini sedang menjalankan arahan dari /etc/httpd/conf.d/ssl.conf. Saya ingin melakukan a2dissite ssl, lalu memuat ulang Server Web. Bagaimana cara mencapai ini?
a2ensite dll. adalah perintah yang tersedia dalam sistem berbasis Debian dan yang tidak tersedia dalam distribusi berbasis RH.
Apa yang mereka lakukan adalah mengelola tautan simbolik dari bagian file konfigurasi di /etc/apache2/sites-availabledan mods-availableke /etc/apache2/sites-enableddan seterusnya. Misalnya jika Anda memiliki vhost yang didefinisikan dalam file konfigurasi /etc/apache2/sites-avaible/example.com, a2ensite example.comakan membuat symlink ke file ini /etc/apache2/sites-enableddan memuat ulang konfigurasi apache. File konfigurasi Apache utama berisi baris yang menyertakan setiap file /etc/apache2/sites-enableddan dengan demikian, mereka dimasukkan ke dalam konfigurasi runtime.
Sangat mudah untuk meniru struktur ini di RHEL. Tambahkan dua direktori dalam /etc/httpd/nama sites-enableddan sites-availabledan tambahkan vhosts Anda ke dalam file sites-available. Setelah itu, tambahkan satu baris
include ../sites-enabled
untuk /etc/httpd/conf/httpd.conf. Anda sekarang dapat membuat symlink ke sites-enableddan kemudian memuat ulang konfigurasi dengan service httpd reloadatau apachectl.
Ahh begitu. Jadi pada dasarnya /etc/httpd/conf.d bertindak sebagai setara dengan situs yang diaktifkan. Jadi cukup hapus ssl.conf dari direktori itu dan restart / reload httpd mengambil perubahan saya. Itu keren
John
2
Sebagai tambahan untuk jawaban Sven yang luar biasa, dua skrip yang meniru perilaku a2ensite dan a2dissite. Ensite.sh asli dapat ditemukan di Github
a2ensite.sh
#!bin/bash
# Enable a site, just like the a2ensite command.
SITES_AVAILABLE_CONFIG_DIR="/etc/httpd/sites-available";
SITES_ENABLED_CONFIG_DIR="/etc/httpd/sites-enabled";
if [ $1 ]; then
if [ -f "${SITES_ENABLED_CONFIG_DIR}/${1}" ]; then
echo "Site ${1} was already enabled!";
elif [ ! -w $SITES_ENABLED_CONFIG_DIR ]; then
echo "You don't have permission to do this. Try to run the command as root."
elif [ -f "${SITES_AVAILABLE_CONFIG_DIR}/${1}" ]; then
echo "Enabling site ${1}...";
ln -s $SITES_AVAILABLE_CONFIG_DIR/$1 $SITES_ENABLED_CONFIG_DIR/$1
echo "done!"
else
echo "Site not found!"
fi
else
echo "Please, inform the name of the site to be enabled."
fi
a2dissite.sh
#!bin/bash
# Disable a site, just like a2dissite command, from Apache2.
SITES_AVAILABLE_CONFIG_DIR="/etc/httpd/sites-available";
SITES_ENABLED_CONFIG_DIR="/etc/httpd/sites-enabled";
if [ $1 ]; then
if [ ! -f "${SITES_ENABLED_CONFIG_DIR}/${1}" ]; then
echo "Site ${1} was already disabled!";
elif [ ! -w $SITES_ENABLED_CONFIG_DIR ]; then
echo "You don't have permission to do this. Try to run the command as root."
elif [ -f "${SITES_AVAILABLE_CONFIG_DIR}/${1}" ]; then
echo "Disabling site ${1}...";
unlink $SITES_ENABLED_CONFIG_DIR/$1
echo "done!"
else
echo "Site not found!"
fi
else
echo "Please, inform the name of the site to be enabled."
fi
Sebagai tambahan untuk jawaban Sven yang luar biasa, dua skrip yang meniru perilaku a2ensite dan a2dissite. Ensite.sh asli dapat ditemukan di Github
a2ensite.sh
a2dissite.sh
sumber