Za instalaciju je potrebno imati ili root account ili sudo account. Ove upute pretpostavljaju da postoji sudo korisnik naziva moreuser s rwx pristupom direktoriju /home/moreuser
Za instalaciju Morepress-a (OJS i OMP) potrebno je nekoliko paketa koje možemo instalirati naredbom
sudo apt-get install git apache2 mysql-server php5 php-pear php5-mysql php5-curlNakon instalacije paketa, možemo klonirati git repozitorij u direktorij korisnika:
cd /home/moreuser
git clone -b morepress.unizd.hr https://github.com/tjakopec/morepress.gitSada moramo postaviti bazu kojoj će OJS pristupati i MySQL korisnika s pristupom toj bazi. Prvo se moramo ulogirati u MySQL kao root (lozinku smo postavili tijekom instalacije MySQL-a):
sudo mysql -u root -pZatim možemo napraviti bazu:
CREATE DATABASE ojs;Zatim napravimo MySQL korisnika koji će imati pristup navedenoj bazi. U ovim uputama koristit ćemo dbmoreuser i dbpassword kao pristupne podatke za MySQL:
CREATE USER 'dbmoreuser'@'localhost' IDENTIFIED BY 'dbpassword';Sada možemo korisniku dbmoreuser dati sve ovlasti nad bazom ojs:
GRANT ALL PRIVILEGES ON ojs.* TO 'dbmoreuser'@'localhost';I kao posljednji korak u MySQL-u primjeniti promjene:
FLUSH PRIVILEGES;Iz MySQL-a izlazimo s naredbom
exitNaš sljedeći korak sada je prilagodba Apache2, odnosno izrada konfiguracije za Morepress, što ćemo napraviti na sljedeći način:
cd /etc/apache2/sites-available
sudo nano morepress.unizd.hr.confSadržaj datoteke ovisi o tome postavljamo li testni ili produkcijski server. U ovim uputama, pretpostavit će se da je riječ o testnom serveru (u ovim primjerima kao testna adresa koristit će se more.test.com).
<VirtualHost *:80>
DocumentRoot /home/moreuser/morepress
ServerName more.test.com
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /home/moreuser/morepress>
# Options Indexes FollowSymLinks MultiViews
# AllowOverride None
# Order allow,deny
# allow from all
Require all granted
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Datoteku spremamo naredbom Ctrl+X i zatim Y.
Potrebno je i dozvoliti OJS-u mijenjanje linkova, što ćemo napraviti na sljedeći način:
cd /etc/apache2
sudo nano apache2.confDodavanjem sljedećeg na mjesto gdje su popisi direktorija:
<Directory /home/moreuser/morepress/>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Sada možemo uključiti konfiguraciju i resetirati Apache2:
sudo a2dissite 000-default.conf
sudo a2ensite morepress.unizd.hr.conf
sudo service apache2 reloadSljedeći korak je konfiguriranje OJS-a. Prvo moramo konfigurirati .htaccess datoteku:
cd /home/moreuser/morepress
sudo nano .htaccessPotrebno je promjeniti liniju
RewriteRule ^(.*) http://morepress.unizd.hr/journals [R,L]
tako da sadrži IP adresu ili URL adresu testnog servera (u ovim primjerima koristit će se more.test.com)
RewriteRule ^(.*) http://more.test.com/journals [R,L]
Ponovno spremimo promjene sa Ctrl+X i Y
Nakon toga moramo kopirati template konfiguracije OJS-a:
cd journals
cp config.TEMPLATE.inc.php config.inc.phpSlijedi nam naštimati config.inc.php prema postavkama poslužitelja:
nano config.inc.phpPotrebno je namjestiti sljedeće retke:
installed = On
base_url = "http://more.test.com"
restful_urls = On
[database]
username = dbmoreuser
password = dbpassword
name = ojs
; Default locale
locale = hr_HR
[files]
files_dir = /home/moreuser/ojs_files
I opet spremamo s Ctrl+X i Y.
Naredni koraci odnose se na unos svih podataka za bazu i datoteka s Morepress-a kako bi stranica funkcionirala, odnosno kako bi mogli s nečim raditi. Ovo se odnosi na
filesdirektorij sa svim potrebnim PDF-ovima, HTML-ovima itd. za člankecachedirektorij- SQL skriptu za bazu podataka
Navedeni direktoriji i datoteke sadrže stanje baze i podataka Morepress-a datuma 5. lipnja 2017. Ukoliko je iz nekog razloga za testni server potrebno dobiti novije podatke, oni se trebaju povući ili preko FTP-a ili preko rsync naredbe.
files direktorij povući ćemo wget naredbom s Dropbox-a. Direktorij se ne nalazi na git-u iz razloga što sadrži gotovo 5 GB podataka.
cd /home/moreuser
wget https://www.dropbox.com/s/p0cbk6mbkcdysgg/files_backup_20170605.tar.gz?dl=1
mv files_backup_20170605.tar.gz?dl=1 files_backup_20170605.tar.gz
tar xvzf files_backup_20170605.tar.gz
mv files ojs_files
rm files_backup_20170605.tar.gzIstu stvar ponovit ćemo s cache direktorijem, ali pod journals direktorijem:
cd morepress/journals
wget https://www.dropbox.com/s/2hk8g5ra5p3hvcj/cache_backup_20170605.tar.gz?dl=1
mv cache_backup_20170605.tar.gz?dl=1 cache_backup_20170605.tar.gz
tar xvzf cache_backup_20170605.tar.gz
rm cache_backup_20170605.tar.gzNakon toga, preostaje nam učitati SQL skriptu u našu bazu. SQL skripta također se preuzima preko wget naredbe s Dropboxa:
cd /home/moreuser
wget https://www.dropbox.com/s/hk6bv8bcgp2wr22/ojs_05-Jun-2017?dl=1
mv ojs_05-Jun-2017?dl=1 ojs_05-Jun-2017.sql
mysql -u dbmoreuser -pdbpassword ojs < ojs_05-Jun-2017.sqlKako bi Apache mogao napraviti rewrite index.php dijela iz URL-a potrebno je uključiti mod_rewrite na sljedeći način:
sudo a2enmod rewrite
sudo service apache2 restartNa poslijetku, potrebno je Apache korisniku www-data dati ovlasti nad pristupom direktoriju:
cd /home/moreuser
sudo chown www-data:moreuser -R morepress/I to je to! Morepress bi sada trebao raditi na testnom poslužitelju! Ali to nije sve ako želimo sve mogućnosti kao na produkciji. U sljedećem dijelu objasnit ćemo instalaciju Apache Solr/Lucene full-text pretraživanja i postavljanja cron poslova
solr i jetty direktoriji već su uključeni u Git repozitorij. Međutim, kako bi pokrenuli Solr, server nam mora imati Java pakete, koje ćemo instalirati naredbom:
sudo apt-get install default-jreNakon toga možemo pokrenuti Solr sljedećim naredbama:
cd /home/moreuser/morepress/journals/plugins/generic/lucene/embedded/bin
./start.shNAPOMENA: Apache Solr oduzima puno radne memorije, pogotovo ako server radi dugo vremena bez ponovnog pokretanja i ako kontanstno indeksira nove članke. Preporuča se barem 2GB RAM-a na serveru ako će full-text pretraživanja biti uključeno.
Ukoliko je iz nekog razloga potrebno ponovno indeksirati naslove, potrebno je obrisati postojeće indekse naredbom:
rm -R /home/moreuser/ojs_files/lucenea zatim pokrenuti reindeksiranje:
cd /home/moreuser/morepress/journals/tools
sudo php rebuildSearchIndex.phpZa pravilno funkcioniranje poslužitelja potrebno je i postaviti nekoliko cron poslova, i to kao moreuser korisnik:
crontab -eOJS statistiku pristupa člancima prikuplja preko Apache-a, ali kako to ne bi konstantno radio, što je zahtjevno za poslužitelj, nudi posebnu skriptu koja prikuplja log podatke Apache-a te sprema u vlastitu bazu u određenim intervalima. Na produkciji Morepress-a to je svakih pola sata (5.6.2017.). Za ovaj cron potrebno je prvo izraditi shell skriptu:
cd /home/moreuser
nano runstats.shU datoteku ćemo staviti sljedeće:
cd /home/moreuser/
sudo cp -p -r ojs_files/usageStats/usageEventLogs/. ojs_files/usageStats/stage/
sudo chmod -R 777 ojs_files/usageStats/
cd morepress/journals/
php tools/runScheduledTasks.php plugins/generic/usageStats/scheduledTasksAutoStage.xml
php tools/runScheduledTasks.php plugins/generic/usageStats/scheduledTasks.xml Ovu skriptu sada možemo staviti u crontab (odabrati 1 za nano):
crontab -eZa pokretanje skripte svakih pola sata potrebno je dodati sljedeću liniju na kraj datoteke (i obavezno ostaviti jedan prazan red na kraju datoteke!):
*/30 * * * * sudo bash /home/moreuser/runstats.shKao i uvijek, iz nano izlazimo sa Ctrl+X pa Y.
Kako ne bi ručno morali pokretati Solr server svaki put kad se poslužitelj iz nekog razloga resetira, možemo dodati sljedeći cron u crontab:
crontab -e
@reboot /home/moreuser/morepress/journals/plugins/generic/lucene/embedded/bin/start.shKao i uvijek, iz nano izlazimo sa Ctrl+X pa Y.
Radi sigurnosti baze podataka, možemo automatizirati i izradu backup-a naredbom mysqldump:
crontab -e
59 1 * * * /usr/bin/mysqldump -u dbmoreuser -p'dbpassword' ojs > /home/moreuser/cron_sqldump/ojs_$(date '+\%d-\%b-\%Y')Ova naredba stvarat će SQL kopije ojs baze svaki dan u 1:59 sati u folder cron_sqldump s nazivom ojs_DATUM.
Ukoliko imamo još jedan poslužitelj koji nam može poslužiti kao backup poslužitelj (i postavili smo SSH ključeve između oba poslužitelja), sljedećom cron naredbom možemo automatizirati backup:
5 2 * * * rsync -rtv /home/moreuser/ backup_user@backup_server:/home/backup_user/morepress_dnevni_backup/Ova naredba izvodi se svaki dan u 2:05 sati
NAPOMENA: S obzirom da je naziv backup direktorija fiksni, svaki sljedeći backup pregazit će postojeći. Ukoliko želimo svaki dan imati zasebni backup, potrebno je u naziv direktorija uvrstiti datum, npr. $(date '+\%d-\%b-\%Y'). Međutim, kako su direktoriji veliki, u ovom slučaju je potrebno na backup poslužitelju imati puno prostora.
Za tjedni backup naredba je:
5 2 * * 0 rsync -rtv /home/moreuser/ backup_user@backup_server:/home/backup_user/morepress_tjedni_backup/