Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Nginx mit PHP und MySQL unter CENTOS 6

Anleitung Linux RedHat, CentOS, Fedora

Mitglied: wiesi200

wiesi200 (Level 4) - Jetzt verbinden

07.01.2012, aktualisiert 30.01.2012, 11824 Aufrufe, 4 Danke

Willkommen bei meiner ersten Anleitung

Da ich mal einen neuen Webserver aufsetzen musste dachte ich mir mal muss es denn immer ein Apache sein.
Nach kurzer Suche bin ich auf Nginx gestoßen. Leider habe ich aber hierzu keine wirklich vollständige und funktionierende Anleitung gefunden.
Und da ich hier schon immer eine schreiben wollte dachte ich mir wass soll's, wobei man eigentlich schnell merkt das es sehr einfach ist.


Basisinstallation

So besorgt euch als erstes mal eine CD von CENTOS und macht eine Minimalinstallation auf einem Server.
Da hier alles Menügeführt ist werde ich mich zu diesem Thema nicht stark auslassen.

Soweit so gut. Ihr sollte jetzt eine Linux Konsole vor euch haben.

Optional:
Ich hab mir als erstes gleich openssh installiert und remote weiter gemacht da ich das die Config Files nicht abtippen wollte.
01.
yum install openssh 
02.
chkconfig --level 35 sshd on 
03.
service sshd start

Installation Nging

Nun geben wir dem Installer eine zusätzliche Paketquelle.
01.
rpm -Uvh http://download.fedora.redhat.com/pub/epel/6/i386/epel-release-6-5.noarch.rpm
Hier Achtung der Pfad wird sich im Laufe der Zeit ändern.

Jetzt installieren wir gleich mal nginx
01.
yum install nginx
und so sorgen wir dafür dass der Webserver beim Booten des Server automatisch starten, zusätzlich starten wir ihn auch gleich noch.
01.
chkconfig --add nginx 
02.
chkconfig --level 35 nginx on 
03.
service nginx start
Der Webserver würde jetzt theoretisch laufen nur lässt die Firewall externe zugriffe noch nicht zu, dazu ändern wir iptables
01.
vi /etc/sysconfig/iptables
folgender Eintrag reicht um den Port 80 der für HTML verwendet wird frei zu geben. Falls die Webseite auf einen anderen Port oder HTTPS verwendet werden soll muss der entsprechende Port freigegeben werden.
01.
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
Nun die Firewall neu starten, damit die Änderung wirksam ist
01.
service iptables restart
Wenn wir nun mit einem anderem Rechner im Netz mit einen Webbrowser die IP-Adresse des Servers aufrufen sollten wir eine Willkommensmeldung bekommen.

Installation PHP

Nun geht's an PHP. Erst mal wieder die Packete installieren.
01.
yum install php-pear-Net-Socket php-pear php-common php-gd php-devel php php-mbstring php-pear-Mail php-cli php-imap php-snmp php-pdo php-xml php-pear-Auth-SASL php-ldap php-pear-Net-SMTP php-mysql spawn-fcgi
Jetzt brauchen wir ein Startscript für den den FastCGI Server.
Deshalb erzeugen wir einen Datei
01.
vi /etc/init.d/phpfcgi
mit folgendem Inhalt (zu finden auf den nginx Webseite):
01.
#!/bin/bash 
02.
03.
# Startup script for the PHP FastCGI server. 
04.
05.
# chkconfig: 345 85 15 
06.
# description: PHP is an HTML-embedded scripting language 
07.
# processname: php 
08.
# config: /etc/php.ini 
09.
  
10.
# Source function library. 
11.
. /etc/rc.d/init.d/functions 
12.
  
13.
PHPFCGI="/usr/bin/php-cgi" 
14.
FCGIPORT="9000" 
15.
FCGIADDR="127.0.0.1" 
16.
FCGI_WEB_SERVER_ADDRS="127.0.0.1" 
17.
PHP_FCGI_CHILDREN=5 
18.
PHP_FCGI_MAX_REQUESTS=1000 
19.
ALLOWED_ENV="PATH USER" 
20.
PHPUSER=php 
21.
PIDFILE=/var/run/phpfcgi.pid 
22.
  
23.
if [ -z "$PHP_FCGI_CHILDREN" ]; then 
24.
  PHP_FCGI_CHILDREN=5 
25.
fi 
26.
  
27.
ALLOWED_ENV="$ALLOWED_ENV PHP_FCGI_CHILDREN PHP_FCGI_MAX_REQUESTS FCGI_WEB_SERVER_ADDRS" 
28.
  
29.
case "$1" in 
30.
  start) 
31.
        PHPFCGI_START=$"Starting ${NAME} service: " 
32.
        echo -n $PHPFCGI_START 
33.
  
34.
        # check for $PHPUSER, create if non-existent 
35.
        if [ -z "`id -u $PHPUSER 2> /dev/null`" ]; then 
36.
            useradd -s /sbin/nologin $PHPUSER 
37.
        fi 
38.
  
39.
        # clean environment 
40.
        E= 
41.
        for i in $ALLOWED_ENV; do E="$E $i=${!i}"; done 
42.
        daemon --user $PHPUSER --pidfile $PIDFILE "env - $E $PHPFCGI -q -b $FCGIADDR:$FCGIPORT &> /dev/null &" 
