Dienstag, der 19. März 2024 - 05:06 Uhr

CentOS 6/7 Webserver mit nginx, php71 und vsftpd

erstellt am: 05.04.2017 | von: DevLink | Kategorie(n): Linux | Keine Kommentare

Vorraussetzung: frisch aufgesetztes Basic Server CentOS 6.8 (el6) oder CentOS 7 (el7)

Zuerst simpel updates und upgrade durchführen. Dabei kommt es bei el6 erst mal zu problemen mit der Java SDK. Diese separat herunterladen bevor alles beginnt:

el6:

vi /etc/sysconfig/network-scripts/ifcfg-eth0 => ONBOOT=yes
ifconfig eth0 up
service network restart
wget ftp://195.220.108.108/linux/centos/6.8/updates/x86_64/Packages/java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64.rpm
yum install java-1.7.0-openjdk-1.7.0.131-2.6.9.0.el6_8.x86_64.rpm
yum update -y

el7:

yum install net-tools -y
vi /etc/sysconfig/network-scripts/ifcfg-eth0 => ONBOOT=yes
ifconfig eth0 up
systemctl restart network

Danach SELinux deaktivieren und die in den IPTables port 80 für http und port 21 für ftp freigeben:

el6:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux

el7:
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config

reboot

el6:

iptables -I INPUT -m tcp -p tcp --dport 80 -j ACCEPT
iptables -I INPUT -m tcp -p tcp --dport 21 -j ACCEPT
service iptables save

el7:

firewall-cmd --zone=public --permanent --add-service=http
firewall-cmd --zone=public --permanent --add-service=ftp

firewall-cmd --zone=public --permanent --add-port=80/tcp
firewall-cmd --zone=public --permanent --add-port=21/tcp
firewall-cmd --reload

Als nächstes wird das epel und das remi repository installiert:

yum install epel-release -y

el6:
wget http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
rpm -Uvh remi-release-6*.rpm

el7:
yum install wget -y
wget http://rpms.famillecollet.com/enterprise/remi-release-7.rpm
rpm -Uvh remi-release-7*.rpm

unter vi /etc/yum.repos.d/remi.repo und vi /etc/yum.repos.d/remi-php71.repo

jeweils enabled=0 auf enabled=1 ändern.

Oder Alternativ:
yum-config-manager --enable remi
yum-config-manager --enable remi-php71

Danach installieren wir die php Module in der Version 7.1:

yum install php php-fpm php-mysql phpmyadmin mysql-server //für el7 den mysql-server weglassen

Als nächstes MySQL neustarten und die Installation durchführen:

el6:
/etc/init.d/mysqld restart

Im folgenden das Root Kennwort für phpMyAdmin angeben und die folgenden Abfragen jeweils mit Y bestätigen
/usr/bin/mysql_secure_installation

el7:
yum install mariadb-server mariadb -y
systemctl start mariadb.service
systemctl enable mariadb.service
mysql_secure_installation

als nächstes erstellen wir das nginx Repository:

vi /etc/yum.repos.d/nginx.repo

Und fügen folgendes hinzu:

el6:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/6/$basearch/
gpgcheck=0
enabled=1

el7:
[nginx]
name=nginx repo
baseurl=http://nginx.org/packages/centos/7/$basearch/
gpgcheck=0
enabled=1

Installation von nginx:

yum install nginx -y

Unter vi /etc/php.ini nach ;cgi.fix_pathinfo=1 suchen und durch cgi.fix_pathinfo=0 ersetzen.

Als nächstes in der vi /etc/nginx/conf.d/default.conf folgendes einfügen:

server {
    listen       80;
    server_name example.com; # change servername

   
    location / {
        root   /usr/share/nginx/html;
        index index.php  index.html index.htm;
    }

    error_page  404              /404.html;
    location = /404.html {
        root   /usr/share/nginx/html;
    }

    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
        root           /usr/share/nginx/html;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME   $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

So nun erstellen wir eine Gruppe namens ftpusers und einen FTP-Benutzer hans

groupadd ftpusers
adduser -m -d /usr/share/nginx/html hans -g ftpusers -s /sbin/nologin
passwd hans
usermod hans -a -G ftpusers

Nun nehmen wir unser FTP Homeverzeichnis in Besitz und geben noch die richtige Berechtigung:

chown -R hans:ftpusers /usr/share/nginx/html/
chmod 755 -R /usr/share/nginx/html/

Damit die Session und phpMyAdmin auch funktioniert noch folgende Berechtigungen ausführen:

chmod 755 -R /etc/phpMyAdmin/
chown -R root:ftpusers /var/lib/php/

In vi /etc/php-fpm.d/www.conf Benutzer und Gruppe entsprechend ändern

Als nächstes kreiren wir einen Symlink für phpMyAdmin im FTP Homeverzeichnis:

ln -s /usr/share/phpMyAdmin/ /usr/share/nginx/html/phpmyadmin

Installation von vsftpd:

yum install vsftpd -y

Konfiguration von vsftpd:

vi /etc/vsftpd/vsftpd.conf
anonymous_enable=NO
local_enable=YES
chroot_local_user=YES
 Direkt darunter muss bei CentOS7 folgendes eingefügt werden:
allow_writeable_chroot=YES
ganz unten: pam_service_name=vsftpd userlist_enable=YES tcp_wrappers=YES use_localtime=YES pasv_enable=NO

Als nächstes starten wir alle Dienste und setzen sie in die Startkonfiguration:

el6:
service vsftpd start
service php-fpm start
service nginx start

chkconfig --levels 235 mysqld on
chkconfig --levels 235 nginx on
chkconfig --levels 235 php-fpm on
chkconfig --levels 235 vsftpd on

el7:
systemctl enable vsftpd
systemctl enable nginx
systemctl enable php-fpm

systemctl start vsftpd
systemctl start nginx
systemctl start php-fpm

reboot



Bonus: WordPress Installation:

location / {
        root   /usr/share/nginx/html;
        index index.php  index.html index.htm;
	try_files $uri $uri/ /index.php?$args;
    }


, , , , ,

Keine Kommentare


Bis jetzt noch keine Kommentare

Einen Kommentar abgeben

Themen:

54 Artikel in 6 Kategorien:

  • Exchange Server (16)
  • Linux (6)
  • Microsoft Server (6)
  • Scripting (3)
  • Tutorials (10)
  • Windows (13)