{"id":3030,"date":"2011-09-15T19:03:11","date_gmt":"2011-09-15T17:03:11","guid":{"rendered":"https:\/\/nodch.de\/?p=3030"},"modified":"2011-09-22T17:17:28","modified_gmt":"2011-09-22T15:17:28","slug":"howto-installation-von-mysql-und-php-auf-ubuntu-server","status":"publish","type":"post","link":"https:\/\/nodch.de\/?p=3030","title":{"rendered":"HowTo: Installation von MySQL und PHP auf Ubuntu Server"},"content":{"rendered":"<p>In einer kleinen HowTo-Reihe zeigen wir euch, wie man eine WordPress Webseite mit Nginx auf Ubuntu Server beschleunigen kann. Die Installation von MySQL und PHP ist Teil 2 der Reihe.\u00a0 MySQL und PHP sind ebenso einfach Installiert wie Nginx selbst.<\/p>\n<p><a href=\"https:\/\/nodch.de\/wp-content\/uploads\/MySQL-logo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-medium wp-image-3084\" src=\"https:\/\/nodch.de\/wp-content\/uploads\/MySQL-logo-550x288.png\" alt=\"MySQL-logo\" width=\"550\" height=\"288\" srcset=\"https:\/\/nodch.de\/wp-content\/uploads\/MySQL-logo-550x288.png 550w, https:\/\/nodch.de\/wp-content\/uploads\/MySQL-logo.png 800w\" sizes=\"auto, (max-width: 550px) 100vw, 550px\" \/><\/a><\/p>\n<p>[sws_divider_top]Fangen wir mit dem Einfacheren an: <strong>MySQL<\/strong>.<\/p>\n<p>Ein einziger Befehl reicht aus im MySQL vollst\u00e4ndig zu installieren:<\/p>\n<pre>$ sudo apt-get install mysql-server mysql-client<\/pre>\n<p>Theoretisch kann der MySQL Server jetzt schon gestartet werden. Ich m\u00f6chte euch jedoch noch etwas \u00fcber dessen Konfiguration erz\u00e4hlen. Ihr findet die Konfigurationsdatei unter [sws_highlight hlcolor=&#8220;fbfac7&#8243;]\/etc\/mysql\/my.conf[\/sws_highlight]. Diese kann mittels Dateieditor einfach ge\u00f6ffnet und editiert werden. Wie schon erw\u00e4hnt, ist diese Konfiguration normalerweise ausreichend. Jedoch sollte man \u00fcber folgende Einstellungen bescheid wissen:<\/p>\n<pre>datadir \u00a0 \u00a0 \u00a0 \u00a0= \/var\/lib\/mysql<\/pre>\n<p>Im datadir werden die Datenbanken im Filesystem gespeichert. Sollte der Fall eintreten, dass der MySQL Server nicht mehr gestartet werden kann, k\u00f6nnt ihr hier die Daten retten. Dies geht leider nur wenn als Datenbankengine MyISAM gew\u00e4hlt wurde (Ist bei WordPress der Fall). Wurde eine andere Engine wie InnoDB gew\u00e4hlt, erfordert es Gl\u00fcck oder einen gro\u00dfen Aufwand diese Daten noch zu retten.<\/p>\n<pre>bind-address \u00a0 \u00a0 \u00a0 \u00a0= 127.0.0.1<\/pre>\n<p>\u00dcber die bind-address wird geregelt \u00fcber welche IP Adresse der Server erreichbar ist. Standardm\u00e4\u00dfig steht diese Einstellung auf 127.0.0.1, sprich der Server ist nur von localhost erreichbar. W\u00e4hlt ihr eure \u00f6ffentliche Server IP so k\u00f6nnt ihr, <a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.1\/de\/default-privileges.html\" target=\"_blank\">wenn ihr euch das Recht einger\u00e4umt habt<\/a>, auch von extern zugreifen.<\/p>\n<pre>key_buffer = 16M\r\nmax_allowed_packet = 16M\r\nthread_stack = 192K\r\nthread_cache_size = 8\r\n#max_connections = 100\r\n#table_cache = 64\r\n#thread_concurrency = 10\r\nquery_cache_limit = 2M\r\nquery_cache_size = 32M<\/pre>\n<p>Mit diesen Einstellungen kann die meiste Performance aus dem Server geholt werden, oder auch vernichtet werden. Ihr k\u00f6nnt alle Cachegr\u00f6\u00dfen und Verbindungen definieren. Ich werde jetzt nicht auf die Optimierung von MySQL eingehen, diese Einstellungen reichen aus, um einen korrekt arbeitenden MySQL Server zu betreiben. Wer m\u00f6chte kann aber gern in der offiziellen Dokumentation nachschauen: <a href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.0\/en\/optimization.html\" target=\"_blank\">Kapitel 7: Optimierung<\/a><\/p>\n<p>[sws_divider_top]<a href=\"https:\/\/nodch.de\/wp-content\/uploads\/PHP-logo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"alignright size-full wp-image-3085\" src=\"https:\/\/nodch.de\/wp-content\/uploads\/PHP-logo.png\" alt=\"PHP-logo\" width=\"300\" height=\"159\" \/><\/a>Die <strong>PHP<\/strong> Installation ist auch nicht viel schwerer. Da wir jedoch die aktuellste PHP Version benutzen wollen, m\u00fcssen wir vorher noch neue Repositories eintragen, denn in den offiziellen Apt-Quellen ist noch eine \u00e4ltere Version enthalten.<\/p>\n<pre>$ sudo echo \"deb http:\/\/ppa.launchpad.net\/nginx\/php5\/ubuntu lucid main\" &gt;&gt; \/etc\/apt\/sources.list\r\n$ sudo echo \"deb-src http:\/\/ppa.launchpad.net\/nginx\/php5\/ubuntu lucid main\" &gt;&gt; \/etc\/apt\/sources.list<\/pre>\n<p>Wenn wir das erledigt haben starten wir auch schon die Installation:<\/p>\n<pre>$ sudo apt-get install php5 php-pear php5-dev php5-suhosin php5-mysql libpcre3-dev\u00a0php5-cgi<\/pre>\n<p>Dieser Befehl installiert die neue Version von PHP, zus\u00e4tzlich wird noch PEAR installiert. Mit PEAR k\u00f6nnen offizielle PHP Pakete wie apc oder memcache nachinstalliert werden. F\u00fcr eine Nachinstallation muss PHP kompiliert werden, daf\u00fcr installieren wir das PHP Dev Paket gleich mit. Dazu kommen dann noch der Suhosin Patch, MySQL Unterst\u00fctzung, Abh\u00e4ngigkeiten und der CGI Modus&#8230;<\/p>\n<p>Die Installation wird etwas l\u00e4nger dauern als bei Nginx und MySQL.<\/p>\n<p>Da wir PHP \u00fcber FastCGI anbinden wollen, m\u00fcssen wir die PHP Worker noch spawnen, die geschieht \u00fcber den Befehl:<\/p>\n<pre>$ php-cgi -b 127.0.0.1:9000<\/pre>\n<p>Alle PHP Worker lauschen nun auf Port 9000, damit man das nicht jedes mal neu eingeben muss, gibt es im Nginx Wiki ein simples Linux-Style-Start-Script:<\/p>\n<pre>#!\/bin\/bash\r\nBIND=127.0.0.1:9000 # Eure Worker werden hier lauschen\r\nUSER=www-data # Bitte den selben Nutzer angeben wie in Nginx, default ist www-data\r\nPHP_FCGI_CHILDREN=15\r\nPHP_FCGI_MAX_REQUESTS=1000\r\n\r\nPHP_CGI=\/usr\/bin\/php-cgi\r\nPHP_CGI_NAME=`basename $PHP_CGI`\r\nPHP_CGI_ARGS=\"- USER=$USER PATH=\/usr\/bin PHP_FCGI_CHILDREN=$PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS=$PHP_FCGI_MAX_REQUESTS $PHP_CGI -b $BIND\"\r\nRETVAL=0\r\n\r\nstart() {\r\n echo -n \"Starting PHP FastCGI: \"\r\n start-stop-daemon --quiet --start --background --chuid \"$USER\" --exec \/usr\/bin\/env -- $PHP_CGI_ARGS\r\n RETVAL=$?\r\n echo \"$PHP_CGI_NAME.\"\r\n}\r\nstop() {\r\n echo -n \"Stopping PHP FastCGI: \"\r\n killall -q -w -u $USER $PHP_CGI\r\n RETVAL=$?\r\n echo \"$PHP_CGI_NAME.\"\r\n}\r\n\r\ncase \"$1\" in\r\n start)\r\n   start\r\n ;;\r\n stop)\r\n   stop\r\n ;;\r\n restart)\r\n   stop\r\n   start\r\n ;;\r\n *)\r\n   echo \"Usage: php-fastcgi {start|stop|restart}\"\r\n   exit 1\r\n ;;\r\nesac\r\nexit $RETVAL<\/pre>\n<p>Speichert Script am besten unter [sws_highlight hlcolor=&#8220;fbfac7&#8243;]\/etc\/init.d\/[\/sws_highlight] mit dem Namen [sws_highlight hlcolor=&#8220;fbfac7&#8243;]php-fcgi[\/sws_highlight], dann k\u00f6nnt ihr ganz einfach einen Autostart einrichten:<\/p>\n<pre>$ sudo update-rc.d php-fcgi defaults<\/pre>\n<p>Nun fehlen nur noch apc und memcache:<\/p>\n<pre>$ sudo pecl install memcache\r\n$ sudo pecl install apc<\/pre>\n<p>Die Installation sollte eigentlich korrekt ablaufen, es kann aber passieren, dass PEAR eure php.ini nicht findet, wenn das der Fall ist, einfach diese Zeilen in die Datei [sws_highlight hlcolor=&#8220;fbfac7&#8243;]\/etc\/php\/cgi\/php.ini[\/sws_highlight]eintragen:<\/p>\n<pre>extension=memcache.so\r\nextension=apc.so<\/pre>\n<p><strong>Da sind wir auch schon fertig!<\/strong> \u00a0Im n\u00e4chsten Kapitel werde ich euch zeigen wie ihr alles zusammenklebt, PHP als FastCGI Anwendung im Nginx bereitstellt und wie man Nginx richtig konfiguriert.<\/p>\n<p>[sws_divider_top] <a title=\"WordPress Webseite mit Nginx auf Ubuntu Server beschleunigen\" href=\"https:\/\/nodch.de\/wordpress-webseite-mit-nginx-auf-ubuntu-server-beschleunigen\/3014\/\">Teil 0: Einf\u00fchrung<\/a><br \/>\n<a title=\"HowTo: Installation der aktuellen Nginx-Version auf Ubuntu\" href=\"https:\/\/nodch.de\/howto-installation-der-aktuellen-nginx-version-auf-ubuntu\/3029\/\"> Teil I: Installation der aktuellen Nginx-Version auf Ubuntu<\/a><br \/>\n<em><a title=\"HowTo: Installation von MySQL und PHP auf Ubuntu Server\" href=\"https:\/\/nodch.de\/howto-installation-von-mysql-und-php-auf-ubuntu-server\/3030\/\"> Teil II: Installation von MySQL und PHP<\/a><\/em><br \/>\n<a title=\"Nginx konfigurieren und PHP als FastCGI bereitstellen\" href=\"https:\/\/nodch.de\/nginx-konfigurieren-und-php-als-fastcgi-bereitstellen\/3087\/\">Teil III: Nginx konfigurieren und PHP als FastCGI bereitstellen<\/a><br \/>\n&#8211; Alternativ: PHP-FPM Installieren und bereitstellen (folgt !)<br \/>\nTeil IV: Nginx f\u00fcr WordPress optimieren<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In einer kleinen HowTo-Reihe zeigen wir euch, wie man eine WordPress Webseite mit Nginx auf Ubuntu Server beschleunigen kann. Die Installation von MySQL und PHP ist Teil 2 der Reihe.\u00a0 MySQL und PHP sind ebenso einfach Installiert wie Nginx selbst. [sws_divider_top]Fangen wir mit dem Einfacheren an: MySQL. Ein einziger Befehl reicht aus im MySQL vollst\u00e4ndig [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[682,142],"tags":[583,1611,1612,2485,1610,333,1584,1582,1583,2481,2482],"class_list":["post-3030","post","type-post","status-publish","format-standard","hentry","category-howto","category-ubuntu","tag-anleitung","tag-beispiel","tag-fast-cgi","tag-howto","tag-installation","tag-linux","tag-mysql","tag-nginx","tag-php","tag-ubuntu","tag-wordpress"],"_links":{"self":[{"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/posts\/3030","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nodch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=3030"}],"version-history":[{"count":0,"href":"https:\/\/nodch.de\/index.php?rest_route=\/wp\/v2\/posts\/3030\/revisions"}],"wp:attachment":[{"href":"https:\/\/nodch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=3030"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nodch.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=3030"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nodch.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=3030"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}