WordPress na Ubuntu 16.04 (nginx, PHP7, FTP) z SSL

ub16-logo-maria-php-le
Witam was 🙂

Dziś poniekąd “odgrzewany kotlet”, ponieważ o Wordpresie i konfiguracji na serwerze VPS/dedykowanym, wpis już był – ale z okazji premiery systemu Ubuntu 16.04 który natywnie wspiera PHP 7, oraz z racji dostępności darmowych certyfikatów SSL z Let’s Encrypta postanowiłem o tym napisać.

WordPress już od jakiegoś czasu obsługuje PHP 7 więc instalacja tego CMS’a nie wymaga żadnych dodatkowych zmian w kodzie.

Dostosowany poradnik działa na Ubuntu 16.04 LTS, przy współpracy z ostatnim stabilnym wydaniem (w dniu publikacji wpisu) serwera www – nginx/1.10.0, bazy danych MariaDB 10.0.x która natywnie już jest wspierana przez system Ubuntu.

Dodatkiem i jest dopisek odnośnie instalacji certyfikatu SSL, co pomaga na pewno w pozycjonowaniu witryny jak i zabezpiecza was, o swoje hasło do zaplecza WWW dzięki szyfrowanemu połączeniu.
Certyfikat SSL odnawiać się będzie co 2 miesiące, wielkie podziękowania należą się twórcą projektu Let’s Encrypt, o tej rewolucji już pisałem jakiś czas temu.

Sposób przygotowany na instancji PublicCloud w OVH, oczywiście można użyć również na serwerze VPS SSD/Cloud czy serwerach dedykowanych.

Na początek przygotowanie serwera:

serwer

create

1. Połączenie do serwera/VPS/instancji:

w przypadku serwera PublicCloud, łącze się do systemu za pomocą klucza SSH,

ssh ubuntu@149.202.184.47 -i .ssh/id_rsa2

2. Przygotowanie systemu i instalacja niezbędnych pakietów:

sudo -i
apt-get update
apt-get upgrade -y

apt 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 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 \
libpython-stdlib libpython2.7-minimal libpython2.7-stdlib \
python python-minimal python2.7 python2.7-minimal -y

Konfiguracja użytkownika www (ustatwienie hasła będzie jednoznaczne z ustawieniem hasła do FTP!)

adduser www

