우선, 이곳에 질문을 드리는 것이 잘못된 부분이더라도 양해해 주시기 바랍니다.
DirectAdmin 백업을 Apache에 설치하기 위해 Bash 스크립트를 만들었습니다. 단계는 작동하지만 실제 웹사이트를 열면 결국 500 오류가 발생합니다.
단계:
1. backup.tar.gz 압축 풀기
2. 필요하지 않은 파일 삭제
3. 웹 사이트 이름으로 데이터베이스 세부 정보 요청
4. admin.conf 파일로 전환
5. 데이터베이스 및 사용자 생성 6. 생성 및 7
로 전환 및 8. 생성 Windows 호스트 파일의 항목/etc/apache2/sites-available/website.conf
a2ensite
service apache2 reload
모든 단계를 추적해 보니 모든 것이 잘 작동하는 것 같지만 URL을 입력하면 500 오류가 발생합니다. 이 모든 작업은 스크립트 없이 수행되며 모든 것이 잘 작동합니다.
오류가 어디서 발생하는지 말해 줄 수 있는 사람이 있나요? bash 스크립트를 사용하여 이러한 모든 단계를 수행할 때 차이점이 있습니까?
편집: 이것은 사용된 전체 스크립트입니다.
#!/bin/bash
clear
tar -zxvf backup.tar.gz
sudo cp -R ./domains/*/public_html/* ./
sudo cp ./backup/*.sql ./
rm -rf ./backup ./domains
rm backup.tar.gz
sudo chmod 775 ./config.php
echo "ROOT_PWD?"
read -s root_pwd
echo "WEBSITENAME?"
read website
echo "DB_USERNAME?"
read usrname
echo "DB_PASSWORD?"
read db_pwd
echo "DB_DATABASE?"
read db
cat > ./config.php <<EOL
<?php
// HTTP
define('HTTP_SERVER', 'http://www.$website.nl/admin/');
define('HTTP_CATALOG', 'http://www.$website.nl/');
// HTTPS
define('HTTPS_SERVER', 'http://www.$website.nl/admin/');
define('HTTPS_CATALOG', 'http://www.$website.nl/');
// DIR
define('DIR_APPLICATION', $_SERVER['DOCUMENT_ROOT'].'/admin/');
define('DIR_SYSTEM', $_SERVER['DOCUMENT_ROOT'].'/system/');
define('DIR_IMAGE', $_SERVER['DOCUMENT_ROOT'].'/image/');
define('DIR_LANGUAGE', $_SERVER['DOCUMENT_ROOT'].'/admin/language/');
define('DIR_TEMPLATE', $_SERVER['DOCUMENT_ROOT'].'/admin/view/template/');
define('DIR_CONFIG', $_SERVER['DOCUMENT_ROOT'].'/system/config/');
define('DIR_CACHE', $_SERVER['DOCUMENT_ROOT'].'/system/storage/cache/');
define('DIR_DOWNLOAD', $_SERVER['DOCUMENT_ROOT'].'/system/storage/download/');
define('DIR_LOGS', $_SERVER['DOCUMENT_ROOT'].'/system/storage/logs/');
define('DIR_MODIFICATION', $_SERVER['DOCUMENT_ROOT'].'/system/storage/modification/');
define('DIR_UPLOAD', $_SERVER['DOCUMENT_ROOT'].'/system/storage/upload/');
define('DIR_CATALOG', $_SERVER['DOCUMENT_ROOT'].'/catalog/');
// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', '$usrname');
define('DB_PASSWORD', '$db_pwd');
define('DB_DATABASE', '$db');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
EOL
chmod 444 ./config.php
chmod 755 ./admin/config.php
cat > ./admin/config.php <<EOL
<?php
// HTTP
define('HTTP_SERVER', 'http://www.$website.nl/admin/');
define('HTTP_CATALOG', 'http://www.$website.nl/');
// HTTPS
define('HTTPS_SERVER', 'http://www.$website.nl/admin/');
define('HTTPS_CATALOG', 'http://www.$website.nl/');
// DIR
define('DIR_APPLICATION', $_SERVER['DOCUMENT_ROOT'].'/admin/');
define('DIR_SYSTEM', $_SERVER['DOCUMENT_ROOT'].'/system/');
define('DIR_IMAGE', $_SERVER['DOCUMENT_ROOT'].'/image/');
define('DIR_LANGUAGE', $_SERVER['DOCUMENT_ROOT'].'/admin/language/');
define('DIR_TEMPLATE', $_SERVER['DOCUMENT_ROOT'].'/admin/view/template/');
define('DIR_CONFIG', $_SERVER['DOCUMENT_ROOT'].'/system/config/');
define('DIR_CACHE', $_SERVER['DOCUMENT_ROOT'].'/system/storage/cache/');
define('DIR_DOWNLOAD', $_SERVER['DOCUMENT_ROOT'].'/system/storage/download/');
define('DIR_LOGS', $_SERVER['DOCUMENT_ROOT'].'/system/storage/logs/');
define('DIR_MODIFICATION', $_SERVER['DOCUMENT_ROOT'].'/system/storage/modification/');
define('DIR_UPLOAD', $_SERVER['DOCUMENT_ROOT'].'/system/storage/upload/');
define('DIR_CATALOG', $_SERVER['DOCUMENT_ROOT'].'/catalog/');
// DB
define('DB_DRIVER', 'mysqli');
define('DB_HOSTNAME', 'localhost');
define('DB_USERNAME', '$usrname');
define('DB_PASSWORD', '$db_pwd');
define('DB_DATABASE', '$db');
define('DB_PORT', '3306');
define('DB_PREFIX', 'oc_');
EOL
chmod 444 ./admin/config.php
mysql -u root -p$root_pwd -e "CREATE DATABASE $db"
mysql -u root -p$root_pwd -e "CREATE USER '$usrname'@'localhost' IDENTIFIED BY '$db_pwd';"
mysql -u root -p$root_pwd -e "GRANT ALL PRIVILEGES ON $db . * TO '$usrname'@'localhost';"
mysql -u $usrname -p$db_pwd $db < *.sql
touch /etc/apache2/sites-available/$website'.conf'
cat > /etc/apache2/sites-available/$website'.conf' <<EOL
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request's Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName $website.nl
ServerAlias www.$website.nl
ServerAdmin webmaster@localhost
DocumentRoot /var/www/$website/
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
EOL
a2ensite $website'.conf'
service apache2 reload
DirectAdmin을 통해 www.example.com 웹 사이트에서 백업하고 해당 웹 사이트를 스크립트에서 사용하면 모든 것이 예상대로 작동하지만 브라우저에 URL을 입력하면 500 오류가 발생합니다.
Apache 로그가 비어 있습니다.
답변1
아, 을(를) 사용해야 합니다 ip_conntrack
. 다음 단계를 따르세요.
modprobe ip_conntrack
sysctl
with의 변수 목록을 가져옵니다sysctl -a |grep -i conn
.
출력은 ":net.netfilter.nf_conntrack_acct = 0 net.netfilter.nf_conntrack_buckets = 65536 net.netfilter.nf_conntrack_checksum = 1 net.netfilter.nf_conntrack_count = 116 net.netfilter.nf_conntrack_events = 1 net.netfilter.nf_conntrack_expect_max = 1024 net.netfilter.nf_conntrack_generic_timeout = 600 net.netfilter.nf_conntrack_helper = 0 net.netfilter.nf_conntrack_icmp_timeout = 30 net.netfilter.nf_conntrack_log_invalid = 0 net.netfilter.nf_conntrack_max = 262144 net.netfilter.nf_conntrack_tcp_be_liberal = 0 net.netfilter.nf_conntrack_tcp_loose = 1 net.netfilter.nf_conntrack_tcp_max_retrans = 3 net.netfilter.nf_conntrack_tcp_timeout_close = 10 net.netfilter.nf_conntrack_tcp_timeout_close_wait = 60 net.netfilter.nf_conntrack_tcp_timeout_established = 432000 net.netfilter.nf_conntrack_tcp_timeout_fin_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_last_ack = 30 net.netfilter.nf_conntrack_tcp_timeout_max_retrans = 300 net.netfilter.nf_conntrack_tcp_timeout_syn_recv = 60 net.netfilter.nf_conntrack_tcp_timeout_syn_sent = 120 net.netfilter.nf_conntrack_tcp_timeout_time_wait = 120 net.netfilter.nf_conntrack_tcp_timeout_unacknowledged = 300 net.netfilter.nf_conntrack_timestamp = 0 net.netfilter.nf_conntrack_udp_timeout = 30 net.netfilter.nf_conntrack_udp_timeout_stream = 180 net.nf_conntrack_max = 262144
변수를 변경합니다
net.ipv4.netfilter.ip_conntrack_max
.- 파일에 저장됩니다.