Aussetzer beim Dump hochladen. Apache22 MariaDB55 und phpMyAdmin4.0.1

Talian

better more than a little
Hallo,

ich habe da ein Problem wo ich nicht hinter steige wieso phpMyAdmin Aussetzer hinlegt, indem es folgendes macht. Zum Beispiel wenn ich ein Dump hoch laden will, klappt dies erst nicht, und erst wenn ich den Apachen restarte funktioniert das mit dem Dump. Ich lasse den Apachen auf Port 8080 laufen damit sich Ngnix und der Apache nicht in die Quere kommen. Die Konstellation habe ich so gewählt da Nginx mit PHP-FPM leicht Buggy ist, denn wenn ich phpMyAdmin über Nginx laufen lasse funktioniert das mal gar nicht. Daher Apache auf Port 8080 und Nginx auf Port 80 als Standalone Webserver. Vielleicht weis einer von euch wo das Problem liegt? In den andren Logs steht leider nicht viel.

tail -f httpd-access.log

Code:
xxx.xxx.xxx.xxx - - [21/May/2013:08:23:57 +0200] "GET /phpmyadmin/js/get_scripts.js.php?scripts[]=jquery/jquery-1.8.3.js&scripts[]=ajax.js&scripts[]=keyhandler.js&scripts[]=jquery/jquery-ui-1.9.2.custom.js&scripts[]=jquery/jquery.sprintf.js&scripts[]=jquery/jquery.cookie.js&scripts[]=jquery/jquery.mousewheel.js&scripts[]=jquery/jquery.event.drag-2.2.js&scripts[]=jquery/jquery-ui-timepicker-addon.js&scripts[]=jquery/jquery.ba-hashchange-1.3.js&scripts[]=jquery/jquery.debounce-1.0.5.js&scripts[]=jquery/jquery.menuResizer-1.0.js&scripts[]=rte.js&scripts[]=functions.js&scripts[]=navigation.js&scripts[]=indexes.js&scripts[]=common.js&scripts[]=import.js&scripts[]=codemirror/lib/codemirror.js&scripts[]=codemirror/mode/mysql/mysql.js HTTP/1.1" 200 580105 "http://xxx.xxx.xxx.xxx:8080/phpmyadmin/import.php" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:03 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.24 (FreeBSD) PHP/5.4.15 mod_ssl/2.2.24 OpenSSL/0.9.8y DAV/2 (internal dummy connection)"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:03 +0200] "GET /phpmyadmin/db_structure.php?server=1&db=test&token=fd58405ef23bf81b15cd0b461006ba64&ajax_request=true&ajax_page_request=true&menuHashes=947e74b4-a963a0f6-3cb33dce&_nocache=1369117440548279513 HTTP/1.1" 200 99547 "http://xxx.xxx.xxx.xxx:8080/phpmyadmin/index.php?token=fd58405ef23bf81b15cd0b461006ba64" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:04 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.24 (FreeBSD) PHP/5.4.15 mod_ssl/2.2.24 OpenSSL/0.9.8y DAV/2 (internal dummy connection)"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:04 +0200] "GET /phpmyadmin/themes/pmahomme/img/arrow_ltr.png HTTP/1.1" 200 139 "http://xxx.xxx.xxx.xxx:8080/phpmyadmin/index.php?token=fd58405ef23bf81b15cd0b461006ba64" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:07 +0200] "POST /phpmyadmin/db_structure.php HTTP/1.1" 200 8362 "http://xxx.xxx.xxx.xxx:8080/phpmyadmin/index.php?token=fd58405ef23bf81b15cd0b461006ba64" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:09 +0200] "POST /phpmyadmin/db_structure.php HTTP/1.1" 200 3013 "http://xxx.xxx.xxx.xxx:8080/phpmyadmin/index.php?token=fd58405ef23bf81b15cd0b461006ba64" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:09 +0200] "POST /phpmyadmin/navigation.php?ajax_request=1&token=fd58405ef23bf81b15cd0b461006ba64 HTTP/1.1" 200 4460 "http://xxx.xxx.xxx.xxx:8080/phpmyadmin/index.php?token=fd58405ef23bf81b15cd0b461006ba64" "Mozilla/5.0 (Windows NT 6.2; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:10 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.24 (FreeBSD) PHP/5.4.15 mod_ssl/2.2.24 OpenSSL/0.9.8y DAV/2 (internal dummy connection)"
xxx.xxx.xxx.xxx - - [21/May/2013:08:24:15 +0200] "OPTIONS * HTTP/1.0" 200 - "-" "Apache/2.2.24 (FreeBSD) PHP/5.4.15 mod_ssl/2.2.24 OpenSSL/0.9.8y DAV/2 (internal dummy connection)"

