Landing Page dla naszego projektu
Wstęp
Dziś zajmiemy się promocją naszego przyszłego projektu. Do tego najlepiej wykorzystać coś prostego, no dobra ja jestem z tych co nie lubią się męczyć ze stroną internetową. W sumie to narzędzie nie powinno sprawiać problemów, nie ma się co szarpać jeśli nie mamy ludzi od promocji.
Zatem weźmy się do roboty, strona produktu…
I jeszcze raz od początku, zacznijmy od serwera Apache.
Apache + PHP
Już to przerabialiśmy mnóstwo razy, ale i tak zrobimy sobie jeszcze raz, ale trochę inaczej. Zatem do dzieła. Aktualizujemy repozytoria:
apt-get install python-software-properties software-properties-common LC_ALL=C.UTF-8 add-apt-repository ppa:ondrej/php apt-get update
i dalej serwer:
apt-get install apache2 php7.2 php7.2-fpm libapache2-mod-php7.2
I konfigurujemy. Wchodzimy do katalogu stron:
cd /etc/apache2/sites-available/
I tworzymy naszą konfigurację:
vim app.e-strix.com.conf
dalej, uzupełniamy zawartość pliku:
<VirtualHost *:80> ServerAdmin admin@e-strix.pl ServerName app.e-strix.com DocumentRoot /var/www/app.e-strix.com/public_html <Directory "/var/www/app.e-strix.com/public_html/"> AllowOverride All Order allow,deny Allow from all </Directory> ErrorLog /var/www/app.e-strix.com/error.log CustomLog /var/www/app.e-strix.com/access.log combined </VirtualHost>
Dodajemy katalog:
mkdir -p /var/www/app.e-strix.com
Teraz dodamy użytkownika i dodamy do grupy www-data:
adduser appuser usermod -a -G appuser www-data
Tworzymy katalog publc_html w katalohu użytkowanika:
mkdir -p /home/appuser/public_html/
Teraz zrobimy coś nowego, czyli link symboliczny:
ln -s /home/appuser/public_html /var/www/app.e-strix.com
Po co nam to? O tym później…
A teraz niespodzianka, coś nowego. Postawimy sobie serwer FTP’a.
FTP
Po co on nam jest? A no po to by WordPress sam sobie dociągał pluginy czy też aktualizacje. Na początku wspominałem o chęci pozbycia się problemów a to rozwiązanie daruje nam wiele prac administracyjnych.
Teraz instalujemy na VPS’ie demona:
apt-get install vsftpd
Teraz zróbmy kopię zapasową oryginalnego pliku z konfiguracją:
mv /etc/vsftpd.conf /etc/vsftpd.conf.orig
I teraz potrzebujemy własnej konfiguracji, czyli tworzymy nasz plik:
vim /etc/vsftpd.conf
Z zawartością:
listen=YES anonymous_enable=NO local_enable=YES write_enable=YES local_umask=022 dirmessage_enable=YES use_localtime=YES xferlog_enable=YES connect_from_port_20=YES chroot_local_user=YES secure_chroot_dir=/var/run/vsftpd/empty pam_service_name=vsftpd rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key allow_writeable_chroot=YES pasv_enable=YES pasv_min_port=40000 pasv_max_port=50000 seccomp_sandbox=NO user_sub_token=$USER local_root=/home/$USER/public_html userlist_enable=YES userlist_file=/etc/vsftpd.userlist userlist_deny=NO
Notatka: Zwróć uwagę że kopiowanie całości ustawień doda specyficzny znak końca linii, i wtedy serwer może się nie uruchomić.
Teraz zaczyna się już wszystko układać w całość.
Dodajmy teraz użytkownika do listy vsftpd.userlist.
echo "appuser" | tee -a /etc/vsftpd.userlist
I restartujemy naszego daemona:
service vsftpd restart
I tu druga ciekawostka, czyli baza danych.
MySQL
No dobra, zajmijmy się dodaniem bazki. Tutaj też coś mało problemowego. Trzymam się firmy Oracle z większością produktów, dlatego małe projekty stawiam na bazach MySQL. Możesz się sprzeczać o to że są lepsze, że np. Postgresql jest o niebo lepsze, że bla bla bla. Uwierz mi, że źle utworzone zapytanie zarżnie każdą bazę, lub też przechowywanie zbyt dużej ilości danych archiwalnych przymuli każdy filesystem, a nam chodzi tu o prostotę i dostępność.
Zaczynamy oczywiście od instalacji:
apt-get install mysql-server php7.2-mysql
W trakcie tego procecsu, musimy mieć ustalone hasło do root. I w zasadzie tyle. Po zakończonym procesie instalacji możemy utworzyć bazę dla naszego CMS’a i użytkownika z którego będzie się ten CMS łączył do bazki.
Notatka: Nie łączymy się do bazy za pośrednictwem użytkownika root! W przyszłości pokażę dlaczego.
A zatem wchodzimy do MySQL’a z użytkownika root:
mysql -u root -p
I po wpisaniu hasła przystępujemy do tworzenia naszej bazy:
CREATE DATABASE app_e_strix_com;
Mamy bazę, więc dodamy użytkownika:
CREATE USER 'appuser'@'localhost' IDENTIFIED BY 'password';
Nazwa użytkownika bazy jest zbieżna z nazwą użytkownika systemy, ale nie jest zależna. Mamy dowolność w dodawaniu nazw oraz haseł 😉
Teraz nadamy prawa do bazy. Nie chcemy aby żaden problemik pozamiatał nam tabele więc nie damy pełnych praw:
GRANT CREATE,DELETE,INSERT,SELECT,UPDATE ON app_e_strix_com.* TO appuser@localhost;
Notatka: Delete jest dyskusyjne, możemy w prawdzie ustawić trigger, aby nam przenosił dane w inne miejsce ale w tej chwili wykracza to poza potrzeby prezentacji.
Teraz już mamy strukturę naszych katalogów, więc spokojnie możemy dodać naszą konfigurację Apache, a zatem:
a2ensite app.e-strix.com
I przeładowanie:
service apache2 reload
Notatka: Dlaczego teraz a nie wcześniej? Odpowiedź jest prosta, po instalacji MySQL trzeba przeładować apache, aby nowo zainstalowane moduły były widoczne. W prawdzie można przeładować kilka razy, nie zaszkodzi, ale stwierdziłem że wykonam to właśnie w taki sposób.
A teraz nasz CMS, czyli instalacja WordPress’a.
WordPress
W prawdzie można użyć hostingu z już zainstalowanym CMSem, ale takie rozwiązanie jest mało elastyczne. Mam na myśli instalacje innych rzeczy niż tylko jednego narzędzia.
Przejdźmy do katalogu użytkownika:
cd /home/appuser/
I pobieramy WordPress:
wget https://wordpress.org/latest.tar.gz
A teraz rozpakujemy paczkę:
tar zxvf latest.tar.gz
I zawartość przenosimy do katalogu public_html:
mv ./wordpress/* ./public_html/
I czyścimy niepotrzebne pliki:
rm -r latest.tar.gz wordpress/
I nadajemy prawa do katalogu:
chown -R appuser:www-data public_html/ chmod -R 774 public_html/
Z poziomy administracji już wszystko gra, teraz użyjemy przeglądarki do finalizacji procesu instalacji:
A teraz instalacja numer 2, czyli już coś ładnie wygląda.
1. Wpisujemy dane naszej bazki
Teraz wypełnijmy formularz danymi, które ustaliliśmy przy tworzeniu bazy MySQL. I przechodzimy dalej.

2. Ustalamy konto administratora
Warto je sobie zapisać, żeby nie szukać w przyszłości. Mam na myśli sytuację, gdy będzie potrzeba coś zmienić, lub dodać osobę zajmującą się stroną. Gdy nasza aplikacja nabierze rozgłosu, może wystąpić sytuacja że nie będzie możliwości ogarnięcia wszystkiego w pojedynkę.
Klikamy przycisk „Let’s go!”.
Wypełniamy formularz i przechodzimy dalej:

Zakończenie
No i teraz mamy wszystko. Pozostaje nam wybrać sobie ładny layout i theme. Podłączyć statystyki googlowskie, lub coś innego np Piwik’a, lub zupełnie coś innego… Potem integracja z AdSense, może strona na początku na siebie zarobi, i integracja z portalem społecznościowym, ja wybiorę facebook. Ale o tym w przyszłości. Na chwilę obecną mamy domyślny motyw i to w rezultacie jest dobrym fundamentem do pracy.
