CONTENT
- CHANGES
Szukaj
#top Instalacja¶
- Instalacja
- Postinstalacyjna konfiguracja
- Keep oryginal start script
- Remove symlinks and move config files
- Update /etc/sysconfig/httpd file
- Correct logrotate file
- Set default setting in config file
- Create directory root structure
- Remove custom error page
- Enable virtual hosts
- Comment out vhost in /etc/httpd/conf.d/ssl.conf
- Configure default virtual host
- Create second $HOSTNAME virtual host
- Create ssl $HOSTNAME virtual host
- PHP
- Start httpd server
- Multiple instances (prefork + worker)
- Multiple instances (CentOS 5.*)
- Multiple instances (CentOS 6.*)
- Start httpd server (multiple instances)
Instalację serwera Apache/HTTPD można wykonać na różne sposoby: od kompilacji ze źdródeł poprzez instalację pojedynczych paczek rpm za pomocą polecenia rpm skończywszy na instalacja z użyciem menedżera pakietów, który zainstaluje wszystkie niezbędne paczki wraz zależnościami.
Celem niniejszego dokumentu nie jest rozważanie różnych metod instalacji tylko nieco usprawnienie użyteczności konfiguracji serwera Apache/HTTPD po zainstalowaniu oraz wprowadzenie porządku / hierarchi położenia plików z których korzysta usługa w strukturze katalogowej.
Zgodnie definicją
FHS
(en.wiki, pl.wiki): katalog /srv
zawiera: Data for services provided by this system
toteż jako katalog w którym Apache/HTTPD będzie przechowywał dane został wybrany: /srv/http
i zostanie on utworzony z odpowiednimi atrybutami wraz ze stosownymi podkatalogami:/srv/http/cgi-bin
- z przeznaczeniem na lokalizację skryptów cgi (poprzednio /var/www/cgi-bin
),/srv/http/error
- z przeznaczeniem na lokalizację stron kodów błędów HTTP (poprzednio /var/www/error
),/srv/http/icons
- na ikony plików wyświetlanych w trybie Indexes
(poprzednio /var/www/icons
),/srv/http/vhosts
- z przeznaczeniem na virtualne domeny vhosts serwerwowane przez serwer (nowoutworzony).Wszystko to zostało opisane poniżej.
#top Postinstalacyjna konfiguracja¶
#top Keep oryginal start script¶
mv /etc/init.d/httpd /etc/init.d/httpd-rpm cp -av /etc/init.d/httpd-rpm /etc/init.d/httpd
#top Remove symlinks and move config files¶
rm -f /etc/httpd/{logs,modules,run} mv /etc/httpd/conf/httpd.conf /etc/httpd/httpd.conf mv /etc/httpd/conf/magic /etc/httpd/magic rm -rf /etc/httpd/conf mkdir -p /etc/httpd/vhosts mkdir -p /var/run/httpd
#top Update /etc/sysconfig/httpd file¶
sed 's,^\(#OPTIONS.*\),\1\nOPTIONS="-f /etc/httpd/httpd.conf",g' -i /etc/sysconfig/httpd sed 's,CONFFILE=,#CONFFILE=,g' -i /etc/init.d/httpd sed 's,\(LSB=1 \(killproc.*\)\)$,#\1\n \2,g' -i /etc/init.d/httpd echo 'CONFFILE=/etc/httpd/httpd.conf' >> /etc/sysconfig/httpd echo 'PIDFILE=/var/run/httpd/httpd.pid' >> /etc/sysconfig/httpd echo "LOCKFILE=/var/lock/subsys/httpd" >> /etc/sysconfig/httpd
#top Correct logrotate file¶
sed '1s,^,# logrotate httpd\n,g' -i /etc/logrotate.d/httpd sed 's,^\([ ]*\)\(delaycompress\)$,\1nodelaycompress\n\1#\2,g' -i /etc/logrotate.d/httpd
#top Set default setting in config file¶
sed 's,^ServerRoot.*$,ServerRoot "/usr/lib/httpd",g' -i /etc/httpd/httpd.conf sed 's,^PidFile.*$,PidFile /var/run/httpd/httpd.pid,g' -i /etc/httpd/httpd.conf sed 's,^Include.*$,Include /etc/httpd/conf.d/*.conf,g' -i /etc/httpd/httpd.conf sed "s,^ServerAdmin.*$,ServerAdmin root@$HOSTNAME,g" -i /etc/httpd/httpd.conf sed 's,^DocumentRoot.*$,DocumentRoot "/srv/http/vhosts",g' -i /etc/httpd/httpd.conf sed 's,/var/www/html,/srv/http/vhosts,g' -i /etc/httpd/httpd.conf sed 's,^.*MIMEMagicFile.*conf/magic.*$, MIMEMagicFile /etc/httpd/magic,g' -i /etc/httpd/httpd.conf sed 's,^ErrorLog.*$,ErrorLog /var/log/httpd/error.log,g' -i /etc/httpd/httpd.conf sed 's,^CustomLog.*$,#CustomLog /var/log/httpd/access.log combined,g' -i /etc/httpd/httpd.conf sed 's,^\(LogFormat.*agent\)$,\1\nLogFormat "%V %h %l %u %t \\"%r\\" %>s %b \\"%{Referer}i\\" \\"%{User-Agent}i\\"" vcombined,g' -i /etc/httpd/httpd.conf
sed 's,/var/www/icons,/srv/http/icons,g' -i /etc/httpd/httpd.conf sed 's,/var/www/cgi-bin,/srv/http/cgi-bin,g' -i /etc/httpd/httpd.conf sed 's,/var/www/error,/srv/http/error,g' -i /etc/httpd/httpd.conf # switch off global cgi-bin, enable it in vhost sed 's,^ScriptAlias,#ScriptAlias,g' -i /etc/httpd/httpd.conf
#top Create directory root structure¶
mkdir -p /srv/http/{icons,cgi-bin,error} rsync -rav /var/www/icons/ /srv/http/icons/ rsync -rav /var/www/cgi-bin/ /srv/http/cgi-bin/ rsync -rav /var/www/error/ /srv/http/error/
#top Remove custom error page¶
comment following lines in file
/etc/httpd/conf.d/welcome.conf
:#<LocationMatch "^/$> #Options -Indexes #ErrorDocument 403 /error/noindex.html #</LocationMatch>
sed 's,<LocationMatch,#<LocationMatch,g' -i /etc/httpd/conf.d/welcome.conf sed 's,Options,#Options,g' -i /etc/httpd/conf.d/welcome.conf sed 's,ErrorDocument,#ErrorDocument,g' -i /etc/httpd/conf.d/welcome.conf sed 's,</LocationMatch,#</LocationMatch,g' -i /etc/httpd/conf.d/welcome.conf
#top Enable virtual hosts¶
mkdir /etc/httpd/vhosts sed 's,^#NameVirtualHost \*:80,NameVirtualHost *:80\nNameVirtualHost *:443,g' -i /etc/httpd/httpd.conf echo '# Virtual hosts' >> /etc/httpd/httpd.conf echo 'Include /etc/httpd/vhosts/*.conf' >> /etc/httpd/httpd.conf
#top Comment out vhost in /etc/httpd/conf.d/ssl.conf¶
sed 's,^<VirtualHost,#<VirtualHost,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^ErrorLog,#ErrorLog,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^TransferLog,#TransferLog,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^LogLevel,#LogLevel,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^SSLEngine,#SSLEngine,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^SSLProtocol,#SSLProtocol,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^SSLCipherSuite,#SSLCipherSuite,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^SSLCertificateFile,#SSLCertificateFile,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^SSLCertificateKeyFile,#SSLCertificateKeyFile,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^<Files,#<Files,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^</Files>,#</Files>,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^<Directory,#<Directory,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^</Directory>,#</Directory>,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^ SSLOptions,# SSLOptions,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^SetEnvIf,#SetEnvIf,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^ nokeepalive,# nokeepalive,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^ downgrade,# downgrade,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^CustomLog,#CustomLog,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^ "%,# "%,g' -i /etc/httpd/conf.d/ssl.conf sed 's,^</VirtualHost,#</VirtualHost,g' -i /etc/httpd/conf.d/ssl.conf
#top Configure default virtual host¶
create first default virtual host:
cat >> /etc/httpd/vhosts/00-default.conf << EOF # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, in addition to the default. See also the VirtualHost command <VirtualHost *:80> ServerName localhost ServerAlias 127.0.0.1 ServerAdmin admin@$HOSTNAME ServerPath /srv/http/vhosts/default DocumentRoot /srv/http/vhosts/default/ ErrorLog /var/log/httpd/default-error.log CustomLog /var/log/httpd/default-access.log vcombined </VirtualHost> EOF
create needed DocumentRoot for default virtual host:
mkdir -p /srv/http/vhosts/default echo "vhosts / default ($HOSTNAME)" > /srv/http/vhosts/default/index.html echo "vhosts / default ($HOSTNAME)" > /srv/http/vhosts/default/default.html
#top Create second $HOSTNAME virtual host¶
cat >> /etc/httpd/vhosts/01-$HOSTNAME.conf << EOF # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, in addition to the default. See also the VirtualHost command <VirtualHost *:80> ServerName $HOSTNAME ServerAlias $HOSTNAME ServerAdmin admin@$HOSTNAME ServerPath /srv/http/vhosts/$HOSTNAME DocumentRoot /srv/http/vhosts/$HOSTNAME/ ErrorLog /var/log/httpd/${HOSTNAME//./_}-error.log CustomLog /var/log/httpd/${HOSTNAME//./_}-access.log combined </VirtualHost> EOF
create needed DocumentRoot for $HOSTNAME virtual host
mkdir -p /srv/http/vhosts/$HOSTNAME echo "vhosts / $HOSTNAME" > /srv/http/vhosts/$HOSTNAME/index.html echo "vhosts / $HOSTNAME" > /srv/http/vhosts/$HOSTNAME/$HOSTNAME.html
#top Create ssl $HOSTNAME virtual host¶
cat >> /etc/httpd/vhosts/01-$HOSTNAMEl.conf << EOF # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, in addition to the default. See also the VirtualHost command <VirtualHost *:443> ServerName $HOSTNAME ServerAlias $HOSTNAME ServerAdmin admin@$HOSTNAME ServerPath /srv/http/vhosts/$HOSTNAME DocumentRoot /srv/http/vhosts/$HOSTNAME/ ErrorLog /var/log/httpd/${HOSTNAME//./_}-ssl-error.log CustomLog /var/log/httpd/${HOSTNAME//./_}-ssl-access.log combined SSLEngine on SSLProtocol all -SSLv2 -SSLv3 #Available in httpd 2.2.24 and later #SSLCompression off SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:!RC4:RSA:+HIGH:+MEDIUM:+LOW SSLCertificateFile /etc/pki/tls/certs/$HOSTNAME.crt SSLCertificateKeyFile /etc/pki/tls/certs/$HOSTNAME.key SSLCACertificateFile /etc/pki/tls/certs/ca-bundle.crt <Files ~ "\.(cgi|shtml|phtml|php3?)$"> SSLOptions +StdEnvVars </Files> <Directory "/srv/http/cgi-bin"> SSLOptions +StdEnvVars </Directory> BrowserMatch ".*MSIE.*" nokeepalive ssl-unclean-shutdown downgrade-1.0 force-response-1.0 </VirtualHost> EOF
#top PHP¶
Useful addons for works
<?=$varialbe?>
: /etc/php.ini
short_open_tag = On
sed 's,^short_open_tag.*$,short_open_tag = On,g' -i /etc/php.ini
#top Start httpd server¶
/etc/init.d/httpd start
tail -f /var/log/httpd/error.log
#top Multiple instances (prefork + worker)¶
(app:prefork:81 + static:worker:82 + haproxy:dynamic/static:80)
#top Multiple instances (CentOS 5.*)¶
mv /etc/init.d/httpd /etc/init.d/httpd-off cp -av /etc/init.d/httpd-off /etc/init.d/httpd1 cp -av /etc/init.d/httpd-off /etc/init.d/httpd2 sed -e 's,/etc/sysconfig/httpd$,/etc/sysconfig/httpd1,g' -e 's,/etc/sysconfig/httpd ,/etc/sysconfig/httpd1 ,g' -i /etc/init.d/httpd1 sed -e 's,/etc/sysconfig/httpd$,/etc/sysconfig/httpd2,g' -e 's,/etc/sysconfig/httpd ,/etc/sysconfig/httpd2 ,g' -i /etc/init.d/httpd2 ### bad, causes kill parent process without childs ###sed 's/killproc -d 10 $httpd/kill -3 `ps -Ao pid,ppid | awk '\''BEGIN{ getline < "'\'\"\$pidfile\"\''"; parentpid=$0; }{ if($1==parentpid){print($1);} if($2==parentpid){print($1);} }'\''` #killproc -d 10 $httpd/g' -i /etc/init.d/httpd1 ###sed 's/killproc -d 10 $httpd/kill -3 `ps -Ao pid,ppid | awk '\''BEGIN{ getline < "'\'\"\$pidfile\"\''"; parentpid=$0; }{ if($1==parentpid){print($1);} if($2==parentpid){print($1);} }'\''` #killproc -d 10 $httpd/g' -i /etc/init.d/httpd2 sed 's/killproc -d 10 $httpd/$HTTPD $OPTIONS -k stop #killproc -d 10 $httpd/g' -i /etc/init.d/httpd1 sed 's/killproc -d 10 $httpd/$HTTPD $OPTIONS -k stop #killproc -d 10 $httpd/g' -i /etc/init.d/httpd2 sed 's/^.echo$/\t[ $RETVAL = 0 ] \&\& success; echo/g' -i /etc/init.d/httpd1 sed 's/^.echo$/\t[ $RETVAL = 0 ] \&\& success; echo/g' -i /etc/init.d/httpd2 sed 's/killproc $httpd -HUP/[ -s "$pidfile" ] \&\& kill -HUP `cat $pidfile` #killproc $httpd -HUP/g' -i /etc/init.d/httpd1 sed 's/killproc $httpd -HUP/[ -s "$pidfile" ] \&\& kill -HUP `cat $pidfile` #killproc $httpd -HUP/g' -i /etc/init.d/httpd2 sed 's/^ echo$/ [ $RETVAL = 0 ] \&\& success; echo/g' -i /etc/init.d/httpd1 sed 's/^ echo$/ [ $RETVAL = 0 ] \&\& success; echo/g' -i /etc/init.d/httpd2
/etc/init.d/httpd
stop() { echo -n $"Stopping $prog: " $HTTPD $OPTIONS -k stop #killproc -d 10 $httpd RETVAL=$? [ $RETVAL = 0 ] && success; echo [ $RETVAL = 0 ] && rm -f ${lockfile} ${pidfile} }
reload() { echo -n $"Reloading $prog: " if ! LANG=$HTTPD_LANG $httpd $OPTIONS -t >&/dev/null; then RETVAL=$? echo $"not reloading due to configuration syntax error" failure $"not reloading $httpd due to configuration syntax error" else [ -s "$pidfile" ] && kill -HUP `cat $pidfile` #killproc $httpd -HUP RETVAL=$? fi [ $RETVAL = 0 ] && success; echo }
mv /etc/sysconfig/httpd /etc/sysconfig/httpd-off cp -av /etc/sysconfig/httpd-off /etc/sysconfig/httpd1 cp -av /etc/sysconfig/httpd-off /etc/sysconfig/httpd2 sed -e 's,/etc/httpd/httpd.conf,/etc/httpd1/httpd.conf,g' -e 's,/var/run/httpd/httpd.pid,/var/run/httpd/httpd1.pid,g' -e 's,LOCKFILE=/var/lock/subsys/httpd$,LOCKFILE=/var/lock/subsys/httpd1,g' -i /etc/sysconfig/httpd1 sed -e 's,/etc/httpd/httpd.conf,/etc/httpd2/httpd.conf,g' -e 's,/var/run/httpd/httpd.pid,/var/run/httpd/httpd2.pid,g' -e 's,LOCKFILE=/var/lock/subsys/httpd$,LOCKFILE=/var/lock/subsys/httpd2,g' -i /etc/sysconfig/httpd2 echo "HTTPD=/usr/sbin/httpd" >> /etc/sysconfig/httpd1 echo "HTTPD=/usr/sbin/httpd.worker" >> /etc/sysconfig/httpd2
version 1: twoo separate directories:
/etc/httpd1
and /etc/httpd2
:#mv /etc/httpd /etc/httpd-common #mkdir -p /etc/httpd{1,2} #cp -av /etc/httpd-common/httpd.conf /etc/httpd1/httpd.conf #cp -av /etc/httpd-common/httpd.conf /etc/httpd2/httpd.conf #ln -s /etc/httpd-common/conf.d /etc/httpd1/conf.d #ln -s /etc/httpd-common/conf.d /etc/httpd2/conf.d #ln -s /etc/httpd-common/vhosts /etc/httpd1/vhosts #ln -s /etc/httpd-common/vhosts /etc/httpd2/vhosts # Starting httpd: [Fri Dec 21 11:24:56 2012] [crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe. You need to recompile PHP. ### --- rm -f /etc/httpd2/conf.d/php.conf #sed '1s/^/<IfModule prefork.c>\n/' -i /etc/httpd-common/conf.d/php.conf #sed '$s/$/\n<\/IfModule>/' -i /etc/httpd-common/conf.d/php.conf
#sed 's,/var/run/httpd/httpd.pid,/var/run/httpd/httpd1.pid,g' -i /etc/httpd1/httpd.conf #sed 's,/var/run/httpd/httpd.pid,/var/run/httpd/httpd2.pid,g' -i /etc/httpd2/httpd.conf #sed 's,^Listen 80$,Listen 81,g' -i /etc/httpd1/httpd.conf #sed 's,^Listen 80$,Listen 82,g' -i /etc/httpd2/httpd.conf #sed 's,Include /etc/httpd/conf.d/.*$,Include /etc/httpd1/conf.d/*.conf,g' -i /etc/httpd1/httpd.conf #sed 's,Include /etc/httpd/conf.d/.*$,Include /etc/httpd2/conf.d/*.conf,g' -i /etc/httpd2/httpd.conf #sed 's,Include /etc/httpd/vhosts/.*$,Include /etc/httpd1/vhosts/*.conf,g' -i /etc/httpd1/httpd.conf #sed 's,Include /etc/httpd/vhosts/.*$,Include /etc/httpd2/vhosts/*.conf,g' -i /etc/httpd2/httpd.conf #sed 's,/etc/httpd/magic,/etc/httpd-common/magic,g' -i /etc/httpd1/httpd.conf #sed 's,/etc/httpd/magic,/etc/httpd-common/magic,g' -i /etc/httpd2/httpd.conf #sed 's,^NameVirtualHost.*$,NameVirtualHost *:81,g' -i /etc/httpd1/httpd.conf #sed 's,^NameVirtualHost.*$,NameVirtualHost *:82,g' -i /etc/httpd2/httpd.conf #sed 's,^<VirtualHost.*$,<VirtualHost *:81 *:82>,g' -i /etc/httpd-common/vhosts/*.conf
version 2: one directory
/etc/httpd
and twoo separate options with directives <IfModule prefork.c>
and <IfModule worker.c>
:Use directives
<IfModule prefork.c>
and <IfModule worker.c>
rather than split into multiple directories:sed 's,/var/run/httpd/httpd.pid,<IfModule prefork.c>\nPidFile /var/run/httpd/httpd1.pid\n</IfModule>\n<IfModule worker.c>\nPidFile /var/run/httpd/httpd2.pid\n</IfModule>,g' -i /etc/httpd/httpd.conf sed 's,^Listen 80$,<IfModule prefork.c>\nListen 81\n</IfModule>\n<IfModule worker.c>\nListen 82\n</IfModule>,g' -i /etc/httpd/httpd.conf sed 's,^NameVirtualHost.*$,<IfModule prefork.c>\nNameVirtualHost *:81\n</IfModule>\n<IfModule worker.c>\nNameVirtualHost *:82\n</IfModule>,g' -i /etc/httpd/httpd.conf
After above changes config file
/etc/httpd/httpd.conf
will be looks like below:# # PidFile: The file in which the server should record its process # identification number when it starts. Note the PIDFILE variable in # /etc/sysconfig/httpd must be set appropriately if this location is # changed. # <IfModule prefork.c> PidFile /var/run/httpd/httpd1.pid </IfModule> <IfModule worker.c> PidFile /var/run/httpd/httpd2.pid </IfModule>
# # Listen: Allows you to bind Apache to specific IP addresses and/or # ports, in addition to the default. See also the <VirtualHost> # directive. # # Change this to Listen on specific IP addresses as shown below to # prevent Apache from glomming onto all bound IP addresses (0.0.0.0) # #Listen 12.34.56.78:80 <IfModule prefork.c> Listen 81 </IfModule> <IfModule worker.c> Listen 82 </IfModule>
# # Use name-based virtual hosting. # <IfModule prefork.c> NameVirtualHost *:81 </IfModule> <IfModule worker.c> NameVirtualHost *:82 </IfModule>
After above changes config file
/etc/httpd/conf.d/ssl.conf
will be looks like below:# # When we also provide SSL we have to listen to the # the HTTPS port in addition. # <IfModule prefork.c> Listen 441 </IfModule> <IfModule worker.c> Listen 442 </IfModule>
# [warn] pid file /var/run/httpd/httpd1.pid overwritten -- Unclean shutdown of previous Apache run? # [emerg] (28)No space left on device: Couldn't create accept lock (/usr/lib/httpd/logs/accept.lock.3277) (5) # need reboot ??? !!!
# cleaning rm -f /var/run/httpd/httpd*.pid /var/lock/subsys/httpd*
/etc/init.d/httpd1 start /etc/init.d/httpd2 start
/etc/init.d/httpd1 restart /etc/init.d/httpd2 restart
#Starting httpd: [Fri Dec 21 11:03:24 2012] [warn] _default_ VirtualHost overlap on port 82, the first has precedence
#Starting httpd: [Fri Dec 21 11:03:31 2012] [warn] _default_ VirtualHost overlap on port 81, the first has precedence
but it looks like working:
default vhost:
wget --header="Host: localhost" -O - http://cen05dev.xen.wbcd.pl:81/default.html wget --header="Host: localhost" -O - http://cen05dev.xen.wbcd.pl:82/default.html
cen05dev.xen.wbcd.pl vhost:
wget -O - http://cen05dev.xen.wbcd.pl:81/cen05dev.xen.wbcd.pl.html wget -O - http://cen05dev.xen.wbcd.pl:82/cen05dev.xen.wbcd.pl.html
#top Multiple instances (CentOS 6.*)¶
mv /etc/init.d/httpd /etc/init.d/httpd-off cp -av /etc/init.d/httpd-off /etc/init.d/httpd1 cp -av /etc/init.d/httpd-off /etc/init.d/httpd2 sed -e 's,/etc/sysconfig/httpd$,/etc/sysconfig/httpd1,g' -e 's,/etc/sysconfig/httpd ,/etc/sysconfig/httpd1 ,g' -i /etc/init.d/httpd1 sed -e 's,/etc/sysconfig/httpd$,/etc/sysconfig/httpd2,g' -e 's,/etc/sysconfig/httpd ,/etc/sysconfig/httpd2 ,g' -i /etc/init.d/httpd2
mv /etc/sysconfig/httpd /etc/sysconfig/httpd-off cp -av /etc/sysconfig/httpd-off /etc/sysconfig/httpd1 cp -av /etc/sysconfig/httpd-off /etc/sysconfig/httpd2 sed -e 's,/etc/httpd/httpd.conf,/etc/httpd1/httpd.conf,g' -e 's,/var/run/httpd/httpd.pid,/var/run/httpd/httpd1.pid,g' -e 's,LOCKFILE=/var/lock/subsys/httpd$,LOCKFILE=/var/lock/subsys/httpd1,g' -i /etc/sysconfig/httpd1 sed -e 's,/etc/httpd/httpd.conf,/etc/httpd2/httpd.conf,g' -e 's,/var/run/httpd/httpd.pid,/var/run/httpd/httpd2.pid,g' -e 's,LOCKFILE=/var/lock/subsys/httpd$,LOCKFILE=/var/lock/subsys/httpd2,g' -i /etc/sysconfig/httpd2 echo "HTTPD=/usr/sbin/httpd" >> /etc/sysconfig/httpd1 echo "HTTPD=/usr/sbin/httpd.worker" >> /etc/sysconfig/httpd2
mv /etc/httpd /etc/httpd-common mkdir -p /etc/httpd{1,2} cp -av /etc/httpd-common/httpd.conf /etc/httpd1/httpd.conf cp -av /etc/httpd-common/httpd.conf /etc/httpd2/httpd.conf ln -s /etc/httpd-common/conf.d /etc/httpd1/conf.d ln -s /etc/httpd-common/conf.d /etc/httpd2/conf.d ln -s /etc/httpd-common/vhosts /etc/httpd1/vhosts ln -s /etc/httpd-common/vhosts /etc/httpd2/vhosts
sed 's,/var/run/httpd/httpd.pid,/var/run/httpd/httpd1.pid,g' -i /etc/httpd1/httpd.conf sed 's,/var/run/httpd/httpd.pid,/var/run/httpd/httpd2.pid,g' -i /etc/httpd2/httpd.conf sed 's,^Listen 80$,Listen 81,g' -i /etc/httpd1/httpd.conf sed 's,^Listen 80$,Listen 82,g' -i /etc/httpd2/httpd.conf sed 's,Include /etc/httpd/conf.d/.*$,Include /etc/httpd1/conf.d/*.conf,g' -i /etc/httpd1/httpd.conf sed 's,Include /etc/httpd/conf.d/.*$,Include /etc/httpd2/conf.d/*.conf,g' -i /etc/httpd2/httpd.conf sed 's,Include /etc/httpd/vhosts/.*$,Include /etc/httpd1/vhosts/*.conf,g' -i /etc/httpd1/httpd.conf sed 's,Include /etc/httpd/vhosts/.*$,Include /etc/httpd2/vhosts/*.conf,g' -i /etc/httpd2/httpd.conf sed 's,/etc/httpd/magic,/etc/httpd-common/magic,g' -i /etc/httpd1/httpd.conf sed 's,/etc/httpd/magic,/etc/httpd-common/magic,g' -i /etc/httpd2/httpd.conf sed 's,^NameVirtualHost.*$,NameVirtualHost *:81,g' -i /etc/httpd1/httpd.conf sed 's,^NameVirtualHost.*$,NameVirtualHost *:82,g' -i /etc/httpd2/httpd.conf sed 's,^<VirtualHost.*$,<VirtualHost *:81 *:82>,g' -i /etc/httpd-common/vhosts/*.conf
#top Start httpd server (multiple instances)¶
/etc/init.d/httpd1 start /etc/init.d/httpd2 start
/etc/init.d/httpd1 restart /etc/init.d/httpd2 restart
#Starting httpd: [Fri Dec 21 14:11:24 2012] [warn] _default_ VirtualHost overlap on port 82, the first has precedence
#Starting httpd: [Fri Dec 21 14:11:49 2012] [warn] _default_ VirtualHost overlap on port 81, the first has precedence
but it looks like working:
default vhost:
wget --header="Host: localhost" -O - http://cen05dev.xen.wbcd.pl:81/default.html wget --header="Host: localhost" -O - http://cen05dev.xen.wbcd.pl:82/default.html
cen05dev.xen.wbcd.pl vhost:
wget -O - http://cen06dev.xen.wbcd.pl:81/cen05dev.xen.wbcd.pl.html wget -O - http://cen06dev.xen.wbcd.pl:82/cen05dev.xen.wbcd.pl.html
default vhost:
wget --header="Host: localhost" -O - http://cen06dev.xen.wbcd.pl:81/default.html wget --header="Host: localhost" -O - http://cen06dev.xen.wbcd.pl:82/default.html
cen06dev.xen.wbcd.pl vhost:
wget -O - http://cen06dev.xen.wbcd.pl:81/cen06dev.xen.wbcd.pl.html wget -O - http://cen06dev.xen.wbcd.pl:82/cen06dev.xen.wbcd.pl.html
Zmodyfikowany ostatnio: 2016/03/11 18:45:04 (9 lat temu),
textsize: 21,6 kB,
htmlsize: 44,7 kB
Zapraszam do komentowania, zgłaszania sugestii, propozycji, własnych przykładów, ...
Dodaj komentarzKomentarze użytkowników