3. Serwer www - nginx/1.10.0

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/*

Serwer www jest gotowy, przejdźmy zatem do instalacji PHP, skonfigurowanie serwera nginx wykonamy później.

4. Instalacja PHP 7 

apt -y install php7.0-fpm php7.0-mysql php7.0-curl \
php-pear php-imagick php7.0-imap php7.0-mcrypt php-memcache php7.0-pspell \
php7.0-recode php7.0-sqlite3 php7.0-tidy php7.0-xmlrpc php7.0-xsl \
php7.0-gd php7.0-intl php7.0-mbstring php-gettext \
php-apcu php-soap imagemagick postfix

4.1 Konfiguracja

rm /etc/nginx/php.conf
wget http://pliki.linuxiarz.pl/05-2016/php.conf -O /etc/nginx/php.conf
rm /etc/php/7.0/fpm/php.ini
wget http://pliki.linuxiarz.pl/05-2016/php.ini -O /etc/php/7.0/fpm/php.ini
wget http://pliki.linuxiarz.pl/05-2016/php7pool-wp.conf -O /etc/php/7.0/fpm/pool.d/php7pool-wp.conf
systemctl restart php7.0-fpm

5. Instalacja serwera FTP - vsftpd oraz jego 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

apt install -y mariadb-server mariadb-client

6.1 Definicja zabezpieczeń MySQL'a/MariaDB (ustawienie hasła dla użytkownika "root")

mysql_secure_installation

Po zdefiniowaniu hasła "root" - zapamiętaj/zanotuj je!

Do poprawnego działania PHP z bazą MariaDB musisz jeszcze włączyć połączenia TCP do bazy MariaDB:

echo "update user set plugin='' where User='root'; flush privileges;" | mysql --defaults-file=/etc/mysql/debian.cnf mysql

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. Instalacja PHPMyAdmin'a

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/05-2016/pma-ubuntu16.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

Dostęp do PHPMyAdmin: http://TWOJ-IP:9977, lub http://domena.pl:9977

8. Serwer Memcache

apt install memcached -y
rm /etc/memcached.conf
wget http://pliki.linuxiarz.pl/11-2015/memcached.conf -O /etc/memcached.conf 

9. Uruchamianie oprogramowania 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 php7.0-fpm defaults

Restart usług

systemctl restart nginx
systemctl restart mysql
systemctl restart vsftpd
systemctl restart memcached
systemctl restart php7.0-fpm

Instalacja WORDPRESS:

1. Tworzenie katalogów i pobieranie najnowszej wersji CMS

mkdir /home/www/public_html
wget https://pl.wordpress.org/wordpress-4.5.2-pl_PL.tar.gz -O /home/www/public_html/wp.tar.gz
cd /home/www/public_html/
tar xfz wp.tar.gz; rm wp.tar.gz

Konfiguracja uprawnień do plików i katalogów Wordpresa

wget http://pliki.linuxiarz.pl/05-2016/wp-perm.sh -O /root/wp-perm.sh
chmod +x /root/wp-perm.sh
cd /root/
./wp-perm.sh

Dodawanie użytkownika www do grupy www-data

usermod -g www-data www

2. Tworzenie bazy danych (tutaj przyda się hasło do 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 wordpress;
### PAMIETAJ ZMENIC HASLO DLA UŻYTKONIKA BAZY !! - wewnątrz znaków '' ###
CREATE USER 'wordpress'@'localhost' IDENTIFIED BY 'G3u!vJQ4__v6L_5U'; 
GRANT ALL PRIVILEGES ON wordpress.* TO wordpress@localhost IDENTIFIED BY 'G3u!vJQ4__v6L_5U';
quit

Lub alternatywny sposób, tworzenie bazy za pomocą interfejsu PHPMyAdmin:

pma_ub16_1

pma_ub16_2

pma_ub16_3

3. Konfiguracja serwera www (bez SSL)

wget http://pliki.linuxiarz.pl/05-2016/wordpress-ubuntu16.conf -O /etc/nginx/conf.d/wordpress.conf
service nginx restart

4. Czas przejść do przeglądarki, warto skierować już do twojego serwera jakąś domenę.

W jej strefie DNS (rejestrator np.) wpisz adres IPv4 jako wartośc rekordu A i analogicznie dla subdomeny "www".

IP-strefa

Wywołaj IP lub adres twojej wcześnie skonfigurowanej domeny w przeglądarce, lub przejdź do kolejnego punktu.

Pomiń ten krok, jeśli nie jesteś zainteresowany SSL'em.

Na czas pisania poradnika dodałem subdomenę tests.linuxiarz.pl aby pokazać wam jak dodać certyfikat SSL od Let's Encrypt

5. Jeśli zależy Ci na tym, aby połączenie z twoją witryną było bezpieczne i chcesz zainstalować darmowy certyfikat Let's Encrypt to pozostań tutaj i wykonaj polecenia:

cd /root/
git clone https://github.com/letsencrypt/letsencrypt
sh /root/letsencrypt/letsencrypt-auto certonly --webroot --webroot-path /home/www/public_html/wordpress --domains tests.linuxiarz.pl,www.tests.linuxiarz.pl --agree-tos --email admin@strona.pl

W powyższym poleceniu pamiętaj o edycji:
--domains tests.linuxiarz.pl,www.tests.linuxiarz.pl
oraz: --email admin@strona.pl

Odnowienie certyfikatu co 2 miesiące:

(sudo crontab -u root -l; echo "0 0 1 * * sh /root/letsencrypt/letsencrypt-auto renew >> /dev/null && service nginx restart >> /dev/null") | crontab -u root -

Gotowa konfiguracja NGINX z obsługą SSL'a

rm /etc/nging/conf.d/wordpress.conf
wget http://pliki.linuxiarz.pl/05-2016/wordpress-ubuntu16_ssl.conf -O /etc/nginx/conf.d/wordpress.conf

UWAGA!! Po wygenerowaniu certyfikatu SSL dla twojej domeny utworzone zostaną katalogi, odpowiednie dla twojej domeny! Musisz zmenić scieżkę w pliku konfiguracyjnym serwera nginx!

/etc/nginx/conf.d/wordpress.conf

ssl_certificate /etc/letsencrypt/live/strona.pl/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/strona.pl/privkey.pem;
ssl_trusted_certificate /etc/letsencrypt/live/strona.pl/chain.pem;

Po poprawnej edycji, przeładuj nginx'a

service nginx restart

Efekt w przeglądarce:
ub16_ssl-wp

Jeżeli wszystko przebiegło pomyślnie, to po wpisaniu w przeglądarce twojej domeny powinien ukazać się instalator WordPress z bezpiecznym połączeniem jak na obrazku powyżej, lub jeśli pominałeś/aś ten etap - bez:

wp1

wp2

Kwestie konfiguracyjne dotyczące ustawień samej witryny pozostają dla Ciebie.

Jeśli instalacja się powiodła efektem instalacji powinien być widok na domyślny salon Wordpresa:

ub16-wp-rdy

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 GooglePageSpeed: https://developers.google.com/speed/pagespeed/module/configuration

Nie testowane z wtyczką dla Worpdresa: W3 Total Cache, może być konieczne wyłącznie modułu GooglePageSpeed.

Wyłączenie PageSpeed'a:

sed -i s'/pagespeed on;/pagespeed off;/' /etc/nginx/conf.d/wordpress.conf
/etc/init.d/nginx restart

Włączenie PageSpeed'a

sed -i s'/pagespeed off;/pagespeed on;/' /etc/nginx/conf.d/wordpress.conf
/etc/init.d/nginx restart

5. Instalacja i konfiguracja zapory (Firewall)

apt-get install ufw -y

Ustawienie regułek zapory

ufw allow ssh
ufw enable
ufw allow ftp
ufw allow http
ufw allow https
ufw allow 9977/tcp
ufw allow 12000:12100/tcp

Na końcu można uruchomić ponownie serwer i zweryfikować czy wszystko się uruchomi przy starcie.

reboot

Wydajnosć serwera przy 2500 jednoczesnych połączeniach przez 1 minute (serwer to HG 7 SSD z oferty PublicCloud w OVH):
perf1

perf2

  • Jest to jakieś narzędzie webowe, już nie pamiętam, jak się doszukam to dam znać.

  • Hasło do vsftpd to po prostu hasło dla usera “www”. zmienaisz : “passwd www” i podajesz nowe.

  • Brakuje w takim razie zależności.

  • Jacek

    Hej, czego używasz do testowania wydajności przy takim wolumenie połączeń?
    Darmowe narzędzia mają zazwyczaj ograniczenia do kilkudziesięciu połączeń.

  • Młotek

    Zapomniałem hasła do serwera vsftpd – idzie je w jakiś sposób przywrócić ?

  • Kamil

    Twoja konfiguracja działała u mnie jakiś czas zupełnie bezproblemowo za co sobie ją chwaliłem – od jakiegoś czasu (2-3 dni) jednak mam ciągłe zwiechy serwera (504) – pomimo, że właściwie to nic przy nim nie robiłem “samo się popsuło” mój global_errors.log wygląda tak: http://pasted.co/322dac0d z tego co widzę powtarza się wkoło jeden problem upstream timed out (110: Connection timed out) i coś z fastcgi – mógłbym mnie naprowadzić dlaczego serwer, któy od roku śmigał jak ta lala nagle stwierdził, że strajkuje ? Da się to jakoś naprawić czy czeka mnie tylko reinstal ?

  • tehmal

    checking for C compiler … not found

  • Kurczaki – i wygląda na to, że po postawieniu wszystkiego na VPS SSD OVH wszystko działa jak należy. Sorry za bzdurne pytania i jeszcze raz dziękuję za świetny poradnik.

  • OK, bardzo CI dziękuję za chęć pomocy – niestety dalej nie działa. A co dziwne – upload plików graficznych .png itp idzie OK, natomiast przy xxxx.php już wyrzuca błąd – niby kopiuje plik na serwer, ale bez żadnej zawartości. Testowane na VPS od VULTR. może tu coś nie halo.

    Zaraz spróbuję jeszcze na VPS SSD od OVH – mam nadzieję, że tu będzie OK. Miłego dnia.

  • Że tak powiem u mnie działa;)

    Poprawiony plik z dopisywaniem uprawnień zaktualizowałem w poradniku:

    wget http://pliki.linuxiarz.pl/05-2016/wp-perm.sh -O /root/wp-perm.sh
    chmod +x /root/wp-perm.sh
    cd /root/
    ./wp-perm.sh

    Testowałem na czystym systemie, leciałem pokolei z poradnikiem i bez problemu uploaduje pliki i usuwam oczywiscie.

    Zrestartuj jeszcze dla pewności serwer FTP.

    Polecam jeszcze to – ale po ogarnieciu FTP:
    wget http://pliki.linuxiarz.pl/05-2016/php7pool-wp.conf -O /etc/php/7.0/fpm/pool.d/php7pool-wp.conf
    rm /etc/nginx/conf.d/wordpress.conf
    wget http://pliki.linuxiarz.pl/05-2016/wordpress-ubuntu16.conf -O /etc/nginx/conf.d/wordpress.conf
    service nginx restart

  • Jestem pewien 🙂

    # ps aux | grep vsftpd

    root 5305 0.0 0.4 24136 3704 ? Ss 05:57 0:00 /usr/sbin/vsftpd /etc/vsftpd.conf

    nobody 5310 0.0 0.4 34680 3432 ? Ss 05:57 0:00 /usr/sbin/vsftpd /etc/vsftpd.conf

    nobody 5311 0.0 0.2 30580 2160 ? S 05:57 0:00 /usr/sbin/vsftpd /etc/vsftpd.conf

    www 5312 0.0 0.2 34780 1992 ? S 05:57 0:00 /usr/sbin/vsftpd /etc/vsftpd.conf

    root 5789 0.0 0.1 14516 936 pts/1 S+ 06:57 0:00 grep –color=auto vsftpd

    /etc/vsftpd.conf

    listen=YES

    anonymous_enable=NO

    local_enable=YES

    write_enable=YES

    local_umask=022

    anon_upload_enable=YES

    anon_mkdir_write_enable=YES

    dirmessage_enable=YES

    use_localtime=YES

    connect_from_port_20=YES

    dual_log_enable=YES

    vsftpd_log_file=/var/log/vsftpd.log

    xferlog_file=/var/log/xferlog

    xferlog_std_format=YES

    idle_session_timeout=9999

    data_connection_timeout=999

    ftpd_banner=Witam na serwerze FTP.

    chroot_local_user=YES

    chroot_list_enable=YES

    chroot_list_file=/etc/vsftpd.chroot_list

    secure_chroot_dir=/var/run/vsftpd/empty

    rsa_cert_file=/etc/ssl/private/vsftpd.cert.pem

    rsa_private_key_file=/etc/ssl/private/vsftpd.key.pem

    ssl_enable=YES

    allow_anon_ssl=NO

    force_local_data_ssl=NO

    force_local_logins_ssl=YES

    require_ssl_reuse=YES

    ssl_ciphers=HIGH:!aNULL:!eNULL:!LOW:!ADH:!RC4:!3DES:!MD5:!EXP:!PSK:!SRP:!DSS

    ssl_tlsv1=YES

    ssl_sslv2=NO

    ssl_sslv3=NO

    seccomp_sandbox=NO

    max_per_ip=10

    download_enable=YES

    guest_enable=NO

    pasv_enable=YES

    port_enable=YES

    pasv_promiscuous=NO

    port_promiscuous=NO

    #GnuTLS error -15: An unexpected TLS packet was received.

    require_ssl_reuse=NO

    allow_writeable_chroot=YES

    seccomp_sandbox=NO

    max_per_ip=0

    pasv_max_port=12100

    pasv_min_port=12000

    download_enable=YES

    guest_enable=NO

    pasv_enable=YES

    port_enable=YES

    pasv_promiscuous=NO

    port_promiscuous=NO

  • Specjalnie dla Ciebie to sprawdziłem,

    struktura wygląda tak:

    # ls -al /home/www/public_html/wordpress/

    total 172
    drwxr-xr-x 5 www www-data 4096 May 30 06:46 .
    drwxr-xr-x 3 www www-data 4096 May 30 06:41 ..
    -rw-r–r– 1 www www-data 418 Sep 25 2013 index.php
    -rw-r–r– 1 www www-data 10335 May 18 18:40 readme.html
    -rw-r–r– 1 www www-data 5032 Jan 28 03:35 wp-activate.php
    drwxr-xr-x 9 www www-data 4096 May 18 18:40 wp-admin
    -rw-r–r– 1 www www-data 364 Dec 19 11:20 wp-blog-header.php
    -rw-r–r– 1 www www-data 1476 Jan 30 21:56 wp-comments-post.php
    -rw-r–r– 1 www www-data 3331 May 18 18:40 wp-config-sample.php
    drwxrwxr-x 5 www www-data 4096 May 18 18:40 wp-content
    -rw-r–r– 1 www www-data 3286 May 24 2015 wp-cron.php
    drwxr-xr-x 16 www www-data 12288 May 18 18:40 wp-includes
    -rw-r–r– 1 www www-data 2380 Oct 24 2013 wp-links-opml.php
    -rw-r–r– 1 www www-data 3316 Nov 5 2015 wp-load.php
    -rw-r–r– 1 www www-data 33837 Mar 6 03:06 wp-login.php
    -rw-r–r– 1 www www-data 7887 Oct 6 2015 wp-mail.php
    -rw-r–r– 1 www www-data 13106 Feb 17 22:58 wp-settings.php
    -rw-r–r– 1 www www-data 28624 Jan 28 03:51 wp-signup.php
    -rw-r–r– 1 www www-data 4035 Nov 30 2014 wp-trackback.php
    -rw-r–r– 1 www www-data 3061 Oct 2 2015 xmlrpc.php

    # ps aux | grep vsftpd

    root 6934 0.3 0.2 24136 4056 ? Ss 06:44 0:00 /usr/sbin/vsftpd /etc/vsftpd.conf
    root 6939 0.0 0.0 12948 1020 pts/0 S+ 06:44 0:00 grep –color=auto vsftpd

    LOG z Filezilli:
    Status: Starting upload of /home/xxxxx/freebsd101.clean-install.qcow2
    Command: CWD /public_html/wordpress
    Response: 250 Directory successfully changed.
    Command: TYPE I
    Response: 200 Switching to Binary mode.
    Command: PASV
    Response: 227 Entering Passive Mode (167,114,237,85,47,1).
    Command: STOR freebsd101.clean-install.qcow2
    Response: 150 Ok to send data.
    Response: 226 Transfer complete.
    Status: File transfer successful, transferred 961.1 MB in 182 seconds
    Status: Retrieving directory listing…
    Command: PASV
    Response: 227 Entering Passive Mode (167,114,237,85,47,24).
    Command: LIST
    Response: 150 Here comes the directory listing.
    Response: 226 Directory send OK.
    Status: Directory listing successful

    Jesteś pewnien że masz podegrany konfig serwera FTP ode mnie ?

  • OK, pomogło tyle, że teraz mogę usuwać. Przy uploadzie otrzymuję komunikat: “Error -132: could not send file to remote host” :-(.

  • Powinno pomóc polecenie:
    chown www: -R /home/www/public_html/

  • Proszę:

    total 200

    drwxr-xr-x 6 www-data www-data 4096 May 28 21:10 .

    drwxr-xr-x 3 root root 4096 May 28 20:59 ..

    -rw-r–r– 1 www-data www-data 418 Sep 25 2013 index.php

    -rw-r–r– 1 www-data www-data 19935 May 18 18:40 license.txt

    -rw-r–r– 1 www-data www-data 10335 May 18 18:40 readme.html

    drwxr-xr-x 2 www-data www-data 4096 May 28 21:07 .well-known

    -rw-r–r– 1 www-data www-data 5032 Jan 28 03:35 wp-activate.php

    drwxr-xr-x 9 www-data www-data 4096 May 18 18:40 wp-admin

    -rw-r–r– 1 www-data www-data 364 Dec 19 11:20 wp-blog-header.php

    -rw-r–r– 1 www-data www-data 1476 Jan 30 21:56 wp-comments-post.php

    -rw-rw—- 1 www-data www-data 3605 May 28 21:10 wp-config.php

    -rw-r–r– 1 www-data www-data 3331 May 18 18:40 wp-config-sample.php

    drwxrwxr-x 6 www-data www-data 4096 May 28 21:12 wp-content

    -rw-r–r– 1 www-data www-data 3286 May 24 2015 wp-cron.php

    drwxr-xr-x 16 www-data www-data 12288 May 18 18:40 wp-includes

    -rw-r–r– 1 www-data www-data 2380 Oct 24 2013 wp-links-opml.php

    -rw-r–r– 1 www-data www-data 3316 Nov 5 2015 wp-load.php

    -rw-r–r– 1 www-data www-data 33837 Mar 6 03:06 wp-login.php

    -rw-r–r– 1 www-data www-data 7887 Oct 6 2015 wp-mail.php

    -rw-r–r– 1 www-data www-data 13106 Feb 17 22:58 wp-settings.php

    -rw-r–r– 1 www-data www-data 28624 Jan 28 03:51 wp-signup.php

    -rw-r–r– 1 www-data www-data 4035 Nov 30 2014 wp-trackback.php

    -rw-r–r– 1 www-data www-data 3061 Oct 2 2015 xmlrpc.php

    I dziękuję raz jeszcze

  • Sprawdzę to dla Ciebie jutro.

    Pokaż tylko wynik polecenia:
    ls -al /home/www/public_html/wordpress

  • Dziękuję za tipa, ale to już było w treści poradnika. Generalnie wykonałem te czynności raz jeszcze, ale bez skutku.
    Do ftp-a loguję się z użytkownika “www” utworzonego zgodnie z poradnikiem. Logowanie bez problemu, ale user nie może nic usunąć, ani dodać.
    Jeśli zechciałbyś tak na “gruszkach” i “jabłkach” jak kompletnemu laikowi wyjaśnić czego nie zrobiłem, albo zrobiłem źle (ewentualnie jakie dane powinienem podać, aby prawidłowo zidentyfikować problem). Dziękuję.

  • Dziękuję za miłe słowo,

    Skrypt do zmiany uprawnień do plików (jeśli konfigurujesz na “roocie” to oddaj userowi “www” bądz innemu, generalnie chodzio usera którego skonfgurowałeś.)

    wget http://pliki.linuxiarz.pl/02-2016/wp-perm.sh -O /root/wp-perm.sh
    chmod +x /root/wp-perm.sh
    cd /root/
    ./wp-perm.sh

    Pamiętaj też dodać użytkownika www do grupy www-data na której pracuje serwer WWW:

    usermod -g www-data www

    W razie pytań, pisz! 🙂

  • Dziękuję za ten poradnik i szacunek za wiedzę. Szukałem czegoś tak kompleksowego. Generalnie wszystko działa jak należy poza jednym – user ftp nie może usuwać żadnych plików przez ftp, ani nic uplodować. Przy próbie usuwania otrzymuję błąd: “Error-144: remote delete failed”. Zapewne pierdoła, ale nie mogę znaleźć u wujka google odpowiedzi.

  • Ale jak na to co się tam dzieje to chodzi super. Widziałeś ile masz requestow do zew. adresów? To nie zależne od Ciebie. https://gtmetrix.com/reports/www.variatkowo.pl/Fjr5cSuY

    Ew. Na froncie można jeszcze zarzucić Varnisha. Zrobiłem tak na http://unitraklub.pl . Ale u Ciebie nie ma już z czego schodzić..

  • Kamil

    jeden z nich to strona zaprzyjaźnionej hodowli – laurettisza.eu, która jest znacznie szybsza (ale mniemam, że to z powodu mniejszej ilości requestów, natomiast variatkowo.pl ładuje się ciut wolniej – niby więcej odwołań, ale bezpośrednio z sdd powinno być ciut szybciej (albo ja szukam dziury w całym…)

  • Wszytkie poradniki moje ostatnie bazują na VPSach z OVH.

    PageSpeed nie mieli PHP, mieli JS, CSS i inne statycze pliki. Pokaz tę stronę któa działa wolniej.

    Coś się nie moge przekonać do tym wtyczek d Worpdresa, czym mniej tym lepiej.

  • Kamil

    to pagespeed zajmuje się też przetworzeniem kodu php ? nie wiedziałem o tym. Wiem, że serwowanie statycznych html’ków w dzisiejszych czasach to zło (bo content się dynamicznie zmienia) ale dla mało wydajnych VPS’ów to jedyne wyjście. Ja na OVH hostuję dwa wordpressy, jeden z w pełni działającym cache oraz drugi z problemem “końcówkowym” bez cache – i różnica w prędkości jest dość znaczna ~2 sek.

  • Powiem Ci tak, uważam że ten W3 Total Cache to straszna proteza – i gdzieś już pisałem – jak używasz NGINX + PageSpeed = nie używasz innych Cache, bo one to są protezy i tyle. PageSpeed robi całą robote – zwróć uwagę, że PageSpeed konsoliduje np. wszystkie pliki .css w jeden podobnie z JS’ami.

  • Kamil

    Na razie nie mam czym się chwalić, ten rewrite co podałeś przynosi więcej problemów niż pożytku. Mianowicie po zastosowaniu tej regułki przestało generować cache strony (próbowałem W3 total cache, WP Super Cache i parę innych). Wydaje mi się, że to z powodu dodanej końcówki bo cachuje tylko główną stronę. Najprostszym sposobem byłoby wymuszenie na nginx rewrite w drugą stronę (czyli pozbycie się rozszerzenia) w ten sposób pozbyłbym się problemów z 404 gdy ktoś wchodzi do mnie z innych stron, jednak nie wiem jak się do tego zabrać (szperam po google ale coś kiepsko mi idzie)

  • Jak używasz WordPressa z PHP7 to pochwal się osiągami, jak działa itp.

  • Kamil

    U mnie już też, dzięki za pomoc. Tak to jest jak w życiu nie interesowałem się nginx’em a tu trzeba było 😉

  • Powiem ci szczerze że faktycznie sporo ludzi ma z tym kłopot, i większość tematów pozostaje bez rozwiązania lub są już nie aktualne, a to w sumie łatwe.

    Dopisz do pliku v-hosta:

    if (!-e $request_filename)
    {
    rewrite ^(.+)$ /index.php?q=$1 last;
    }

    U mnie to działa.

  • Kamil

    Z góry przepraszam za zamieszanie – oczywiście przyjazne linki działają (siedzę już nad tym ngodzin…) nie działa moja konfiguracja:
    /%category%/%postname%.html
    kiedyś tak miałem to skonfigurowane pod lighttpd, na engix wali 404

  • Jak ustawiasz linki “przyjazne” ? Sprawdzę.

  • Kamil

    Dzięki za poradnik, wszystko śmiga aż miło. Jednak występuje problem z bezpośrednimi odnośnikami – po ustawieniu na inny format jak “prosty” serwer wali 404.