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;
}