43.
  
44.
        pid=`pidof php-cgi` 
45.
        if [ -n "$pid" ]; then 
46.
            echo $pid > $PIDFILE 
47.
            success $PHPFCGI_START 
48.
        else 
49.
            failure $PHPFCGI_START 
50.
        fi 
51.
        echo 
52.
        ;; 
53.
  stop) 
54.
        echo -n "Stopping php-fcgi: " 
55.
        killproc -p $PIDFILE phpfcgi 
56.
        echo 
57.
        ;; 
58.
  status) 
59.
        status phpfcgi 
60.
        ;; 
61.
  restart) 
62.
        $0 stop 
63.
        $0 start 
64.
        ;; 
65.
  *) 
66.
        echo "Usage: $0 {start|stop|status|restart}" 
67.
        exit 1 
68.
esac 
69.
  
70.
exit 0
So, jetzt starten wir das ganze gleich noch und schauen wieder das alles bei Booten gleich läuft.
01.
chmod +x /etc/init.d/phpfcgi 
02.
chkconfig --add phpfcgi 
03.
chkconfig --level 35 phpfcgi on 
04.
service phpfcgi start

Virtual Host Configurieren

Da wir auf dem Server mehrere Webseiten betreiben wollen konfigurieren wir mal den ersten Virtual Host.
Dazu erstellen wieder eine Datei. Weitere Möglchkeiten sind gut mit Beispielen auf Nginx Seite dokumentiert.

Bitte erstetzt jeweils "domain" und "com" durch die für euch zutreffenden Namen.
01.
vi /etc/nginx/conf.d/domain_com.conf
01.
server { 
02.
    server_name  domain.com www.domain.com; 
03.
 
04.
     location / { 
05.
        root   html/domain; 
06.
        index  index.php index.html index.htm; 
07.
08.
 
09.
    location ~ \.php$ { 
10.
            root           html/domain; 
11.
            fastcgi_pass   127.0.0.1:9000; 
12.
            fastcgi_index  index.php; 
13.
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name; 
14.
            include        fastcgi_params; 
15.
16.
}
Jetzt brauchen wir noch eine Webseite
Dazu erstellen wir im Rootverzeichniss von nginx ein Unterverzeichniss und erstellen wieder eine Datei
01.
mkdir /usr/share/nginx/html/domain 
02.
vi /usr/share/nginx/html/domain/index.php
Der Inhalt sollte für's erste reichen
01.
<?php 
02.
    phpinfo(); 
03.
?> 
Dann noch nginx neu starten damit Änderungen an der Config wirksam sind.

01.
service nginx restart
Wenn wir jetzt an einem 2ten Rechner im Netz, im Falle eines Windows Rechners die hosts Datei bearbeiten und einen Eintrag für "www.domain.com" auf die IP des Servers setzten und diese dann in einem Browser www.domain.com aufrufen sollten wir was sehen.

MySQL Installieren

Das ist jetzt eigentlich am einfachsten.
Wieder erst die benötigten Pakete installieren.
01.
yum install mysql mysql-server
starten MySQL
01.
chkconfig --level 35 mysqld on 
02.
service mysqld start
und setzen ein root Passwort
01.
mysqladmin --user=root password 'password'

Schlusswort

Ich hoffe Ihr kommt mit dieser Schritt für Schrittanleitung klar.
In dieser Anleitung bin ich nicht, da es meiner Meinung nach zu umfangreich ist, auf Absicherung und Optimierung eingegangen. Wenn man also diesen Webserver in's Internet stellen will sollte man sich zu diesem Zweck sollte man sich noch in nginx, PHP und MySQL einlesen.

Ich bin gerne für Anregungen und Änderungen bereit und hoffe das mir keiner den Kopf abreißt da Linux nicht grad mein Steckenpferd ist und ich hier zum ersten Mal bewusst auf eine GUI verzichtet habe.
Ähnliche Inhalte
PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

Datenbanken
gelöst MySQL "order by" erst bestimmtes Wort, dann alphabetisch (9)

Frage von AS-N00 zum Thema Datenbanken ...

Windows Server
MySQL Dienst startet nicht mehr nach Absturz SBS2011 (4)

Frage von JohnMcenroe zum Thema Windows Server ...

Neue Wissensbeiträge
Drucker und Scanner

Samsung SL-M4025ND, firmware update und (kompatible) Tonerkassetten

(1)

Erfahrungsbericht von markus-1969 zum Thema Drucker und Scanner ...

Router & Routing

PfSense auf Supermicro Intel Xeon D-15x8 SoC Bare Bone

Tipp von Dobby zum Thema Router & Routing ...

Windows Server

Exchange 2010 auf Windows Server 2016 und AD

(2)

Tipp von Herbrich19 zum Thema Windows Server ...

KVM

How to: Libvirt Port forwarding

(2)

Anleitung von fundave3 zum Thema KVM ...

Heiß diskutierte Inhalte
Router & Routing
über Vmware auf eine FritzBox mit IPv6 per VPN (17)

Frage von Zockervogel zum Thema Router & Routing ...

Basic
Programmierung von Windows Programmen (8)

Frage von Ghost108 zum Thema Basic ...

Windows Server
Yoursecurecloud.de Probleme mit Pfaden (6)

Frage von WPFORGE zum Thema Windows Server ...