Site Tools

 
 
 

step-by-step_guide_for_setting_up_a_simple_lamp_server_capable_of_running_efrontpro

Step-by-step guide for setting up a simple LAMP server capable of running eFrontPro

This document will guide you through the process of setting up a Linux server capable of running eFrontPro with default settings, suitable for a simple application.

You will need a Centos 7 server with ssh access - get the image. After this is prepared, follow these steps:

  • Use ssh to sign into your server, using the root account
  • Run yum upgrade To bring the system up-to-date with the latest patches
  • Install mariadb: yum install mariadb, mariadb-server
  • Enable the query cache:
    • edit the file /etc/my.cnf
    • Add the following lines inside the [mysqld] section:
  query_cache_type = 1
  query_cache_limit = 1M
  query_cache_size = 64M
  • Start mariadb: /bin/systemctl start mariadb.service
  • Run mysql_secure_installation to setup mariadb
  • Make sure mariadb starts automatically: systemctl enable mariadb.service
  • Connect to mariadb and add a user and database for efrontpro:
MariaDB> create database efrontpro
MariaDB> grant all privileges on efrontpro.* to 'efrontpro'@'localhost' identified by '<dbpass>'
MariaDB> flush privileges
  • Install apache: yum install httpd
  • Make sure apache starts automatically: systemctl enable httpd.service
  • Centos7 by default comes with PHP 5.4, which is not sufficient for eFrontPro. We must enable the webtatic repo to install PHP 5.6:
[root]# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
[root]# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
  • Install php 5.6: yum install php56w php56w-opcache php56w-mysqli php56w-mbstring.x86_64 php56w-tidy php56w-gd php56w-xml php56w-mcrypt php56w-dom php56w-ldap
  • Install APCu: yum install php56w-pecl-apcu.x86_64
  • (optional step) Install oAuth:
[root]# yum install php56w-devel
[root]# yum install gcc
[root]# pecl install oauth-1.2.3
  • (optional step for oauth) Edit the file /etc/php.ini and add the line extension=oauth.so (you can add this at the bottom)
  • Set proper PHP limits: Edit the file /etc/php.ini and change max_execution_time, memory_limit and upload_max_filesize:
upload_max_filesize = 100M
post_max_size = 100M
memory_limit=512M
  • Edit the file /etc/httpd/conf/httpd.conf and add a line at the bottom with: IncludeOptional sites.d/*.conf
  • In the same file, change the ServerName option to match the server’s domain name or IP address
  • Create a conf file for the Virtual Host:
[root]# mkdir /etc/httpd/sites.d
[root]# vi /etc/httpd/sites.d/efrontpro.conf
  • Add the following lines inside the newly created file efrontpro.conf:
<VirtualHost  *:80>
  ServerName <hostname>
  ServerAlias *.<hostname>
  DocumentRoot "/var/www/efrontpro/www/" 
  ErrorLog /var/log/httpd/efrontpro-error.log
  CustomLog /var/log/httpd/efrontpro-access.log combined
  <Directory "/var/www/efrontpro/www/">
    AllowOverride All
  </Directory>
</VirtualHost>
  • Upload the efront zip file (for example, efrontpro-4.3.3.zip) to the server and extract to the proper location:
[root]# mkdir /var/www/efrontpro
[root]# cd /var/www/efrontpro
[root]# mv ~/efrontpro-4.3.3.zip .
[root]# unzip efrontpro-4.3.3.zip
[root]# rm efrontpro-4.3.3.zip
[root]# chown -R apache:apache .

Heads up! The last command enables the user running apache to change any of the platform's files. This simplifies things but is potentially unsafe. In production configurations, it is recommended to give write access only to the folders temp/, backups/, www/content/ and, for the duration of the installation, to libraries/

  • Restart apache with systemctl start httpd.service
  • Setup a cron job. Run crontab -e and add the following lines, replacing <hostname> with the actual domain name of your installation
MAILTO=""
*/3 * * * * /usr/bin/php /var/www/efrontpro/www/cron.php http://<hostname>
  • Everything's ready! If you visit the server's URL in the browser, for example http://efront.example.com, you should see the installation wizard's first page. Follow the on-screen instructions to setup eFrontPro and you're done!