tail -f httpd-error.log

Code:
[Mon May 20 18:07:46 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Mon May 20 18:07:46 2013] [notice] Digest: generating secret for digest authentication ...
[Mon May 20 18:07:46 2013] [notice] Digest: done
[Mon May 20 18:07:47 2013] [notice] Apache/2.2.24 (FreeBSD) PHP/5.4.15 mod_ssl/2.2.24 OpenSSL/0.9.8y DAV/2 configured -- resuming normal operations
[Mon May 20 19:26:37 2013] [error] [client xxx.xxx.xxx.xxx] File does not exist: /usr/local/www/apache22/data/manager
[Tue May 21 08:23:29 2013] [notice] caught SIGTERM, shutting down
[Tue May 21 08:23:32 2013] [warn] Init: Session Cache is not configured [hint: SSLSessionCache]
[Tue May 21 08:23:32 2013] [notice] Digest: generating secret for digest authentication ...
[Tue May 21 08:23:32 2013] [notice] Digest: done
[Tue May 21 08:23:33 2013] [notice] Apache/2.2.24 (FreeBSD) PHP/5.4.15 mod_ssl/2.2.24 OpenSSL/0.9.8y DAV/2 configured -- resuming normal operations
 
Ich glaube ich habe es hin bekommen, ich habe jetzt ein paar Extionsions pecl-APC und pecl-Memcache nachgeladen und in die httpd.conf eingebunden. Es scheint keine Aussetzer mehr meiner Meinung nach zu geben. Hoffen und beten das es daran lag! ^^

MfG

Tali
 
Mist, der macht immer noch Aussetzer, und es klappt nur wenn ich den Apachen einmal neu gestartet habe.
 
Mist, der macht immer noch Aussetzer, und es klappt nur wenn ich den Apachen einmal neu gestartet habe.

Evtl. hängt es mit Arbeitsspeicherbegrenzung im PHP zusammen? Wenn du PHP als Modul laufen lässt, kann es sein, dass durch die ranzige Programmierung mit der Zeit einfach ungenutzter Speicher angesammelt wird. Ein Neustart des Apachen würde diesen wieder freigeben.

Versuche einfach mal, memory_limit in der php.ini raufzusetzen. Dazu solltest du das Fehlerprotokoll von PHP aktivieren (log_errors=On), damit du besser debuggen kannst. Irgendwelche Module im PHP zu aktivieren, bringt in deinem Fall nicht viel.

Rob
 
Okay danke ich habe mal error_reporting = E_ALL | E_STRICT und error_log aktiviert, und Memory_Limit auf 512 erhöht weil es schon auf 256 stand.

Mal sehen was bei rum kommt.

Fehlermeldung steht eine drin:

Code:
[21-May-2013 12:24:20 Europe/Berlin] PHP Deprecated:  Comments starting with '#' are deprecated in Unknown on line 1 in Unknown on line 0

denke aber nicht das es damit zu tun hat.

MfG

Tali
 
Im log bringt er keinen einzigen Fehler aber setzt trotzdem aus, erst beim Restart des Apachen22, bekomme ich wieder Dumps hoch geladen. Es ist um aus der Haut zu fahren!!

Hier mal das System:

ProLiant Dedicadet Server: HP DL165 G7
CPU: AMD Opteron™ 6212 2 x 8 Kerne 2,6 Ghz
Arbeitsspeicher: 16 GB DDR3-1333 RDIMM

Festplatten: 2 x 1000 Raid0 WD Hardware-RAID 1

Betriebssystem: FreeBSD 9.1
Webserver: Nginx, Apache22
PHP5: PHP-FPM, PHP5
Datenbank: MariaDB 5.5
FTP Server: ProFTPd

So gehe ich vor wenn ich mein System installiere:

Code:
tzsetup

echo '59  2  *  *  *  root  /usr/sbin/ntpdate -b -s -4 ptbtime2.ptb.de' >> /etc/crontab

cat > /etc/rc.conf << "EOF"
hostname="xxxxxx"
ifconfig_igb0="DHCP"
sshd_enable="YES"
# Set dumpdev to "AUTO" to enable crash dumps, "NO" to disable
dumpdev="NO"

