Witam!
Masz sklep internetowy na współdzielonym hostingu który nie spełnia twoich oczekiwań lub działą powoli i ospale ?
Idelnie trafiłeś / aś, przedstawiam poradnik w którym zainstalujesz bardzo szybki i wydajny sklep od podstaw opierający się o CMS PrestaShop.
Całość opiera się na systemie Ubuntu 14.04 oraz Debian 8 wraz z serwerem www NGINX, bazą danych MariaDB serwerem FTP – vsftpd i oczywście PHP-FPM 5.6 (zalecana wersja dla PrestaShop).
Dla sklepu zalecany jest certyfikat SSL dla bezpieczeństwa zakupów użytkwoników, jak go uzyskać ?
Całośc jest kontunuacją serii rozpoczętej tu:
http://linuxiarz.pl/1921/wydajny-wordpress-na-wlasnym-serwerze/
Sposób przygotowany na instancji PublicCloud w OVH, oczywiście można użyć również na serwerze VPS SSD/Cloud czy nawet serwerze dedykowanym.
Na początek przygotowanie serwera:
1. Połączenie do maszyny:
w przypadku serwera PublicCloud, łącze się do systemu za pomocą klucza SSH,
ssh admin@167.114.240.207 -i .ssh/id_rsa2
2. Przygotowanie:
sudo -i apt-get update apt-get upgrade -y
Konfiguracja użytkownika www (usatwienie hasła będzie jednoznaczne z ustawieniem hasła do FTP!)
adduser www
3. Serwer www (nginx 1.10.0)
apt-get install curl wget nano apt-transport-https \ software-properties-common dpkg-dev build-essential zlib1g-dev libpcre3 \ libpcre3-dev unzip curl libcurl4-openssl-dev libossp-uuid-dev nano curl \ git autotools-dev debhelper dh-systemd libexpat-dev libgd-dev libgeoip-dev \ libluajit-5.1-dev liblua5.1-0-dev libmhash-dev libpam0g-dev libperl-dev \ libxslt1-dev po-debconf libssl-dev -y curl http://repo.linuxiarz.pl/NGINX-1.10.0-custom.tar.gz | tar xz cd nginx*; dpkg-buildpackage -b cd .. dpkg -i nginx-common_1.*.deb nginx_1.*.deb nginx-extras_1.*.deb nginx-doc_1.*.deb rm /etc/nginx/conf.d/* ; rm /etc/nginx/sit*/*
Serwer www jest, przejdźmy do instalacji PHP, skonfigurowanie serwera WWW wykonamy później.
4. Instalacja PHP 5.6
4.1 UBUNTU 14.04
add-apt-repository ppa:ondrej/php5-5.6 # ENTER apt-get update apt-get install php5-fpm php5 php5-mysql php5-curl php5-gd php5-intl \ php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-ps \ php5-pspell php5-recode php5-snmp php5-tidy php5-xmlrpc php5-xsl \ php5-xcache php-soap postfix -y --force-yes rm /etc/php5/fpm/php.ini; wget http://pliki.linuxiarz.pl/02-2016/php.ini -O /etc/php5/fpm/php.ini wget http://pliki.linuxiarz.pl/08-2015/php5/ioncube_loader_lin_5.6.so -O /etc/php5/ioncube_loader_lin_5.6.so
4.2 DEBIAN 8
apt-get install php5-fpm php5-mysql php5-curl php5-gd php5-intl \ php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode \ php5-tidy php5-xmlrpc php5-xsl php5-xcache php-soap php-pear \ imagemagick postfix -y --force-yes rm /etc/php5/fpm/php.ini wget http://pliki.linuxiarz.pl/02-2016/php.ini -O /etc/php5/fpm/php.ini wget http://pliki.linuxiarz.pl/08-2015/php5/ioncube_loader_lin_5.6.so -O /etc/php5/ioncube_loader_lin_5.6.so wget http://pliki.linuxiarz.pl/05-2016/www-prestashop.conf -O /etc/php5/fpm/pool.d/www-prestashop.conf
Włączenie PHP5-FPM
service php5-fpm restart
5. Instalacja serwera FTP oraz jesgo konfiguracja:
apt-get install vsftpd -y rm /etc/vsftpd.conf wget http://pliki.linuxiarz.pl/08-2015/ftp/vsftpd.conf -O /etc/vsftpd.conf touch /etc/vsftpd.chroot_list wget http://pliki.linuxiarz.pl/08-2015/ftp/private.zip unzip private.zip; mv private/* /etc/ssl/private; rm private.zip
Domyslnie włączona jest opcja FTP przez TLS, aby to wyłączyć – w pliku /etc/vsftpd.conf zmień na ssl_enable=NO
6. Instalacja bazy MariaDB i jej konfiguracja
Podczas instalacji serwera bazodanowego – system po prosi o wprowadzenie hasła do użytkownika “root” – zapamiętaj go.
6.1 UBUNTU 14.04
apt-key adv --recv-keys --keyserver hkp://keyserver.ubuntu.com:80 0xcbcb082a1bb943db add-apt-repository 'deb [arch=amd64,i386] http://mariadb.kisiek.net/repo/10.1/ubuntu trusty main' apt-get update apt-get install mariadb-server mariadb-client -y
6.2 DEBIAN 8
apt-get install software-properties-common apt-key adv --recv-keys --keyserver keyserver.ubuntu.com 0xcbcb082a1bb943db add-apt-repository 'deb [arch=amd64,i386] http://mirror6.layerjet.com/mariadb/repo/10.1/debian jessie main' apt-get update apt-get install mariadb-server mariadb-client -y
Gotowa konfiguracja i start serwera:
rm /etc/mysql/my.cnf wget http://pliki.linuxiarz.pl/08-2015/my.cnf -O /etc/mysql/my.cnf service mysql restart
7. Serwer Memcache
apt-get install memcached -y rm /etc/memcached.conf wget http://pliki.linuxiarz.pl/11-2015/memcached.conf -O /etc/memcached.conf
8. Uruchamianie orpogramowania przy starcie systemu:
update-rc.d nginx defaults update-rc.d mysql defaults update-rc.d vsftpd defaults update-rc.d memcached defaults update-rc.d php5-fpm defaults
Instalacja PrestaShop:
1. Tworzenie katalogów i pobieranie najnowszej wersji CMS
mkdir /home/www/public_html -p mkdir /home/www/logs/ -p wget https://www.prestashop.com/download/old/prestashop_1.6.1.4.zip -O /home/www/public_html/prestashop.zip cd /home/www/public_html/ unzip prestashop.zip ; rm prestashop.zip
Konfiguracja uprawnień do plików i katalogów PrestaShop
wget http://pliki.linuxiarz.pl/02-2016/ps-perm.sh -O /root/ps-perm.sh chmod +x /root/ps-perm.sh cd /root/ ./ps-perm.sh
Dodawanie użytkownika www do grupy www-data
usermod -aG www-data www
2. Tworzenie bazy danych
mysql -u root -p
Po wydaniu tego polecenia, system poprosi o hasło, jest to hasło wcześniej ustawione przy instalacji serwera MariaDB
Po podaniu prawidłowego hasła, będziesz w konsoli bazy MySQL, tutaj tworzysz bazę.
CREATE DATABASE prestashop; ### PAMIETAJ ZMENIC HASLO DLA UŻYTKONIKA BAZY -> Linia poniżej - wewnątrz '' ### CREATE USER 'prestashop'@'localhost' IDENTIFIED BY 'G3u!vJQ4__v6L_5U'; GRANT ALL PRIVILEGES ON prestashop.* TO prestashop@localhost IDENTIFIED BY 'G3u!vJQ4__v6L_5U'; quit
3. Konfiguracja serwera www
wget http://pliki.linuxiarz.pl/02-2016/prestashop.conf -O /etc/nginx/conf.d/prestashop.conf sed -i '9d' /etc/nginx/php.conf rm /etc/nginx/conf.d/default.conf touch /home/www/logs/access.log touch /home/www/logs/error.log service nginx restart
4. Czas przzejść do przeglądrki, warto skierować już do twojego serwera jakąś domenę.
W jej strefie DNS (operator np.) wpisz adres IPv4 jako wartość rekordu A oraz wartość a dla sub domeny “www”.
Wywołaj IP lub adres twojej wcześnie skonfigurowanej domeny w przeglądarce.
Kwestie konfiguracyjne – To pozostawiam dla Ciebie. W zrzutach uzupełniłem instalator o przykładowe dane.
Pamiętaj, po zakończonej instalacji – musisz usunąć katalog /install:
rm -rf /home/www/public_html/prestashop/install
Po instalacji – konieczna będze jeszcze zmian nazwy katalogu /admin na inny wylosowany przez instalator – wykonasz to przez klienta FTP lub konsole poleceniem:
mv /home/www/public_html/prestashop/admin /home/www/public_html/prestashop/admin345aljfj1/
Pamiętaj zamienić z wylosowaną dla Ciebie wartością admin345aljfj1
- Serwer www wkompilowane ma moduły opisane tu: http://linuxiarz.pl/1911/nginx-1-9-11-z-modulami-na-debian-ubuntu-centos-i-innych/
- Ustawione reguły dla GooglePageSpeed: http://pliki.linuxiarz.pl/02-2016/pagespeed.txt
- Możliwe konfiguracje moduły PageSpeed: https://developers.google.com/speed/pagespeed/module/configuration
Wyłączenie PageSpeed’a:
sed -i s'/pagespeed on;/pagespeed off;/' /etc/nginx/conf.d/prestashop.conf /etc/init.d/nginx restart
Włączenie PageSpeed’a (domyśłnie włączone)
sed -i s'/pagespeed off;/pagespeed on;/' /etc/nginx/conf.d/prestashop.conf /etc/init.d/nginx restart
5. Instalacja i konfiguracja zapory (firewall) opartej o UFW
apt-get install ufw -y
Ustawienie regułek zapory
ufw default allow outgoing ufw allow 22/tcp ufw allow 80/tcp ufw allow 21/tcp ufw allow 12000:12100/tcp : > /etc/ufw/ufw.conf echo "ENABLED=no" >> /etc/ufw/ufw.conf echo "LOGLEVEL=low" >> /etc/ufw/ufw.conf ufw enable
Na końcu można uruchomić ponownie serwer i zweryfikować czy wszystko się uruchomi przy starcie.
reboot
Generator dla nginx
Aby zmodyfikować i ustawić własne hasło do modułu VTS (/vhost_status) i statystyk nginx PageSpeed – domyślne to admin:admin
Moduł VTS jest domyślnie dołączony zgodnie z poradnikiem: http://linuxiarz.pl/1385/nginx-1-9-4-z-modulem-vts-czyli-statystyki-vhosta/
wget http://pliki.linuxiarz.pl/11-2015/generator -O /usr/bin/generator chmod +x /usr/bin/generator : > /etc/nginx/htpasswd
->> UZYCIE: generator nazwapliku uzytkownik haslo np.
np:
generator /etc/nginx/htpasswd admin admin
Instalacja PHPMyAdmin:
cd /opt/; wget https://github.com/phpmyadmin/phpmyadmin/archive/STABLE.zip unzip STABLE*.zip mv phpmy* pma mkdir -p /var/lib/php/session; chmod 4777 /var/lib/php/session rm STABLE* wget http://pliki.linuxiarz.pl/12-2015/c7-apache/pma.conf -O /etc/nginx/conf.d/pma.conf ## Użytkownik phpMyAdmin w bazie - zaloguj sie swoim hasłem root i uwórz bazę mysql -u root -p CREATE DATABASE phpmyadmin; CREATE USER 'phpmyadmin'@'localhost' IDENTIFIED BY 'K.XNe1-.M!e-3e1G'; GRANT ALL PRIVILEGES ON phpmyadmin.* TO phpmyadmin@localhost IDENTIFIED BY 'K.XNe1-.M!e-3e1G'; quit mysql -u phpmyadmin -p'K.XNe1-.M!e-3e1G' phpmyadmin < /opt/pma/sql/create_tables.sql wget http://pliki.linuxiarz.pl/05-2016/pma.txt -O /opt/pma/config.inc.php ufw allow 9977/tcp service nginx restart
Dostęp dp PHPMyAdmin: http://TWOJ-IP:9977, lub http://domena.pl:9977