Vanilla Forum recommended software stack:
mbstring
curl
gd
PDO
mysqli
openssl
Check the FreeBSD version.
uname -ro
# FreeBSD 12.0-RELEASE
Ensure that your FreeBSD system is up to date.
freebsd-update fetch install
pkg update && pkg upgrade -y
Install some basic system administration packages if they are not present on your system.
pkg install -y sudo vim unzip wget curl bash socat git unzip
Create a new user account with your preferred username (we will use johndoe
).
adduser
# Username: johndoe
# Full name: John Doe
# Uid (Leave empty for default): <Enter>
# Login group [johndoe]: <Enter>
# Login group is johndoe. Invite johndoe into other groups? []: wheel
# Login class [default]: <Enter>
# Shell (sh csh tcsh nologin) [sh]: bash
# Home directory [/home/johndoe]: <Enter>
# Home directory permissions (Leave empty for default): <Enter>
# Use password-based authentication? [yes]: <Enter>
# Use an empty password? (yes/no) [no]: <Enter>
# Use a random password? (yes/no) [no]: <Enter>
# Enter password: your_secure_password
# Enter password again: your_secure_password
# Lock out the account after creation? [no]: <Enter>
# OK? (yes/no): yes
# Add another user? (yes/no): no
# Goodbye!
Run the visudo
command and uncomment the %wheel ALL=(ALL) ALL
line to allow members of the wheel
group to execute any command.
visudo
# Uncomment by removing hash (#) sign
# %wheel ALL=(ALL) ALL
Now, switch to your newly created user with su
command.
su - johndoe
NOTE: Replace johndoe
with your username.
Set up the timezone.
sudo tzsetup
Install PHP and PHP extensions.
sudo pkg install -y php72 php72-mbstring php72-curl php72-gd php72-pdo php72-mysqli php72-pdo_mysql php72-json php72-openssl php72-ctype php72-dom php72-hash php72-iconv php72-tokenizer php72-calendar php72-fileinfo php72-session php72-simplexml php72-xml php72-filter
Check the version.
php --version
# PHP 7.2.14 (cli) (built: Jan 15 2019 01:14:39) ( NTS )
# Copyright (c) 1997-2018 The PHP Group
# Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Soft-link php.ini-production
to php.ini
.
sudo ln -s /usr/local/etc/php.ini-production /usr/local/etc/php.ini
Check installed PHP extensions.
php -m
# mbstring
# curl
# gd
# PDO
# mysqli
# openssl
# . . .
Enable and start PHP-FPM.
sudo sysrc php_fpm_enable=yes
sudo service php-fpm start
Install MariaDB.
sudo pkg install -y mariadb102-client mariadb102-server
Check the version.
mysql --version
# mysql Ver 15.1 Distrib 10.2.19-MariaDB, for FreeBSD12.0 (amd64) using readline 5.1
Start and enable MariaDB.
sudo sysrc mysql_enable="yes"
sudo service mysql-server start
Run the mysql_secure_installation
script to improve the security of your installation.
sudo mysql_secure_installation
Log into MariaDB as the root user.
mysql -u root -p
# Enter password:
Create a new database and user. Remember the credentials for this new user.
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
exit;
Install Nginx.
sudo pkg install -y nginx
Check the version.
nginx -v
# nginx version: nginx/1.14.2
Enable and start Nginx.
sudo sysrc nginx_enable=yes
sudo service nginx start
Configure Nginx for use with Vanilla forum.
sudo vim /usr/local/etc/nginx/vanilla.conf
Populate the file with the following.
server {
listen 80;
server_name example.com;
root /usr/local/www/vanilla;
index index.php;
location ~* /\.git { deny all; return 403; }
location /build/ { deny all; return 403; }
location /cache/ { deny all; return 403; }
location /cgi-bin/ { deny all; return 403; }
location /uploads/import/ { deny all; return 403; }
location /conf/ { deny all; return 403; }
location /tests/ { deny all; return 403; }
location /vendor/ { deny all; return 403; }
location ~* ^/index\.php(/|$) {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
try_files $fastcgi_script_name =404;
set $path_info $fastcgi_path_info;
fastcgi_param PATH_INFO $path_info;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_NAME /index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root/index.php;
fastcgi_param X_REWRITE 1;
fastcgi_pass 127.0.0.1:9000;
}
location ~* \.php(/|$) {
rewrite ^ /index.php$uri last;
}
location / {
try_files $uri $uri/ @vanilla;
}
location @vanilla {
rewrite ^ /index.php$uri last;
}
}
Save the file and exit with COLON+W+Q.
Now we need to include the vanilla.conf
file in the main nginx.conf
file.
Run sudo vim /usr/local/etc/nginx/nginx.conf
and add the following line to the http {}
block.
include vanilla.conf;
Test the configuration.
sudo nginx -t
Reload Nginx.
sudo service nginx reload
Create a document root directory.
sudo mkdir -p /usr/local/www/vanilla
Change ownership of the /usr/local/www/vanilla
directory to johndoe
.
sudo chown -R johndoe:johndoe /usr/local/www/vanilla
Navigate to the document root directory.
cd /usr/local/www/vanilla
Download the latest Vanilla forum.
wget https://open.vanillaforums.com/get/vanilla-core-2.6.4.zip
Unzip it and remove the zip archive.
unzip vanilla-core-2.6.4.zip
rm vanilla-core-2.6.4.zip
Change ownership of the /usr/local/www/vanilla
directory to www
.
sudo chown -R www:www /usr/local/www/vanilla
Restart PHP-FPM.
sudo service php-fpm restart
Navigate to the folder where you uploaded Vanilla in your web browser and follow the instructions on the screen to complete the setup.
]]>Check the CentOS version.
cat /etc/centos-release
# CentOS Linux release 7.5.1804 (Core)
Create a new non-root user account with sudo
access and switch to it.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
NOTE: Replace johndoe
with your username.
Set up the timezone.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Ensure that your system is up to date.
sudo yum update -y
Install necessary packages.
sudo yum install -y wget curl vim git
For simplicity, disable SELinux and Firewall.
sudo setenforce 0
sudo systemctl stop firewalld
sudo systemctl disable firewalld
Setup the Webtatic YUM repo.
sudo rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
Install PHP and required PHP extensions.
sudo yum install -y php70w php70w-cli php70w-fpm php70w-common php70w-xml php70w-gd php70w-zip php70w-mbstring php70w-mysql php70w-pgsql php70w-sqlite3 php70w-mcrypt php70w-apc
Check the version.
php --version
# PHP 7.0.30 (cli) (built: Apr 28 2018 08:14:08) ( NTS )
Start and enable PHP-FPM.
sudo systemctl start php-fpm.service
sudo systemctl enable php-fpm.service
Setup the MariDB repo. Run sudo vi /etc/yum.repos.d/MariaDB.repo
and populate it with the following.
[mariadb]
name = MariaDB
baseurl = https://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1
Install MariaDB database server.
sudo yum install -y MariaDB-server MariaDB-client
Check the version.
mysql --version
# mysql Ver 15.1 Distrib 10.2.16-MariaDB, for Linux (x86_64) using readline 5.1
Start and enable MariaDB.
sudo systemctl start mariadb.service
sudo systemctl enable mariadb.service
Run mysql_secure_installation
to improve security and set the password for the MariaDB root
user.
sudo mysql_secure_installation
Connect to the MariaDB shell as the root
user.
mysql -u root -p
# Enter password:
Create an empty MariaDB database and user for Cachet, and remember the credentials.
CREATE DATABASE dbname;
GRANT ALL ON dbname.* TO 'username' IDENTIFIED BY 'password';
FLUSH PRIVILEGES;
EXIT
Install Nginx.
sudo yum install -y nginx
Check the version.
nginx -v
# nginx version: nginx/1.12.2
Start and enable Nginx.
sudo systemctl start nginx.service
sudo systemctl enable nginx.service
Configure Nginx. Run sudo vim /etc/nginx/conf.d/cachet.conf
and populate the file with the following configuration.
server {
listen 80;
listen [::]:80;
server_name status.example.com; # Check this
root /var/www/cachet/public; # Check this
index index.php;
location / {
try_files $uri /index.php$is_args$args;
}
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000; # Check this
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_index index.php;
fastcgi_keep_conn on;
}
}
Test the configuration.
sudo nginx -t
Reload Nginx.
sudo systemctl reload nginx.service
Install Composer globally.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Check the version.
composer --version
# Composer version 1.6.5 2018-05-04 11:44:59
Create a document root directory.
sudo mkdir -p /var/www/cachet
Change ownership of the /var/www/cachet
directory to johndoe
.
sudo chown -R johndoe:johndoe /var/www/cachet
Download the Cachet source code with Git and checkout the latest tagged release.
cd /var/www/cachet
git clone https://github.com/cachethq/Cachet.git .
git tag -l
git checkout v2.3.15
Copy .env.example
to .env
file and configure the database and APP_URL
settings in .env
.
cp .env.example .env
vim .env
Install dependencies with composer.
composer install --no-dev -o
Set the application key.
php artisan key:generate
Install Cachet.
php artisan app:install
Change ownership of the /var/www/cachet
directory to nginx
.
sudo chown -R nginx:nginx /var/www/cachet
Run sudo vim /etc/php-fpm.d/www.conf
and set the user and group to nginx
. Initially, it will be set to apache
.
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Restart PHP-FPM.
sudo systemctl restart php-fpm.service
Open your site in a web browser and follow the instructions on the screen to finish Cachet installation. To access the Cachet dashboard append /dashboard
to your website URL.
Before you can install PyroCMS on a server, there are a few requirements that need to be met.
Check the CentOS version.
cat /etc/centos-release
# CentOS Linux release 7.4.1708 (Core)
Create a new non-root
user account with sudo
access and switch to it.
useradd -c "John Doe" johndoe && passwd johndoe
usermod -aG wheel johndoe
su - johndoe
NOTE: Replace johndoe
with your username.
Set up the timezone.
timedatectl list-timezones
sudo timedatectl set-timezone 'Region/City'
Ensure that your system is up to date.
sudo yum update -y
Install required and useful packages.
sudo yum install -y wget vim unzip bash-completion
Disable SELinux.
sudo setenforce 0
CentOS does not provide the latest PHP version in its default software repositories. We’ll need to add a Webtatic YUM repo.
Download and install PHP 7.2 and required PHP extensions.
sudo yum install -y php72w php72w-cli php72w-fpm php72w-mysql php72w-curl php72w-sqlite3 php72w-mbstring php72w-gd php72w-dom
Check PHP version.
php --version
PHP 7.2.2 (cli) (built: Feb 4 2018 10:14:07) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
Download and install MariaDB.
sudo vim /etc/yum.repos.d/MariaDB.repo
# Copy/paste this to the /etc/yum.repos.d/MariaDB.repo file
[mariadb]
name = MariaDB baseurl = https://yum.mariadb.org/10.2/centos7-amd64 gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB gpgcheck=1 sudo yum install -y MariaDB-server MariaDB-client
Check the MariaDB version.
mysql --version
# mysql Ver 15.1 Distrib 10.2.13-MariaDB, for Linux (x86_64) using readline 5.1
Start and enable MariaDB.
sudo systemctl enable mariadb.service
sudo systemctl start mariadb.service
Run the mysql_secure_installation
script to improve the security of your MariaDB installation.
sudo mysql_secure_installation
Log into MariaDB as the root user.
mysql -u root -p
# Enter password:
Create a new MariaDB database and user, and remember the credentials.
create database dbname;
grant all on dbname.* to 'username' identified by 'password';
Exit MySQL.
exit
Install NGINX.
sudo vim /etc/yum.repos.d/nginx_mainline.repo
# Copy/paste this to the /etc/yum.repos.d/nginx_mainline.repo file
[nginx]
name=nginx repo baseurl=https://nginx.org/packages/mainline/centos/7/$basearch/ gpgcheck=1 enabled=1 wget https://nginx.org/keys/nginx_signing.key sudo rpm –import nginx_signing.key rm nginx_signing.key sudo yum install -y nginx
Check the NGINX version.
nginx -v
Start and enable NGINX.
sudo systemctl enable nginx.service
sudo systemctl start nginx.service
Configure NGINX as a FastCGI proxy. Run sudo vim /etc/nginx/conf.d/pyro.conf
and populate it with the following text.
server {
listen 80;
server_name example.com; # Check this
root /var/www/pyro/public; # Check this
index index.php index.html;
charset utf-8;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000; # Check this
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
NOTE: Make sure to point the web root to Pyro’s public
directory.
Test the NGINX configuration.
sudo nginx -t
Reload NGINX.
sudo systemctl reload nginx.service
Download the Composer dependencies.
sudo yum install -y curl git unzip
Download and install Composer, the dependency manager for PHP.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php -r "if (hash_file('SHA384', 'composer-setup.php') === '544e09ee996cdf60ece3804abc52599c22b1f40f4323403c44d44fdfdd586475ca9813a858088ffbc1f233e9b180f061') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composer
Check the Composer version.
composer --version
# Composer version 1.6.3 2018-01-31 16:28:17
Create a document root directory.
sudo mkdir -p /var/www/pyro
Change the ownership of the /var/www/pyro
directory to johndoe
.
sudo chown -R johndoe:johndoe /var/www/pyro
Download the latest stable release of PyroCMS from the command line.
cd /var/www/pyro
composer create-project pyrocms/pyrocms .
NOTE: You may run out of memory when installing Pyro via Composer. It may be wise to stop Nginx, PHP-FPM and MySQL servers with sudo systemctl stop nginx.service php-fpm.service mysql.service
to save on memory usage and start them again after this step.
Change the ownership of the /var/www/pyro
directory to nginx
.
sudo chown -R nginx:nginx /var/www/pyro
Run sudo vim /etc/php-fpm.d/www.conf
and set the user and group to nginx
.
sudo vim /etc/php-fpm.d/www.conf
# user = nginx
# group = nginx
Restart the php-fpm.service
.
sudo systemctl restart php-fpm.service
Using your preferred web browser, open your site and follow the PyroCMS installer. After following the installer you will have PyroCMS up and running. To access the PyroCMS admin area, append /admin
to your site URL.
This guide was written for Vanilla Forums 2.3, but may also work on newer releases.
For this tutorial, we will use forum.example.com
as the domain name pointed towards the AKLWEB HOST instance. Please make sure to replace all occurrences of the example domain name with the actual one.
Install Apache.
sudo yum -y install httpd
Start Apache and enable it to automatically run at boot time.
sudo systemctl start httpd
sudo systemctl enable httpd
We will use PHP 7.1 to obtain maximum security and stability. First, add and enable the Remi repository.
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71
Install the latest version of PHP along with the modules required by Vanilla Forum.
sudo yum -y install php php-gd php-mysqli php-mbstring php-curl php-cli php-pear php-devel php-openssl
MariaDB is a fork of MySQL. Add the MariaDB repository into your system. The default YUM
repository contains an older version of MariaDB, which is unsupported by Vanilla.
echo "[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.2/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1" | sudo tee /etc/yum.repos.d/mariadb.repo
Install MariaDB.
sudo yum -y install mariadb mariadb-server
Start MariaDB and enable it to automatically start at boot time.
sudo systemctl start mariadb
sudo systemctl enable mariadb
Before configuring the database, you will need to secure MariaDB first.
sudo mysql_secure_installation
You will be asked for the current MariaDB root password. By default, there is no root password in a fresh MariaDB installation. Press the “Enter
” key to proceed. Set a strong password for the root
user of your MariaDB server and answer “Y
” to all of the other questions that are asked. The questions asked are self-explanatory.
Log into the MySQL shell as root.
mysql -u root -p
Provide the password for the MariaDB root user to log in.
Run the following queries to create a database and a database user for the Vanilla installation.
CREATE DATABASE vanilla_data CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE USER 'vanilla_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON vanilla_data.* TO 'vanilla_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
You can replace the database name vanilla_data
and username vanilla_user
according to your choice. Please make sure to change StrongPassword
to a very strong password.
Download the Vanilla forum zip archive.
wget https://open.vanillaforums.com/get/vanilla-core.zip
Install unzip.
sudo yum -y install unzip
Extract the archive.
sudo unzip vanilla-core.zip -d /var/www/vanilla
Provide the appropriate ownership.
sudo chown -R apache:apache /var/www/vanilla
Allow HTTP
traffic on port 80
through the firewall.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
Create a virtual host for your Vanilla forum site.
sudo nano /etc/httpd/conf.d/forum.example.com.conf
Populate the file.
<VirtualHost *:80>
ServerName forum.example.com
DocumentRoot /var/www/vanilla
<Directory /var/www/vanilla>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
</VirtualHost>
Restart Apache.
sudo systemctl restart httpd
Now that you have successfully installed and configured Vanilla forum, you can access the application on http://forum.example.com
. Provide the database and administrator details. Once you have provided the required database and admin details, the setup will write into the database and you will be taken to the administration interface. You can now configure the forum according to your needs.
Congratulations, you have successfully installed Vanilla forum in CentOS 7 server.
]]>In this tutorial, we will use crm.example.com
as the domain name pointed to the server. Replace all occurrences of crm.example.com
with your actual domain name.
OroCRM can be installed on any production web server supporting PHP. OroCRM supports all versions of PHP greater than 7.0. In this tutorial, we will use Nginx with PHP-FPM and PHP 7.1.
Install Nginx.
sudo yum -y install nginx
Start Nginx and enable it to automatically start at boot.
sudo systemctl start nginx
sudo systemctl enable nginx
PHP 7 is not available in the default YUM repository, but we can use the Remi repository to obtain and install the latest builds of PHP 7. First, add and enable the Remi repository.
sudo rpm -Uvh http://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum -y install yum-utils
sudo yum-config-manager --enable remi-php71
Install the latest version of PHP 7 along with the PHP modules required by OroCRM.
sudo yum -y install php php-fpm php-ctype php-curl php-fileinfo php-gd php-intl php-json php-mbstring php-mcrypt php-mysql php-pcre php-simplexml php-tokenizer php-xml php-zip php-tidy php-soap php-opcache php-posix
Edit the default PHP configuration file.
sudo nano /etc/php.ini
Find the following lines. Uncomment and make changes as shown.
date.timezone = Asia/Kolkata
;Replace "Asia/Kolkata" with your appropriate timezone
memory_limit = 512M
cgi.fix_pathinfo=0
Edit the PHP-FPM configuration file.
sudo nano /etc/php-fpm.d/www.conf
By default, PHP-FPM is configured to run with Apache and to listen to the port 9000
. We will need to change the user and group, as well as the Unix socket file on which it will run. Find the following lines and make necessary changes as shown.
user = nginx
group = nginx
;listen = 127.0.0.1:9000
;Comment out or remove the above line and add the following line.
listen = /var/run/php-fpm/php-fpm.sock
listen.owner = nobody
listen.group = nobody
Start PHP-FPM and enable it to start at boot.
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
Provide ownership of PHP-FPM socket file to Nginx user.
sudo chown nginx:nginx /var/run/php-fpm/php-fpm.sock
MariaDB is an open source fork of MySQL. Install MariaDB.
sudo yum -y install mariadb mariadb-server
Start MariaDB and enable it to automatically start at boot.
sudo systemctl start mariadb
sudo systemctl enable mariadb
The default installation of MariaDB comes with a few test databases and anonymous users. Before configuring the database, you will need to secure the MariaDB server first. You can secure it by running the mysql_secure_installation
script.
sudo mysql_secure_installation
You will be asked for the current MariaDB root password. By default, there is no root password in a fresh MariaDB installation. Press the Enter
key to proceed. Set a strong password for the root user of your MariaDB server and answer Y
to all the other questions asked. The questions asked are self-explanatory.
Log in to the MySQL shell as the root user by running.
mysql -u root -p
Provide the password for the MariaDB root user to log in.
Run the following queries to create a database and a database user for OroCRM installation.
CREATE DATABASE oro_data;
CREATE USER 'oro_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL PRIVILEGES ON oro_data.* TO 'oro_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
You can replace the database name oro_data
and username oro_user
according to your choice. Be sure to change StrongPassword
to a very strong password.
OroCRM also requires Node.js JavaScript runtime. Node.js will be used by OroCRM to compile the JavaScript, which is used to build the user interface of the application. The default repository of CentOS contains an outdated version of Node.js, thus you will need to add the Nodesource repository to your system to obtain the latest version.
sudo curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
Install Node.js and Git.
sudo yum -y install nodejs git
Git will be used to clone the OroCRM repository from the internet. You will also need to install Composer. Composer is a dependency manager tool for PHP applications. Because OroCRM is written in Symfony framework, you will need Composer to install the dependencies and application.
Install Composer.
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
Move Composer to the /usr/bin
directory so that it can be executed from anywhere in the system.
sudo mv composer.phar /usr/bin/composer
Provide execution permission to the Composer.
sudo chmod +x /usr/bin/composer
There are many ways to download OroCRM on your server. The most appropriate way to get the most updated version is to clone the repository through Git.
Clone the OroCRM repository.
cd /usr/share/nginx/
sudo git clone -b 2.3 https://github.com/oroinc/crm-application.git orocrm
Copy the example parameters
file to the default parameters
file used by OroCRM.
cd orocrm
sudo cp app/config/parameters.yml.dist app/config/parameters.yml
Before you can proceed further, you will need to update the parameters.yml
file to provide database and email information.
sudo nano app/config/parameters.yml
Find the following lines.
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: ~
database_name: oro_crm
database_user: root
database_password: ~
Update the above configuration according to the database you have created to store OroCRM data. In our case, it should look like this.
database_driver: pdo_mysql
database_host: 127.0.0.1
database_port: 3306
database_name: oro_data
database_user: oro_user
database_password: StrongPassword
If you have an SMTP server ready and you wish to use email sending features immediately, you can update the mailer settings as shown.
mailer_transport: smtp
mailer_host: mail.example.com
mailer_port: 456
mailer_encryption: ssl
mailer_user: mails@example.com
mailer_password: EMailPassword
If you do not have a mail server ready, you can skip it for now by leaving the existing values. You can always change email configuration through the dashboard.
Set a random string in secret
by replacing ThisTokenIsNotSoSecretChangeIt
. A random string is required to encode the session data. An example string will look like this.
secret: uxvpXHhDxCFc9yU1hV1fMwjSoyVUzGh4WBMBBBa3XEgrRUF5OuB2h8iNl9JRDqcd
You can generate a random string using the pwgen
utility. Install pwgen
utility by running sudo yum -y install pwgen
. To generate a random string, run pwgen -s 64 1
.
Save the file and exit from the editor. Install the required PHP dependencies through composer.
sudo composer install --prefer-dist --no-dev
Using --no-dev
will ensure that the Composer only installs the dependencies required to run the web server in production mode. The script will take a few minutes to download and install the required PHP dependencies.
Install the application.
sudo php app/console oro:install --env=prod
This will build the web cache and write the database. The --env=prod
parameter is provided to install the application in production mode. The installation will only proceed if all the required dependencies are installed and configured.
During the installation, you will be asked few questions for setting up the administrator account. The questions are as follows.
Administration setup.
Application URL (http://localhost): http://crm.example.com
Organization name (OroCRM): My Organization
Username (admin):
Email: mail@example.com
First name: John
Last name: Doe
Password:
Load sample data (y/n): y
Provide the information. Load the sample data to evaluate the product before using it for production.
Warm up the API documentation cache:
sudo php app/console oro:api:doc:cache:clear
Create an Nginx server block file to serve the application to the users.
sudo nano /etc/nginx/conf.d/orocrm.conf
Populate the file.
server {
server_name crm.example.com;
root /usr/share/nginx/orocrm/web;
location / {
# try to serve file directly, fallback to app.php
try_files $uri /app.php$is_args$args;
}
location ~ ^/(app|app_dev|config|install)\.php(/|$) {
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock;
fastcgi_split_path_info ^(.+\.php)(/.*)$;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param HTTPS off;
}
# Enable Gzip compression
gzip on;
gzip_buffers 16 8k;
gzip_comp_level 5;
gzip_disable "msie6";
gzip_min_length 1000;
gzip_http_version 1.0;
gzip_proxied any;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css image/svg+xml;
gzip_vary on;
# Enable browser caching
# One week for javascript and css
location ~* \.(?:css|js) {
expires 1w;
access_log off;
add_header Cache-Control public;
}
# Three weeks for media: images, fonts, icons, video, audio etc.
location ~* \.(?:jpg|jpeg|gif|png|ico|tiff|woff|eot|ttf|svg|svgz|mp4|ogg|ogv|webm|swf|flv)$ {
expires 3w;
access_log off;
add_header Cache-Control public;
}
error_log /var/log/nginx/orocrm_error.log;
access_log /var/log/nginx/orocrm_access.log;
}
Make sure that you change the crm.example.com
with your actual domain name. The above configuration also includes the configuration required for GZip compression and browser caching. Gzip compression compresses the data before sending it to the browser. Enabling browser caching stores the static resources to the web cache of the client computer. The next time the user accesses the site, most of the static content is loaded from the user’s own web cache. These two methods increase the speed of the application dramatically.
Check the Nginx configuration file for any errors.
sudo nginx -t
The output should look like the following.
[user@aklwebhost ~]$ sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
Provide the ownership of the OrOCRM files to the Nginx user.
sudo chown -R nginx:nginx /usr/share/nginx/orocrm
Restart Nginx to apply the new configuration.
sudo systemctl restart nginx
If you are running a firewall on your server, you will need to configure the firewall to set an exception for HTTP service. Allow Nginx to connect from outside the network.
sudo firewall-cmd --zone=public --permanent --add-service=http
sudo firewall-cmd --zone=public --permanent --add-service=https
sudo firewall-cmd --reload
You can now access the application at http://crm.example.com
. Log in using the administrator username and password you have set during installation.
To automatically run the scheduled tasks you can add a Cron job entry. Open crontab
.
sudo crontab -e
Add the following line to the file.
*/1 * * * * /usr/bin/php /usr/share/nginx/orocrm/app/console oro:cron --env=prod > /dev/null
This will run the cron job every minute so that the scheduled tasks such as email queues are processed earliest.
You will also need to setup Supervisor to run the Message Queue service. It is required that at least one process is running at all times for a consumer to process the messages. A consumer can normally interrupt the message process through many ways. To ensure that the service is running continuously, we will use the Supervisor service. We will configure Supervisor to run four processes in parallel. If any of the four processes is stopped for any reason, the Supervisor will try to start it again.
Install Supervisor.
sudo yum -y install supervisor
Edit the Supervisor configuration file.
sudo nano /etc/supervisord.conf
Add the following lines at the end of the file.
[program:oro_message_consumer]
command=/usr/bin/php /usr/share/nginx/orocrm/app/console --env=prod --no-debug oro:message-queue:consume
process_name=%(program_name)s_%(process_num)02d
numprocs=4
autostart=true
autorestart=true
startsecs=0
user=nginx
redirect_stderr=true
Start and enable Supervisor to automatically start at boot time.
sudo systemctl start supervisord
sudo systemctl enable supervisord
You can view the status of the processes by running the following.
sudo supervisorctl status
You should see that the processes are running.
[user@aklwebhost ~]$ sudo supervisorctl status
oro_message_consumer:oro_message_consumer_00 RUNNING pid 13596, uptime 0:02:13
oro_message_consumer:oro_message_consumer_01 RUNNING pid 13595, uptime 0:02:13
oro_message_consumer:oro_message_consumer_02 RUNNING pid 13594, uptime 0:02:13
oro_message_consumer:oro_message_consumer_03 RUNNING pid 13593, uptime 0:02:13
OroCRM is now installed on your server. You can now use the application to manage the routine tasks of your organization. To learn more about OroCRM, you can visit its official website.
]]>/var/www/html
.Since CentOS 7 is a 64-bit Linux distribution, you should download the ionCube 64-bit Linux package as follows:
cd
wget https://downloads.ioncube.com/loader_downloads/ioncube_loaders_lin_x86-64.tar.gz
sudo tar -zxvf ioncube_loaders_lin_x86-64.tar.gz -C /usr/lib64/php/modules
sudo chown -R root:root /usr/lib64/php/modules/ioncube
sudo cp /usr/local/ioncube/loader-wizard.php /var/www/html
sudo systemctl restart httpd.service
Now, an ionCube Loader setup script loader-wizard.php
has been copied to the web root directory /var/www/html
. We will use that script to Configure and test ionCube Loader on the server.
Note: This tutorial assumes your Document Root is /var/www/html
. If you have your web server configured differently, you need to place loader-wizard.php
in a directory where you can access it via your web browser.
http://203.0.113.1/loader-wizard.php
to enter the ionCube Loader Wizard
interface.ionCube
Loader Wizard
interface, choose the Dedicated or VPS (server with full root ssh access)
option.AKLWEB HOST
https://www.aklwebhost.com
Next
button.Note: If your version of PHP is different from PHP 7.1, you should specify the proper ionCube Loader file in above command accordingly. Use the command php -v
to confirm the PHP version.
ionCube Loader Wizard
interface, and then use the link click here to test the Loader
to test your installation.Loader Installed Successfully
message.That’s all. Having the ionCube Loader module properly installed, you are eligible to install any app licensed with ionCube on your server now. Enjoy it.
]]>PHP-based Zikula is an open-source framework for online applications. With Zikula, you can create editable and interactive webpages. It is a cross-platform program that works with every widely used operating system. For database-related tasks, Zikula uses Microsoft SQL Server, Oracle, PostgreSQL, and MySQL on the back end.
We’ll talk about installing Zikula on a CentOS 7 server in this article.
First, update your system to the latest stable version by running the following command:
sudo yum update -y
sudo reboot
You will need to install Apache, MariaDB, PHP and other required PHP modules on your system. You can install all of these packages with the following command:
sudo yum install httpd mariadb mariadb-server php php-common php-mysql php-mcrypt php-gd php-xml php-mbstring php-xmlrpc unzip wget -y
Once the installation is complete, start both Apache and MariaDB services and enable them to start at boot with the following commands:
sudo systemctl start httpd
sudo systemctl start mariadb
sudo systemctl enable httpd
sudo systemctl enable mariadb
MariaDB installation is not hardened, so you will need to secure it first. You can secure it with the following script:
sudo mysql_secure_installation
Answer all of the questions as follows.
Set root password? [Y/n] n
Remove anonymous users? [Y/n] y
Disallow root login remotely? [Y/n] y
Remove test database and access to it? [Y/n] y
Reload privilege tables now? [Y/n] y
Next, login to the MariaDB console.
mysql -u root -p
This will prompt you for a password, enter your MariaDB root password. After logging in, create a database for Zikula:
MariaDB [(none)]>CREATE DATABASE zikuladb;
MariaDB [(none)]>GRANT ALL PRIVILEGES on zikuladb.* to 'user'@'localhost' identified by 'password';
MariaDB [(none)]>FLUSH PRIVILEGES;
MariaDB [(none)]>exit
you will need to download the latest version of the Zikula CMS from GitHub. You can also download it using the wget
command.
wget https://github.com/zikula/core/releases/download/1.4.6/Zikula_Core-1.4.6.build119.zip
Extract the downloaded zip archive.
unzip Zikula_Core-1.4.6.build119.zip
Move the extracted directory into the Apache root directory.
sudo mv Zikula_Core-1.4.6 /var/www/html/zikula
Give necessary permission to zikula
directory.
sudo chown -R apache:apache /var/www/html/zikula
Before accessing Zikula, you will need to allow port 80
through firewalld. You can do this with the following command:
sudo firewall-cmd --permanent --zone=public --add-port=80/tcp
sudo firewall-cmd --reload
Open your web browser and type the URL http://192.168.15.110/install.php
or http://your-domain.com/install.php
, then complete the required the steps to finish the installation.
Thats it. You have successfully installed Zikula on your CentOS 7 server.
]]>The goal of affiliate marketing is to promote the goods of other companies in exchange for a commission. You will receive a predetermined commission from the business owner if the customer you suggested buys the product from the website.
Both the affiliate and the business owner gain from affiliate marketing. The vendor gains a new client, and the affiliate receives the commission.
Several bloggers own thousands of followers and generate substantial income with affiliate marketing; however, what if you lack such a large following or don’t have a blog website?
Do you have any chance of becoming an affiliate? ( Yes, is the response )
Your ultimate objective should be to become an affiliate marketer through blogging, as it is the most effective approach to accomplish affiliate marketing.
If you’re new to affiliate marketing and need help getting started or have questions about investing, you can experiment with numerous approaches.
You can eventually make some money by experimenting with various affiliate marketing strategies. After that, you can look into creating a website to generate additional revenue.
Using social media to generate revenue is one way to begin affiliate marketing.
In order to promote affiliate links on social media networks, you must first sign up for various affiliate programs. Regretfully, sharing affiliate links on certain networks is prohibited by certain affiliate programs. Nevertheless, we at AKLWEB HOST are aware of your circumstances and let you receive commissions from social media.
You can start by including your affiliate links in your profile, posts, updates, and stories.
For affiliate marketers like you, social networking sites with high traffic volumes like Facebook, Instagram, and Twitter can be quite beneficial. It is imperative that you adhere to all the guidelines and policies set forth by those sites.
Have you ever considered starting a channel on YouTube? Perhaps now would be a good moment for you to get started.
As the second-biggest search engine online, YouTube is regarded as a social networking platform that users utilize to get answers to their questions and product reviews before making a purchase.
If you’re not ready to put the money on a website, YouTube can be your best bet for affiliate marketing.
Although it could be challenging at first to gain viewers and subscribers to your channel, if you consistently publish insightful content, you will be able to grow a following and start earning money through affiliate marketing.
To learn more about YouTube Affiliate Marketing, check here.
Put Down Your Wonders and Get to Work!
When you set your mind to succeed, nothing can stop you from achieving your goals in affiliate marketing. Success requires dedication and patience.
Without any financial outlay, it is possible to enter the affiliate marketing business with commitment, opportunity, and the necessary efforts made in the right direction. To make history, never stop learning new tactics and putting them to use in your endeavors.
]]>