fsck_y_enable="YES"                             # "NO"
sshd_enable="YES"                               # "NO"
ntpdate_enable="YES"                            # "NO"
ntpdate_flags="-b -s -4"                        # "-b"
ntpdate_hosts="ptbtime2.ptb.de"                 # ""
keymap="german.iso"                             # "NO"
font8x16="iso-8x16.fnt"
font8x14="iso-8x14.fnt"
font8x8="iso-8x8.fnt"
sendmail_submit_enable="NO"                     # "YES"
sendmail_outbound_enable="NO"                   # "YES"
sendmail_msp_queue_enable="NO"                  # "YES"
cron_flags="$cron_flags -J 15"                  # ""
tcp_drop_synfin="YES"                           # "NO"
icmp_drop_redirect="YES"                        # "NO"
syslogd_flags="-ss"                             # "-s"
nginx_enable="YES"
php_fpm_enable="YES"
mysql_enable="YES
proftpd_enable="YES"
apache22_enable="YES"
"EOF"

vi /etc/make.conf

cat >> /etc/make.conf << "EOF"
THREAD=8
INSTALL_NODEBUG=YES
INSTALL_NODEBUG=YES
MASTER_SITE_BACKUP?= http://ftp4.de.freebsd.org/pub/FreeBSD/ports/distfiles/${DIST_SUBDIR}/
MASTER_SITE_OVERRIDE?= ${MASTER_SITE_BACKUP}
MAKEOPTS=-j10
BUILD_OPTIMIZED=YES
OPTIMIZED_CFLAGS=YES
KERNCONF?=GENERIC
CPUTYPE?=opteron
CFLAGS= -O2 -fno-strict-aliasing -pipe
CXXFLAGS+= -fconserve-space
COPTFLAGS= -O -pipe
PRINTERDEVICE=ascii
SUP_UPDATE=
SUP=/usr/bin/csup
SUPFLAGS= -g -L 2
SUPHOST=cvsup.de.FreeBSD.org
SUPFILE=/usr/share/examples/cvsup/standard-supfile
JAVA_VERSION=1.7
JAVA_VENDOR=openjdk
PERL_VERSION=5.16.2
WITH_PKGNG=YES
# added by use.perl 2013-05-12 13:42:38
PERL_VERSION=5.16.2
"EOF"

vi /etc/ipfw.rules

cat >> /etc/ipfw.rules << "EOF"
IPF="ipfw -q add"
ipfw -q -f flush

#loopback
$IPF allow all from any to any via lo0
$IPF deny all from any to 127.0.0.0/8
$IPF deny all from 127.0.0.0/8 to any
$IPF deny tcp from any to any frag

# statefull
$IPF check-state
$IPF allow tcp from any to any established
$IPF allow all from any to any out keep-state
$IPF allow icmp from any to any

# Erlaube FTP
$IPF allow tcp from any to any 21 in setup
$IPF allow tcp from any 20 to any 1024-65535 in setup

# passive mode FTP erlauben - nicht empfohlen - wird ins log geschrieben
# um Missbrauch nachvollziehen zu koennen
$IPF allow log tcp from any 1024-65535 to any 1024-65535 in setup

# open port ssh (22), mail (25)
$IPF allow tcp from any to any 22 in
$IPF allow tcp from any to any 22 out
$IPF allow udp from any to any 53 in
$IPF allow tcp from any to any 53 in
$IPF allow udp from any to any 53 out
$IPF allow tcp from any to any 53 out

# http (80), dns (53)
$IPF allow udp from any to any 80 in
$IPF allow tcp from any to any 80 in
$IPF allow udp from any to any 443 in
$IPF allow tcp from any to any 443 in
$IPF allow udp from any to any 445 in
$IPF allow tcp from any to any 445 in
$IPF allow udp from any to any 8080 in
$IPF allow tcp from any to any 8080 in

# Mail  110 143 25 465 585 993 995
$IPF allow tcp from any to any 25 in
$IPF allow tcp from any to any 25 out
$IPF allow tcp from any to any 110 in
$IPF allow tcp from any to any 110 out
$IPF allow tcp from any to any 143 in
$IPF allow tcp from any to any 143 out
$IPF allow tcp from any to any 465 in
$IPF allow tcp from any to any 465 out
$IPF allow tcp from any to any 585 in
$IPF allow tcp from any to any 585 out
$IPF allow tcp from any to any 993 in
$IPF allow tcp from any to any 993 out
$IPF allow tcp from any to any 995 in
$IPF allow tcp from any to any 995 out

#Default deny
$IPF deny all from any to any
"EOF"

echo 'firewall_enable="YES"' >> /etc/rc.conf
echo 'firewall_script="/etc/ipfw.rules"' >> /etc/rc.conf

vi /etc/profile

cat >> /etc/profile << "EOF"
LANG=de_DE.ISO8859-1; export LANG
MM_CHARSET=ISO-8859-1; export MM_CHARSET
"EOF"

vi /etc/csh.login

