{"id":7423,"date":"2018-12-07T17:54:25","date_gmt":"2018-12-07T14:54:25","guid":{"rendered":"https:\/\/www.howtoforge.com\/tutorial\/how-to-install-processwire-cms-on-ubuntu-1804\/"},"modified":"2018-12-07T17:54:25","modified_gmt":"2018-12-07T14:54:25","slug":"how-to-install-processwire-cms-on-ubuntu-18-04-lts","status":"publish","type":"post","link":"https:\/\/afaghhosting.net\/blog\/how-to-install-processwire-cms-on-ubuntu-18-04-lts\/","title":{"rendered":"How to Install ProcessWire CMS on Ubuntu 18.04 LTS"},"content":{"rendered":"<p>ProcessWire is a free and open source PHP-based content management system and content management framework. It is a simple, flexible and powerful CMS built to save you time and work the way you do. ProcessWire provides easy to use web interface that enables you to publish websites easily. It is specially designed for ease of use that allows you to create powerful and dynamic content websites.<\/p>\n<p><strong>Features<\/strong><\/p>\n<ul>\n<li>Role-based access control system.<\/li>\n<li>Web-based graphical installer.<\/li>\n<li>Provides fully modular plugin architecture and powerful template system.<\/li>\n<li>Multi language support.<\/li>\n<li>Supports rich text editing.<\/li>\n<li>Drag-and-drop file and image uploads and editing functions.<\/li>\n<\/ul>\n<p>In this tutorial, I will explain how to install ProcessWire with Apache web server on Ubuntu 18.04 LTS.<\/p>\n<h2 id=\"requirements\">Requirements<\/h2>\n<ul>\n<li>A server running Ubuntu 18.04..<\/li>\n<li>A non-root user with sudo privileges.<\/li>\n<\/ul>\n<h2 id=\"getting-started\">Getting Started<\/h2>\n<p>Before starting, you will need to update your system with the latest version. You can do this by running the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo apt-get update -y<br\/>sudo apt-get upgrade -y<\/code><\/pre>\n<p>Once your system is updated, restart the system to apply the changes.<\/p>\n<h2 id=\"install-apache-mariadb-and-php\">Install Apache, MariaDB and PHP<\/h2>\n<p>First, you will need to install Apache web server, MariaDB server, PHP and other PHP modules to your server. You can install all the packages by just running the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo apt-get install apache2 mariadb-server unzip wget php7.2 php7.2-mysql php7.2-curl php7.2-json php7.2-cgi libapache2-mod-php7.2 php7.2-xmlrpc php7.2-gd php7.2-mbstring php7.2 php7.2-common php7.2-xmlrpc php7.2-soap php7.2-xml php7.2-intl php7.2-cli php7.2-ldap php7.2-zip php7.2-readline php7.2-imap php7.2-tidy php7.2-recode php7.2-sq php7.2-intl -y<\/code><\/pre>\n<p>Once all the packages are installed, open php.ini file and make some changes:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo nano \/etc\/php\/7.2\/apache2\/php.ini<\/code><\/pre>\n<p>Make the following changes:<\/p>\n<pre>memory_limit = 300M&#13;\nupload_max_filesize = 200M&#13;\nmax_execution_time = 400&#13;\ndate.timezone = Asia\/Kolkata&#13;\n<\/pre>\n<pre class=\"command\"><code spellcheck=\"false\">sudo systemctl restart apache2<br\/>sudo systemctl restart mariadb<br\/>sudo systemctl enable apache2<br\/>sudo systemctl enable mariadb<\/code><\/pre>\n<p>You can now check the status of MariaDB service with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo systemctl status mariadb<\/code><\/pre>\n<p>Output:<\/p>\n<pre>? mariadb.service - MariaDB 10.1.34 database server&#13; Loaded: loaded (\/lib\/systemd\/system\/mariadb.service; enabled; vendor preset: enabled)&#13; Active: active (running) since Sat 2018-12-01 22:46:13 UTC; 9h ago&#13; Docs: man:mysqld(8)&#13; https:\/\/mariadb.com\/kb\/en\/library\/systemd\/&#13; Process: 1317 ExecStartPost=\/bin\/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0\/SUCCESS)&#13; Process: 1313 ExecStartPost=\/etc\/mysql\/debian-start (code=exited, status=0\/SUCCESS)&#13; Process: 935 ExecStartPre=\/bin\/sh -c [ ! -e \/usr\/bin\/galera_recovery ] &amp;&amp; VAR= || VAR=`\/usr\/bin\/galera_recovery`; [ $? -eq 0 ] &amp;&amp; systemc&#13; Process: 931 ExecStartPre=\/bin\/sh -c systemctl unset-environment _WSREP_START_POSITION (code=exited, status=0\/SUCCESS)&#13; Process: 819 ExecStartPre=\/usr\/bin\/install -m 755 -o mysql -g root -d \/var\/run\/mysqld (code=exited, status=0\/SUCCESS)&#13; Main PID: 1164 (mysqld)&#13; Status: \"Taking your SQL requests now...\"&#13; Tasks: 27 (limit: 2323)&#13; CGroup: \/system.slice\/mariadb.service&#13; ??1164 \/usr\/sbin\/mysqld&#13;\n&#13;\nDec 01 22:45:54 ubuntu1804 systemd[1]: Starting MariaDB 10.1.34 database server...&#13;\nDec 01 22:46:05 ubuntu1804 mysqld[1164]: 2018-12-01 22:46:05 140324667522176 [Note] \/usr\/sbin\/mysqld (mysqld 10.1.34-MariaDB-0ubuntu0.18.04.1) &#13;\nDec 01 22:46:13 ubuntu1804 \/etc\/mysql\/debian-start[1318]: Upgrading MySQL tables if necessary.&#13;\nDec 01 22:46:13 ubuntu1804 systemd[1]: Started MariaDB 10.1.34 database server.&#13;\n<\/pre>\n<h2 id=\"configure-mariadb\">Configure MariaDB<\/h2>\n<p>By default, MariaDB installation is not secured. So, you will need to secure it first. You can secure it by running the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo mysql_secure_installation<\/code><\/pre>\n<p>Answer all the questions as shown below:<\/p>\n<pre> Enter current password for root (enter for none):&#13; Set root password? [Y\/n]: N&#13; Remove anonymous users? [Y\/n]: Y&#13; Disallow root login remotely? [Y\/n]: Y&#13; Remove test database and access to it? [Y\/n]: Y&#13; Reload privilege tables now? [Y\/n]: Y&#13;\n<\/pre>\n<p>Once the MariaDB is secured, log in to MariaDB shell:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">mysql -u root -p<\/code><\/pre>\n<p>Provide your root password. Then, create a database and user for ProcessWire with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">MariaDB [(none)]&gt; CREATE DATABASE processdb;<br\/>MariaDB [(none)]&gt; CREATE USER process;<\/code><\/pre>\n<p>Next, grant privileges to the ProcessWire database with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">MariaDB [(none)]&gt; GRANT ALL PRIVILEGES ON processdb.* TO 'process'@'localhost' IDENTIFIED BY 'password';<\/code><\/pre>\n<p>Next, flush the privileges with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">MariaDB [(none)]&gt; FLUSH PRIVILEGES;<\/code><\/pre>\n<p>Next, exit from the MariaDB console with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">MariaDB [(none)]&gt; exit<\/code><\/pre>\n<h2 id=\"download-and-install-processwire\">Download and Install ProcessWire<\/h2>\n<p>You can download the latest version of ProcessWire from Git repository using the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">wget https:\/\/github.com\/processwire\/processwire\/archive\/master.zip<\/code><\/pre>\n<p>After downloading, unzip the downloaded file with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">unzip master.zip<\/code><\/pre>\n<p>Next, copy the extracted directory to the Apache web root directory with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo cp -r processwire-master \/var\/www\/html\/processwire<\/code><\/pre>\n<p>Next, give proper permissions to the processwire directory with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo chown -R www-data:www-data \/var\/www\/html\/processwire\/<br\/>sudo chmod -R 777 \/var\/www\/html\/processwire\/<\/code><\/pre>\n<h2 id=\"configure-apache-for-processwire\">Configure Apache for ProcessWire<\/h2>\n<p>Next, you will need to create an Apache virtual host file for ProcessWire. You can do this by running the following command:<\/p>\n<p>sudo nano \/etc\/apache2\/sites-available\/processwire.conf<\/p>\n<p>Add the following lines:<\/p>\n<pre>&lt;VirtualHost *:80&gt;&#13; ServerAdmin <a href=\"https:\/\/www.howtoforge.com\/cdn-cgi\/l\/email-protection\" class=\"__cf_email__\" data-cfemail=\"c8a9aca5a1a688adb0a9a5b8a4ade6aba7a5\" target=\"_blank\" rel=\"noopener\">[email\u00a0protected]<\/a>&#13; DocumentRoot \/var\/www\/html\/processwire&#13; ServerName example.com&#13;\n&#13; &lt;Directory \/var\/www\/html\/processwire\/&gt;&#13; Options +FollowSymlinks&#13; AllowOverride All&#13; Require all granted&#13; &lt;\/Directory&gt;&#13;\n&#13; ErrorLog ${APACHE_LOG_DIR}\/processwire_error.log&#13; CustomLog ${APACHE_LOG_DIR}\/processwire_access.log combined&#13;\n&#13;\n&lt;\/VirtualHost&gt;&#13;\n<\/pre>\n<p>Save and close the file, when you are finished. Then, enable Apache virtual host file and rewrite module with the following command:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo a2ensite processwire.conf<br\/>sudo a2enmod rewrite<\/code><\/pre>\n<p>Finally, restart Apache service to apply all the changes:<\/p>\n<pre class=\"command\"><code spellcheck=\"false\">sudo systemctl restart apache2<\/code><\/pre>\n<h2 id=\"access-processwire\">Access ProcessWire<\/h2>\n<p>Open your web browser and type the URL http:\/\/example.com. You will be redirected to the ProcessWire Welcome page:<\/p>\n<p><a class=\"fancybox\" id=\"img-page1\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page1.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts.png\" alt=\"ProcessWire Installer\" width=\"550\" height=\"263\" title=\"\"><\/a><\/p>\n<p>Now, click on the <strong>Get Started<\/strong> button. You should see the following page:<\/p>\n<p><a class=\"fancybox\" id=\"img-page2\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page2.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-1.png\" alt=\"Site Installation Profile\" width=\"550\" height=\"292\" title=\"\"><\/a><\/p>\n<p>Select Classic site installation profile and click on the <strong>Continue<\/strong> button. You should see the following page:<\/p>\n<p><a class=\"fancybox\" id=\"img-page3\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page3.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-2.png\" alt=\"Compatibility Check\" width=\"550\" height=\"300\" title=\"\"><\/a><\/p>\n<p>After validating all the requirements, click on the <strong>Continue<\/strong> <strong>To Next Step<\/strong> button. You should see the following page:<\/p>\n<p><a class=\"fancybox\" id=\"img-page4.1_\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page4.1_.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-3.png\" alt=\"Database setup\" width=\"550\" height=\"239\" title=\"\"><\/a><\/p>\n<p><a class=\"fancybox\" id=\"img-page4.2_\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page4.2_.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-4.png\" alt=\"Timezone and file permissions\" width=\"550\" height=\"278\" title=\"\"><\/a><\/p>\n<p><a class=\"fancybox\" id=\"img-page4.3_\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page4.3_.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-5.png\" alt=\"HTTP Host Name\" width=\"550\" height=\"208\" title=\"\"><\/a><\/p>\n<p>Here, provide your database details like, hostname, database name, database username and password, Timezone. Then, click on the <strong>Continue<\/strong> button. You should see the following page:<\/p>\n<p><a class=\"fancybox\" id=\"img-page5.1_\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page5.1_.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-6.png\" alt=\"Test Database configuration\" width=\"550\" height=\"263\" title=\"\"><\/a><\/p>\n<p><a class=\"fancybox\" id=\"img-page5.2_\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page5.2_.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-7.png\" alt=\"Admin account setup\" width=\"550\" height=\"228\" title=\"\"><\/a><\/p>\n<p><a class=\"fancybox\" id=\"img-page5.3_\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page5.3_.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-8.png\" alt=\"Cleanup\" width=\"550\" height=\"205\" title=\"\"><\/a><\/p>\n<p>Here, provide your Admin login URL, admin username and password. Then, click on the <strong>Continue<\/strong> button. Once the installation completed successfully, you should see the following page:<\/p>\n<p><a class=\"fancybox\" id=\"img-page6\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page6.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-9.png\" alt=\"Setup completed\" width=\"550\" height=\"300\" title=\"\"><\/a><\/p>\n<p>Now, click on the <strong>Login To<\/strong> <strong>Admin<\/strong> button. You should see the following page:<\/p>\n<p><a class=\"fancybox\" id=\"img-page7\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page7.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-10.png\" alt=\"Admin Login\" width=\"550\" height=\"266\" title=\"\"><\/a><\/p>\n<p>Provide your admin username and password. Then, click on the <strong>Login<\/strong> button. You should see the ProcessWire default dashboard in the following page:<\/p>\n<p><a class=\"fancybox\" id=\"img-page8\" href=\"https:\/\/www.howtoforge.com\/images\/how_to_install_processwire_cms_on_ubuntu_1804\/big\/page8.png\" target=\"_blank\" rel=\"noopener\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/afaghhosting.net\/blog\/wp-content\/uploads\/2018\/12\/how-to-install-processwire-cms-on-ubuntu-18-04-lts-11.png\" alt=\"Admin dashboard\" width=\"550\" height=\"282\" title=\"\"><\/a><\/p>\n<h2 id=\"links\">Links<\/h2>\n","protected":false},"excerpt":{"rendered":"<p>ProcessWire is a free and open source PHP-based content management system and content management framework. It is a simple, flexible and powerful CMS built to save you time and work the way you do. ProcessWire provides easy to use web interface that enables you to publish websites easily. It is specially designed for ease of &hellip;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[36],"tags":[],"class_list":["post-7423","post","type-post","status-publish","format-standard","hentry","category-36"],"_links":{"self":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/7423","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/comments?post=7423"}],"version-history":[{"count":0,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/posts\/7423\/revisions"}],"wp:attachment":[{"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/media?parent=7423"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/categories?post=7423"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/afaghhosting.net\/blog\/wp-json\/wp\/v2\/tags?post=7423"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}