Apache – cmd
how-to-create-a-ssl-certificate-on-apache-for-debian-8
Lista modułów, włączenie, wyłączenie
# a2enmod ssl # a2dismod ssl
Restart serwera
# service apache2 restart # systemctl restart apache2 # /etc/init.d/apache2 restart
Apache – włączenie ssl
Zakładając istnienie openSSL
# apt-get upgrade openssl
# a2enmod ssl ----------------- Considering dependency setenvif for ssl: Module setenvif already enabled Considering dependency mime for ssl: Module mime already enabled Considering dependency socache_shmcb for ssl: Enabling module socache_shmcb. Enabling module ssl. See /usr/share/doc/apache2/README.Debian.gz on how to configure SSL and create self-signed certificates. To activate the new configuration, you need to run: systemctl restart apache2
# a2ensite default-ssl ----------------- Enabling site default-ssl. To activate the new configuration, you need to run: systemctl reload apache2
# service apache2 reload
Windows – hosts
Uruchom Notepad jako administrator i wczytaj plik:
C:\Windows\System32\drivers\etc\hosts
Debian – releases
Nazwy kodowe i wersje
Debian "buster" - następna
Debian 9 ("stretch") — current stable release
Debian 8 ("jessie") — obsolete stable release
Debian 7 ("wheezy") — obsolete stable release
Debian 6.0 ("squeeze") — obsolete stable release
Debian GNU/Linux 5.0 ("lenny") — obsolete stable release
Sprawdzenie nazwy
uname -a Linux bora 4.9.0-3-686-pae #1 SMP Debian 4.9.30-2+deb9u3 (2017-08-06) i686 GNU/Linux
MySQL – install, config – linux
# apt-get install mysql-server
Konfiguracja poinstalacyjna np. ustawienie haseł
# mysql_secure_installation
# mysql -u root -p
Utworzenie bazy danych, użytkownika i uprawnienia
> create database testdb; > create user 'tester'@'localhost' identified by 'mypass'; > grant all on testdb.* to 'tester';
Utworzenie usera w czasie przydzielania uprawnień
> grant all on testdb.* to 'testuser' identified by 'mypassword';
Sprawdzenie uprawnień
> show grants for testuser;
MySQL – extract()
Zwraca składnik z daty np. rok
SELECT EXTRACT( MONTH FROM "2017-06-15" );
Bootstrap 4 – display
Wymuszenie https://
Plik .htaccess
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
Dane Strukturalne
Bootstrap 4 – flex
Bootstrap 4 – margins
.no-gutters - usuwa margin i padding z kolumn
.mt-0 - margin-top: 0; .mr-3 .ml-3 .mb-1 .my-4 .pr-3
Bootstrap 4 – .hidden
xs: < 544px sm: 544-768px md: 768-992px lg: 992-1200px xl: >= 1200px
.hidden-xs-down .hidden-md-down .hidden-lg-down .hidden-xl-down .hidden-xs-up .hidden-sm-up .hidden-md-up .hidden-lg-up .hidden-xl-up
.visible-print-block .visible-print-inline .visible-print-inline-block .hidden-print
https://v4-alpha.getbootstrap.com/layout/responsive-utilities/
Ajax Headers
Typowy Request jQuery Ajax
var url = '/controller/action.json'
var data_obj = {
ulica : 'Marszałkowska',
miasto : 'Warszawa'
};
data = JSON.stringify( data_obj );
$.ajax({
type : 'post',
dataType : 'json',
data : data,
url : url,
success : function(response) {
renderResult(response);
},
error : function(e) { alert( e.message ); }
});
Ustawianie nagłówków dla Request
$.ajax({
beforeSend : function(xhr) {
xhr.setRequestHeader('X-Test-Hdr', 'Test');
},
headers: {
'header1': 'value1',
'header2': 'value2'
},
contentType: 'application/json; charset=utf-8',
});
Domyślny nagłówek dla żądań AJAX
X-Requested-With: XMLHttpRequest
xhrobj.setRequestHeader("X-Requested-With", "XMLHttpRequest");
SQL Update INNER JOIN
MySQL DATE_FORMAT()
DATE_FORMAT("2017-06-15", "%Y")
MySQL Adddate()
Zwraca nową datę po dodaniu odcinka czasu
ADDDATE( date, INTERVAL expr unit) ); ADDDATE( expr, days) );
Dodaje 10 dni do podanej daty (pierwszy argument)
SELECT ADDDATE( '2010-02-15', INTERVAL 10 DAY ) AS new_date; new_date -------------- 2010-02-25
MySQL Datediff()
Zwraca ilość dni pomiędzy dwoma datami lub znacznikami czasu
DATEDIFF( expr1, expr2 );
SELECT DATEDIFF( '2008-05-17 11:31:31','2008-04-28' ) ;
+----------------------------------------------+
| DATEDIFF('2008-05-17 11:31:31','2008-04-28') |
+----------------------------------------------+
| 19 |
+----------------------------------------------+
MySQL Coalesce()
Zwraca pierwszą wartość (z listy argumentów) niebędącą NULL lub NULL (jeśli takiej nie ma)
COALESCE( value1, value2, value3, ...)
Zwraca imię oraz pierwszy z maili – argumentami są nazwy kolumn
SELECT name, COALESCE( email_company, email_private, email_social) FROM users;
Linux Debian – zmiana daty
Odczyt z biosu – czas hardware’owy
# hwclock -r
Ustawienie nowej wartości
# hwclock --set --date="2017-08-02 12:19"
Przepisanie czasu hw do czasu systemowego
# hwclock -s
Sprawdzenie daty systemowej
# date śro, 2 sie 2017, 12:19:29 CEST
Favicon
<link rel="icon" type="image/png" href="/favicon.png" />
sitemap.xml
<?xml version="1.0" encoding="UTF-8"?> <urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9"> <url><loc>https://nazwaserwera.pl/</loc></url> <url><loc>https://nazwaserwera.pl/O-nas</loc></url> <url><loc>https://nazwaserwera.pl/Promocje</loc></url> <url><loc>https://nazwaserwera.pl/Cennik</loc></url> <url><loc>https://nazwaserwera.pl/Zamowienie</loc></url> <url><loc>https://nazwaserwera.pl/Kontakt</loc></url> <url><loc>https://nazwaserwera.pl/Regulamin</loc></url> </urlset>
Nowa wersja sitemap 4
https://www.sitemaps.org/protocol.html https://www.arnebrachhold.de/projects/wordpress-plugins/google-xml-sitemaps-generator/google-xml-sitemap-generator-new-sitemap-format/
<?xml version="1.0" encoding="utf-8"?>
<urlset xmlns="https://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xmlns:image="https://www.google.com/schemas/sitemap-image/1.1" xsi:schemaLocation="https://www.sitemaps.org/schemas/sitemap/0.9 https://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
<url>
<loc>https://topdieta.pl/</loc>
<lastmod>2017-07-25</lastmod>
<changefreq>daily</changefreq>
<priority>1.0</priority>
<image:image>
<image:loc>https://topdieta.pl/wp-content/uploads/2017/05/dieta.jpg</image:loc>
<image:title></image:title>
</image:image>
</url>
<url>
<loc>https://topdieta.pl/faq/</loc>
<lastmod>2017-07-25</lastmod>
<changefreq>daily</changefreq>
<priority>0.9</priority>
<image:image>
<image:loc>https://topdieta.pl/wp-content/uploads/2017/04/FAQ.jpg</image:loc>
<image:title>FAQ-Top_Dieta</image:title>
</image:image>
</url>
</urlset>
robots.txt
User-agent: * Allow: / Sitemap: https://nazwaserwera.pl/sitemap.xml
.htaccess – usunięcie duplikatów
Usunięcie przedrostka www z adresów URL
.htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^www.nazwaserwera.pl(.*) [NC]
RewriteRule ^(.*)$ https://nazwaserwera.pl/$1 [R=301,L]
Legenda:
[NC] - nocase - dopasowanie bez uwzględniania wielkości liter [R=301] - redirect - wymusza przekierowanie, Kod 301 - moved permamently - trwale przeniesiony (w przyszłości należy szukać pod nowym adresem) [L] - last - przestaje stosować reguły przekształcania
WordPress – form – email / opisy pól
Formularz wysyła na adres: wp_admin (podany w konfiguracji)
Pola tytułów i placeholer można zmienić w :
/WP_DD/wp-content/plugins/trx_addons/shortcodes/form/tpl_default.php /WP_DD/wp-content/plugins/trx_addons/shortcodes/form/form.php /WP_DD/wp-content/themes/greenbox/trx_addons/shortcodes/form/tpl.detailed.php
Komunikaty wysyłki emaila można zmienić w:
/WP_DD/wp-content/plugins/trx_addons/lagnuages/trx_addons.pot
Wtyczki
Kompresja zdjęć:
https://pl.wordpress.org/plugins/wp-smushit/
CakePHP 3 – konfiguracja
Strefa czasowa: config/bootstrap.php
date_default_timezone_set('Europe/Warsaw');
CakePHP 3 – Date
W kontrolerze:
use Cake\I18n\Date;
Przy kopiowaniu rekordu na następny miesiąc przesuwa datę o 1 miesiąc:
$data = new Date( $record->data );
$data->modify('+1 month');
Bootstrap 4 dołączenie skryptów
https://v4-alpha.getbootstrap.com/
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/css/bootstrap.min.css" integrity="sha384-rwoIResjU2yc3z8GV/NPeZWAv56rSmLldC3R/AZzGRnGxQQKnKkoFVhFQhNUwEyJ" crossorigin="anonymous">
<script src="https://code.jquery.com/jquery-3.1.1.slim.min.js" integrity="sha384-A7FZj7v+d/sdmMqp/nOQwliLvUsJfDHW+k9Omg/a/EheAdgtzNs3hpfag6Ed950n" crossorigin="anonymous"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/tether/1.4.0/js/tether.min.js" integrity="sha384-DztdAPBWPRXSA/3eYEEUWrWCy7G5KFbe8fFjk5JAIxUYHKkDx6Qin1DkWx51bBrb" crossorigin="anonymous"></script>
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0-alpha.6/js/bootstrap.min.js" integrity="sha384-vBWWzlZJ8ea9aCX4pEW3rVHjgjt7zpkNpZk+02D9phzyeVkE+jo0ieGizqPLForn" crossorigin="anonymous"></script>
CakePHP 3 instalacja
# curl -s https://getcomposer.org/installer | php
# php composer.phar create-project --prefer-dist cakephp/app projekty
- /config/app
- baza danych: Datasources => default => (host, user, password, dbname)
- Security: zmienić ciąg security salt
- /config/bootstrap.php
- date_default_timezone_set(’Europe/Warsaw’);
# cd projekty # bin/cake bake all users # bin/cake bake all projects # bin/cake bake all groups