cat >> /etc/csh.login << "EOF"
setenv LANG de_DE.ISO8859-1
setenv MM_CHARSET ISO-8859-1
"EOF"

vi /etc/login.conf

default:\
        :passwd_format=blf:\
        :minpasswordlen=8:\
        :mixpasswordcase=true:\
        :idletime=30:\
        :umask=022:

cat >> /etc/login.conf << "EOF"
	german|German Users Accounts:\
	:charset=ISO-8859-1:\
	:lang=de_DE.ISO8859-1:\
	:tc=default:
"EOF"
		
vi /etc/csh.cshrc

cat >> /etc/csh.cshrc << "EOF"
setenv LSCOLORS "Dxfxcxdxbxegedabagacad"
alias l         ls -lha
alias ls        ls -GF
"EOF"

cap_mkdb /etc/login.conf
pw usermod root -L unicode

passwd root
adduser

mkdir /home/master/.ssh
vi /home/master/.ssh/authorized_keys

vi /etc/ssh/sshd_config

/etc/rc.d/sshd restart

portsnap fetch && portsnap extract && portsnap update
cd /usr/ports/security/sshguard-ipfw && make config-recursive install
cd /usr/src && fetch http://ftp4.de.freebsd.org/pub/FreeBSD/releases/amd64/9.1-RELEASE/src.txz && tar -C / -xvzf src.txz && rm src.txz 
cd /usr/ports/devel/subversion && make config-recursive install
cd /usr/ports/ports-mgmt/portupgrade && make config-recursive install 
cd /usr/ports/ports-mgmt/portmaster && make config-recursive install && cd /usr/ports/ports-mgmt/portaudit && make config-recursive install
cd /usr/ports/ftp/wget && make config-recursive install && rehash
cd /usr/ports/archivers/gzip && make config-recursive install && rehash && cd && cd /usr/ports/archivers/zip && make config-recursive install&& cd
cd /usr/ports/editors/vim && make config-recursive install

vi .vimrc

cat >> /root/.vimrc << "EOF"
set background=dark
syntax on
set hlsearch
set nocompatible
set autoindent
set smartindent
set tabstop=2
set shiftwidth=2
set showmatch
set ruler
set incsearch
"EOF"

cp .vimrc /home/master

mkdir -p /opt/conf && cd /opt/conf && wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz && gunzip ./GeoIP.dat.gz && cd

cd /usr/ports/lang/php5 && make config-recursive install && rehash
cd /usr/ports/lang/php5-extensions/ && make config-recursive install && rehash
cd /usr/ports/www/nginx && make config-recursive install && rehash
cd /usr/ports/www/apache22 && make config-recursive install && rehash
cd /usr/ports/databases/mariadb55-server && make config-recursive install && rehash
cd /usr/ports/databases/phpmyadmin && make config-recursive install && rehash

cp /usr/local/share/mysql/my-innodb-heavy-4G.cnf /var/db/mysql/my.cnf

service mysql-server start
mysqladmin -u root password xxxxxxxx

vi update.sh

cat >> /root/update.sh << "EOF"
#!/bin/sh
LOG_FILE="/var/log/freebsd-update.log"
echo "Starting updates: `date`" | tee -a ${LOG_FILE}
echo "***"
echo "*** Checking for FreeBSD patches..."
echo "***"
/usr/sbin/freebsd-update fetch | tee -a ${LOG_FILE}
/usr/sbin/freebsd-update install | tee -a ${LOG_FILE}
echo "***"
echo "*** Updating ports tree..."
echo "***"
/usr/sbin/portsnap fetch update | tee -a ${LOG_FILE}
echo "***"
echo "*** Updating ports extract..."
echo "***"
/usr/sbin/portsnap fetch extract | tee -a ${LOG_FILE}
echo "***"
echo "*** Looking for ports to update..."
echo "***"
/usr/local/sbin/portmaster -a --no-confirm | tee -a ${LOG_FILE}
echo "***"
echo "*** Checking installed ports for known security problems..."
echo "***"
/usr/local/sbin/portaudit -Fva | tee -a ${LOG_FILE}
echo "Finished updates: `date`" | tee -a ${LOG_FILE}
"EOF"

chmod +x update.sh

./update.sh

ipfw im kernel kompilieren:

cd /usr/obj
chflags -R noschg *
rm -rf *
cd 

grep IPFIREWALL /usr/src/sys/amd64/conf

cd /usr/src/sys/amd64/conf

cp GENERIC IPFWKERNEL

vim IPFWKERNEL

ihr fügt nun folgendes ein

machine   amd64
cpu       HAMMER
ident     GENERIC

