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, 11723 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.
Neuester Wissensbeitrag
Ähnliche Inhalte
PHP
PHP MySQL Login (7)

Frage von Yanmai zum Thema PHP ...

PHP
gelöst PHP-MySQL - mysqli liefert einen Datensatz zu wenig (3)

Frage von Windows-Spieler zum Thema PHP ...

PHP
MySQL-Abfrage mit php: Wert + true bzw. false (2)

Frage von tomolpi zum Thema PHP ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (19)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Userverwaltung
Ausgeschiedene Mitarbeiter im Unternehmen - was tun mit den AD Konten? (19)

Frage von patz223 zum Thema Windows Userverwaltung ...

Windows Netzwerk
Windows 10 RDP geht nicht (18)

Frage von Fiasko zum Thema Windows Netzwerk ...

Viren und Trojaner
Aufgepasst: Neue Ransomware Goldeneye verbreitet sich rasant (15)

Link von Penny.Cilin zum Thema Viren und Trojaner ...