FreeBSD + Apache (apache24) + MySQL + PHP5 (php-fpm) + Wordpress
Procedures in this KB are based on articles
FreeBSD OS Configuration
/etc/rc.conf
hostname="fbsd01.dpasek.com"
ifconfig_vmx0="inet 192.168.58.1 netmask 255.255.255.0"
defaultrouter="192.168.58.254"
sshd_enable="YES"
ntpd_enable="YES"
ntpdate_enable="YES"
#VMware Tools
vmware_guest_vmblock_enable="YES"
vmware_guest_vmhgfs_enable="YES"
vmware_guest_vmmemctl_enable="YES"
vmware_guest_vmxnet_enable="YES"
vmware_guestd_enable="YES"
apache24_enable="YES"
mysql_enable="YES"
php_fpm_enable="YES"
Restart the network configuration:
/etc/rc.d/netif restart
/etc/rc.d/routing restart
Software installation
pkg update
pkg install open-vm-tools-nox11
pkg install git
pkg install apache24 mysql56-server php56 php56-extensions php56-zlib mod_php56 php56-mysql php56-mysqli php56-curl php56-mbstring
# php info
http://www.blackies.net/info.php
OS Tuning
Edit .profile
PS1="[${LOGNAME}@$(hostname)]$ "; export PS1
Prepare .gitconfig
For more info See. http://intkb.blogspot.cz/2016/01/github.html
// *********** github config
git config --global user.name "davidpasek"
git config --global user.email "david.pasek@gmail.com"
// *********** Clone existing github repository
git clone https://github.com/davidpasek/math4kids
MySQL Start service and DB Configuration
service mysql-server start
mysql_secure_installation
# Login to database as administrator
mysql -u root -p
# Show databases
show databases;
# Create databases - kayak
CREATE DATABASE kayak CHARACTER SET utf8 COLLATE utf8_bin;
# Create DB username - kayak with password kayak
grant all privileges on kayak.* to 'kayak'@'localhost' identified by "kayak";
Apache Configuration
service apache24 stop
/usr/local/etc/apache24/httpd.conf
ServerAdmin david.pasek@gmail.com
ServerName c4c.dpasek.com:80
<Directory />
AllowOverride none
# Require all denied
# Allow from all
Require all granted
</Directory>
DocumentRoot "/usr/local/www/apache24/data"
# Virtual hosts
Include etc/apache24/extra/httpd-vhosts.conf
LoadModule rewrite_module libexec/apache24/mod_rewrite.so
/usr/local/etc/apache24/Includes/php.conf
<IfModule dir_module>
DirectoryIndex index.php index.html
<FilesMatch "\.php$">
Sethandler application/x-httpd-php
</FilesMatch>
<FilesMatch "\.phps$">
Sethandler application/x-httpd-php-source>
</FilesMatch>
</IfModule>
/usr/local/etc/apache24/extra/httpd-vhosts.conf
<VirtualHost *:80>
ServerAdmin david.pasek@gmail.com
DocumentRoot "/usr/home/cdave/web/math4kids/"
ServerName m4k.dpasek.com
ServerAlias m4k.dpasek.com
Options Indexes FollowSymLinks Includes
ErrorLog "/var/log/m4k.dpasek.com-error.log"
CustomLog "/var/log/m4k.dpasek.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin david.pasek@gmail.com
DocumentRoot "/usr/home/cdave/web/flexbook-examples/"
ServerName flexbook.dpasek.com
ServerAlias flexbook.dpasek.com
Options Indexes FollowSymLinks Includes
ErrorLog "/var/log/flexbook.dpasek.com-error.log"
CustomLog "/var/log/flexbook.dpasek.com-access_log" common
</VirtualHost>
<VirtualHost *:80>
ServerAdmin david.pasek@gmail.com
DocumentRoot "/usr/home/cdave/web/kayak/"
ServerName kayak.dpasek.com
ServerAlias kayak.dpasek.com
Options Indexes FollowSymLinks Includes
ErrorLog "/var/log/kayak.dpasek.com-error.log"
CustomLog "/var/log/kayak.dpasek.com-access_log" common
</VirtualHost>
PHP Configuration
/usr/local/etc/php-fpm.conf
listen = /var/run/php-fpm.sock
listen.owner = www
listen.group = www
listen.mode = 0660
# Create /usr/local/etc/php.ini
cp /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Edit /usr/local/etc/php.ini
cgi.fix_pathinfo=0
session.save_path = "/tmp"
session.use_cookies = 1
session.use_only_cookies = 1
session.name = PHPSESSID
session.auto_start = 0
session.cookie_lifetime = 0
session.cookie_path = /
session.cookie_domain =
session.cookie_httponly =
session.serialize_handler = php
Final Apache restart and avalidation
# apache restart
service apache24 restart
# show current apache settings
apachectl -S
WordPress
# Change owner for directory where WordPress files exist
chown -R www:www kayak
Guidelines pro presun WordPressu (Lukas Frei)
(1)
zkopírovat wordpress složku
(2)
importovat databázi
- export originální databáze do souboru
- najít a vyměnit v souboru všechny instance domény
- ve wp-config.php jsou informace o databázi, změnit prefix podle originální db
- importovat tabulky originální db do čisté db
(3)
nastavit web server
- zapnout php a rewrite moduly
- změnit vlastníka wordpress složky na uživatele web serveru
- vygenerovat .htaccess (ve wordpress adminovi - nastavení -> trvalé odkazy)