options IPFIREWALL # required for IPFW
options IPFIREWALL_VERBOSE # optional; logging
options IPFIREWALL_VERBOSE_LIMIT=10 # optional; don't get too many log entries
options IPDIVERT # needed for natd

cd /usr/src

make buildkernel KERNCONF=IPFWKERNEL && make installkernel KERNCONF=IPFWKERNEL

reboot

Vielleicht mache ich was falsch bei der Installation? Aber jetzt alle confs hier zu posten würde den Rahmen sprengen.

MfG

Tali
 
Wie groß ist denn der Dump?

Rob

Also der Dump ist 32MB groß aber ich habe mehrere. Wir wollen am Monatsende auf diesen Server umziehen. Und da ich einige Leute habe die an die eine oder andere Datenbank müdssen will ich gewährleisten das phpMyAdmin richtig funktioniert.

MfG

Talian
 
Hoi,
bei so "großen" Dumps sollte man um GUI Tools generell einen Bogen machen. Lad den Dump direkt über die Shell einfach in die SQL DB und gut ist es. Vermutlich haben die Clients eh viel zu wenig Upstream Bandbreite und die Server Kiste eine zu geringe Upload Limitierung / Runtime Beschränkung.

Wenn Du das langfristig lösen willst solltest Du folgendes prüfen:
- php >= 5.3.25 nutzen
- Webserver & Datenbankserver binden auf feste listener IP/Ports
- DNS Konfig prüfen fwd / reverse
- upload memory, upload tmp dir, upload max filesize, post max size, max execution time ... in php prüfen und ggf. anpassen
- max php memory limits > 512 MB / User Account
- SQL DB vernünftig konfigurieren, damit die ned ständig auf das Backend mit I/O warten tuts (etc/my.cnf)
- phpMyAdmin richtig einrichten
- tmp folder korrekt setzen
- php.ini korrekt anpassen je Bedarf
- php session config korrekt setzen (pfad, hash methode usw.)
- date/timezone richtig einstellen
- alle Fehler in php scripten auffinden und beseitigen
usw.

Wenn Du das alles durch hast prüf mal die Server Load und die Prozesse ob irgendwas dort noch aus der Reihe "tanzt" oder ob das einen gesunden Eindruck macht. Insbesondere die SQL DB Last und der Client Upload Durchsatz sind hier noch so ein Punkt den man genau anschauen sollte.

Gruß Bummibär
 
Zuletzt bearbeitet:
Hallo Bummibaer,

ich habe ja nun schon viel Erfahrung mit Debian Linux und auch schon mehrere Server diesbezüglich eingerichtet. Demzufolge habe ich mal die Einstellungen mit den Debian Server verglichen. Und so arge Unterschiede gibt es halt nicht bis auf die Betriebsplattform.

Danke für die Tipps ich werde das genauer beobachten. Denn die Dumps müssen eigentlich nur einmal eingespielt werden und werden dann nur noch über die SQL Befehlsfenster erweitert. Ich melde mich wenn ich diesen "Schlafmodus" seitens PHP5 oder Apachen gefunden habe.

MfG

Proteus
 
Hi,
importier die SQL Daten doch einfach mal übär die Shell direkt vom Dump aus local und schau mal wie lang das dauert und ob es hier ebenfalls zu solchen zeitlichen Problemen kommt. Damit kannst Du den SQL Server als Ursache festnageln oder ausschließen.

Wenn der SQL Server unschuldig ist such mal weiter in Richtung PHP, PHP-SQL Anbindung, etc.

Gruß Bummibär
 
Hoi,
bei so "großen" Dumps sollte man um GUI Tools generell einen Bogen machen. Lad den Dump direkt über die Shell einfach in die SQL DB und gut ist es. Vermutlich haben die Clients eh viel zu wenig Upstream Bandbreite und die Server Kiste eine zu geringe Upload Limitierung / Runtime Beschränkung.

Das ist ein echter Dedicated Server da wird nichts limitiert, und wenn ich das merken würde wäre ich weg von Alfahosting, es wird sogar gewährleistet 1 GB/s in beide Richtungen. Ich denke wenn es mit Plesk und Debian funktioniert muss es auch mit FreeBSD Nginx PHP5, PHP-FPM, MariaDB und phpMyAdmin funktionieren.

MfG

Tali
 
Also ich denke ich habe es hin bekommen.

Ich habe in der php.ini

memory_limit = 128M
post_max_size = 128M
upload_max_filesize = 128M

einheitlich angepasst und ich habe keine Aussetzer mehr, und der Upload von Dumps gelingt auf Anhieb.

MfG

Talian
 
Zurück
Oben