{"id":16550,"date":"2014-12-10T14:37:34","date_gmt":"2014-12-10T20:37:34","guid":{"rendered":"https:\/\/secure.rosehosting.com\/blog\/?p=16550"},"modified":"2022-06-03T03:46:30","modified_gmt":"2022-06-03T08:46:30","slug":"install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps","status":"publish","type":"post","link":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/","title":{"rendered":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS"},"content":{"rendered":"<div id=\"bsf_rt_marker\"><\/div><p><a href=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png\"><img decoding=\"async\" class=\"alignleft wp-image-16551\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png\" alt=\"pure-ftpd-with-mysql\" width=\"350\" height=\"181\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png 390w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql-300x155.png 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql-193x100.png 193w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql-50x25.png 50w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql-75x38.png 75w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a>Pure-FTPd is a free (BSD), secure, production-quality and standard-conformant FTP server which is actively supported and designed with security in mind. It focuses on efficiency, ease of use and provides simple answers to common needs, plus unique useful features for personal users especially on <a title=\"Linux VPS\" href=\"https:\/\/www.rosehosting.com\" target=\"_blank\" rel=\"noopener noreferrer\">Linux VPS<\/a> servers as well as hosting providers. Pure-FTPd can even run 100% non-root, with its built-in chroot() emulation and virtual accounts.<\/p>\n<p><!--more--><br \/>\nIn this tutorial we will show you how to configure Pure-FTPd so that it uses virtual users from a MySQL database instead of real system users. This configuration is much more performant and will allow you to have\u00a0 thousands of FTP users on a single server.<\/p>\n<p>We will also install phpMyAdmin in order to easily administer the databases created.<\/p>\n<p><strong>REQUIREMENTS<\/strong><\/p>\n<p>We will be using our SSD 1 <a title=\"Linux VPS Hosting\" href=\"https:\/\/www.rosehosting.com\/managed-vps-hosting.html\" target=\"_blank\" rel=\"noopener noreferrer\">Linux VPS hosting<\/a> plan for this tutorial.<\/p>\n<p><strong>UPDATE THE SYSTEM<\/strong><\/p>\n<p>Login to your server as user \u2018root\u2019 and make sure your <a title=\"OpenSUSE VPS Hosting\" href=\"https:\/\/www.rosehosting.com\/opensuse-vps.html\" target=\"_blank\" rel=\"noopener noreferrer\">OpenSUSE VPS<\/a> is fully up-to-date:<\/p>\n<pre># ssh root@hostname\r\n# zypper ref\r\n# zypper up<\/pre>\n<p><strong>INSTALL APACHE2, MARIADB (MYSQL) and PHPMYADMIN<\/strong><\/p>\n<p>Install Apache2, MariaDB and phpMyadmin with it&#8217;s respective dependencies with the following command:<\/p>\n<pre># zypper install mariadb mariadb-client apache2 apache2-mod_php5 php5-mysql php5-mcrypt php5-mbstring php5-gd<\/pre>\n<p>Start and add MariaDB to your system\u2019s startup:<\/p>\n<pre># chkconfig -a mysql\r\n# systemctl start mysql.service<\/pre>\n<p>We recommend you to run mysql_secure_installation and finalize the MariaDB setup:<\/p>\n<pre># mysql_secure_installation<\/pre>\n<p>Create system startup links for Apache (so that it starts automatically whenever the system boots) and start it using the following commands:<\/p>\n<pre># systemctl enable apache2.service\r\n# systemctl start apache2.service<\/pre>\n<p>Next install phpMyAdmin:<\/p>\n<pre># zypper install phpmyadmin<\/pre>\n<p>To access phpMyAdmin you need to modify the \/etc\/apache2\/conf.d\/phpMyAdmin.conf file using your favorite text editor and add the following lines at the very top of the file:<\/p>\n<pre># vim \/etc\/apache2\/conf.d\/phpMyAdmin.conf\r\n\r\nAlias \/phpMyAdmin \/srv\/www\/htdocs\/phpMyAdmin\r\nAlias \/phpmyadmin \/srv\/www\/htdocs\/phpMyAdmin<\/pre>\n<p>Navigate to phpMyAdmin directory and enable the config.inc.php file:<\/p>\n<pre># cd \/srv\/www\/htdocs\/phpMyAdmin\r\n\r\n# cp config.sample.inc.php config.inc.php<\/pre>\n<p>The config.inc.php file expects an existent phpmyadmin database. With the following commands you can create the phpmyadmin database and import the default tables from phpmyadmin docs:<\/p>\n<pre># echo \"create database phpmyadmin;\" | mysql -u root -p 'yourpassword'\r\n\r\n# mysql -u root -p 'yourpassword' &lt; \/usr\/share\/doc\/packages\/phpMyAdmin\/examples\/create_tables.sql<\/pre>\n<p>Restart Apache:<\/p>\n<pre># systemctl restart apache2.service<\/pre>\n<p>You can now use your favorite web browser and access phpMyAdmin by navigating to: http:\/\/your_IP_address\/phpmyadmin or http:\/\/yourdomain\/phpmyadmin . You will see the welcome page:<\/p>\n<p><a href=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/phpmyadmin1.png\"><img decoding=\"async\" class=\"alignnone wp-image-16555\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/phpmyadmin1.png\" alt=\"phpmyadmin\" width=\"350\" height=\"349\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/phpmyadmin1.png 529w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/phpmyadmin1-150x150.png 150w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/phpmyadmin1-300x300.png 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/phpmyadmin1-100x100.png 100w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/phpmyadmin1-50x50.png 50w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/phpmyadmin1-75x75.png 75w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/p>\n<p><strong>INSTALL PURE-FTPd<\/strong><\/p>\n<p>Now, install PureFTPd by issuing the following command:<\/p>\n<pre># zypper install pure-ftpd<\/pre>\n<p>Then, create FTP group and user that all the virtual users will be mapped to:<\/p>\n<pre># groupadd -g 2525 ftpgroup\r\n# useradd -u 2525 -s \/bin\/false -d \/bin\/null -c \"pureftpd user\" -g ftpgroup ftpuser<\/pre>\n<p>Next thing you need to do is to create a database for PureFTPd. Enter your MySQL service as root:<\/p>\n<pre># mysql -u root -p\r\n\r\n\r\nMariaDB [(none)]&gt; CREATE DATABASE pureftpd;\r\n\r\nMariaDB [(none)]&gt; GRANT ALL PRIVILEGES on pureftpd.* TO 'ftpuser'@'localhost' IDENTIFIED BY 'your_password';\r\n\r\nMariaDB [(none)]&gt; FLUSH PRIVILEGES;<\/pre>\n<p>Replace the string your_password with a password to your liking.<\/p>\n<p>While you are still logged into MySQL let&#8217;s create the database table needed for storing the virtual users credentials. Enter the following:<\/p>\n<pre>MariaDB [(none)]&gt; USE pureftpd;\r\n\r\nMariaDB [pureftpd]&gt; CREATE TABLE `ftpd` (\r\nUser varchar(16) NOT NULL default '',\r\nstatus enum('0','1') NOT NULL default '0',\r\nPassword varchar(64) NOT NULL default '',\r\nUid varchar(11) NOT NULL default '-1',\r\nGid varchar(11) NOT NULL default '-1',\r\nDir varchar(128) NOT NULL default '',\r\nULBandwidth smallint(5) NOT NULL default '0',\r\nDLBandwidth smallint(5) NOT NULL default '0',\r\ncomment tinytext NOT NULL,\r\nipaccess varchar(15) NOT NULL default '*',\r\nQuotaSize smallint(5) NOT NULL default '0',\r\nQuotaFiles int(11) NOT NULL default 0,\r\nPRIMARY KEY (User),\r\nUNIQUE KEY User (User)\r\n)\u00a0 ENGINE=InnoDB;\r\n\r\n\r\nMariaDB [pureftpd]&gt; exit<\/pre>\n<p>Everything looks fine so far. Let&#8217;s modify PureFTPd configuration file with some recommended changes. With your favorite text editor open the etc\/pure-ftpd\/pure-ftpd.conf file:<\/p>\n<pre># vim etc\/pure-ftpd\/pure-ftpd.conf<\/pre>\n<p>Once there, make sure that the ChrootEveryone, AnonymousOnly, MySQLConfigFile, and CreateHomeDir lines are enabled and look like this:<\/p>\n<p><a href=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pureftpconf.png\"><img decoding=\"async\" class=\"alignnone wp-image-16553\" src=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pureftpconf.png\" alt=\"pureftpconf\" width=\"350\" height=\"182\" srcset=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pureftpconf.png 497w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pureftpconf-300x155.png 300w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pureftpconf-192x100.png 192w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pureftpconf-50x25.png 50w, https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pureftpconf-75x38.png 75w\" sizes=\"(max-width: 350px) 100vw, 350px\" \/><\/a><\/p>\n<p>The ChrootEveryone setting is needed because it will make PureFTPd chroot every virtual user in his home directory, therefore limiting him to browse directories and files only in his home directory. The CreateHomeDir line will make PureFTPd create a user&#8217;s home directory when the user logs in and the home directory does not exist yet. AnonymousOnly must be set to no because otherwise only anonymous FTP sessions will be allowed.<\/p>\n<p>Next create\/edit the \/etc\/pure-ftpd\/pureftpd-mysql.conf file:<\/p>\n<pre># vim \/etc\/pure-ftpd\/pureftpd-mysql.conf<\/pre>\n<p>And paste the following:<\/p>\n<pre>MYSQLSocket\u00a0\u00a0\u00a0\u00a0\u00a0 \/var\/run\/mysql\/mysql.sock\r\nMYSQLServer\u00a0\u00a0\u00a0\u00a0 localhost\r\nMYSQLPort\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 3306\r\nMYSQLUser\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 ftpuser\r\nMYSQLPassword\u00a0\u00a0 your_password\r\nMYSQLDatabase\u00a0\u00a0 pureftpd\r\n#MYSQLCrypt md5, cleartext, crypt() or password() - md5 is VERY RECOMMENDABLE uppon cleartext\r\nMYSQLCrypt\u00a0\u00a0\u00a0\u00a0\u00a0 md5\r\nMYSQLGetPW\u00a0\u00a0\u00a0\u00a0\u00a0 SELECT Password FROM ftpd WHERE User=\"\\L\" AND status=\"1\" AND (ipaccess = \"*\" OR ipaccess LIKE \"\\R\")\r\nMYSQLGetUID\u00a0\u00a0\u00a0\u00a0 SELECT Uid FROM ftpd WHERE User=\"\\L\" AND status=\"1\" AND (ipaccess = \"*\" OR ipaccess LIKE \"\\R\")\r\nMYSQLGetGID\u00a0\u00a0\u00a0\u00a0 SELECT Gid FROM ftpd WHERE User=\"\\L\"AND status=\"1\" AND (ipaccess = \"*\" OR ipaccess LIKE \"\\R\")\r\nMYSQLGetDir\u00a0\u00a0\u00a0\u00a0 SELECT Dir FROM ftpd WHERE User=\"\\L\"AND status=\"1\" AND (ipaccess = \"*\" OR ipaccess LIKE \"\\R\")\r\nMySQLGetBandwidthUL SELECT ULBandwidth FROM ftpd WHERE User=\"\\L\"AND status=\"1\" AND (ipaccess = \"*\" OR ipaccess LIKE \"\\R\")\r\nMySQLGetBandwidthDL SELECT DLBandwidth FROM ftpd WHERE User=\"\\L\"AND status=\"1\" AND (ipaccess = \"*\" OR ipaccess LIKE \"\\R\")\r\nMySQLGetQTASZ\u00a0\u00a0 SELECT QuotaSize FROM ftpd WHERE User=\"\\L\"AND status=\"1\" AND (ipaccess = \"*\" OR ipaccess LIKE \"\\R\")\r\nMySQLGetQTAFS\u00a0\u00a0 SELECT QuotaFiles FROM ftpd WHERE User=\"\\L\"AND status=\"1\" AND (ipaccess = \"*\" OR ipaccess LIKE \"\\R\")<\/pre>\n<p>Replace the string your_password with the real password for the MySQL user ftpuser in the line MYSQLPassword. We will use md5 as MYSQLCrypt method, which means that MySQL will store the users passwords as an MD5 string in the database which is far more secure than using plain text passwords.<\/p>\n<p>Now we will create the system startup links for PureFTPd and start it:<\/p>\n<pre># systemctl enable pure-ftpd\r\n# systemctl start pure-ftpd<\/pre>\n<p>Let&#8217;s populate the database via the MySQL shell. Login as root:<\/p>\n<pre># mysql -u root -p\r\n\r\nMariaDB [(none)]&gt; USE pureftpd;\r\n\r\nMariaDB [pureftpd]&gt; INSERT INTO `ftpd` (`User`, `status`, `Password`, `Uid`, `Gid`, `Dir`, `ULBandwidth`, `DLBandwidth`, `comment`, `ipaccess`, `QuotaSize`, `QuotaFiles`) VALUES ('testuser', '1', MD5('RoseHosting'), '2525', '2525', '\/home\/www.examledomain.com', '200', '200', '', '*', '10', '0');\r\n\r\nMariaDB [pureftpd]&gt; exit;<\/pre>\n<p>This MySQL statement will create the user testuser with status 1 (which means that the ftp account is active) and the password RoseHosting (you should change it to one of your liking). The password will be stored and encrypted using MySQL&#8217;s MD5 function, the UID and GID will be set to 2525 (the user\/group we created for the virtual users to be mapped to), the home directory will be \/home\/www.examledomain.com and the upload and download bandwidth will be set to\u00a0 200 KB\/sec. (kilobytes per second) alongside a quota of 100 MB.<\/p>\n<p>To test the configuration open a FTP client of your choise and enter the following credentials:<\/p>\n<pre>hostname : your IP address;\r\nuser: testuser\r\npassword: yourpassword\r\nport: 21<\/pre>\n<p>That&#8217;s it. We successfully installed and configured Pure-FTPd so that it uses virtual users from a MySQL database. You can administer your databases and add new users using the phpMyAdmin tool.<\/p>\n<p>Of course you don\u2019t have to do any of this if you use one of our <a title=\"Linux VPS Hosting\" href=\"https:\/\/www.rosehosting.com\/managed-vps-hosting.html\" target=\"_blank\" rel=\"noopener noreferrer\">Linux VPS Hosting<\/a> services, in which case you can simply ask our expert Linux admins to do this for you. They are available 24\u00d77 and will take care of your request immediately.<\/p>\n<p><span style=\"color: #ff0000;\"><strong>PS<\/strong>.<\/span> If you liked this post please share it with your friends on the social networks using the buttons on the left or simply leave a reply below. Thanks.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pure-FTPd is a free (BSD), secure, production-quality and standard-conformant FTP server which is actively supported and designed with security in &#8230; <\/p>\n<p class=\"read-more-container\"><a title=\"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS\" class=\"read-more button\" href=\"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#more-16550\" aria-label=\"Read more about Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS\">Read More<\/a><\/p>\n","protected":false},"author":4,"featured_media":16551,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1702,13],"tags":[177,296,312,94,656,661,212],"class_list":["post-16550","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-databases","category-tutorials","tag-linux-vps","tag-mariadb","tag-opensuse","tag-phpmyadmin","tag-pure-ftpd","tag-pureftpd","tag-virtual-users","generate-columns","tablet-grid-50","mobile-grid-100","grid-parent","grid-33"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v27.5 (Yoast SEO v27.5) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting<\/title>\n<meta name=\"description\" content=\"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS\" \/>\n<meta property=\"og:description\" content=\"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/\" \/>\n<meta property=\"og:site_name\" content=\"RoseHosting\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/RoseHosting\" \/>\n<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/rosehosting.helpdesk\" \/>\n<meta property=\"article:published_time\" content=\"2014-12-10T20:37:34+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-06-03T08:46:30+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png\" \/>\n\t<meta property=\"og:image:width\" content=\"390\" \/>\n\t<meta property=\"og:image:height\" content=\"202\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Jeff Wilson\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:site\" content=\"@rosehosting\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeff Wilson\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/\"},\"author\":{\"name\":\"Jeff Wilson\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/person\\\/7ce77a842fa6a9a7f8efa186f2353713\"},\"headline\":\"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS\",\"datePublished\":\"2014-12-10T20:37:34+00:00\",\"dateModified\":\"2022-06-03T08:46:30+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/\"},\"wordCount\":838,\"commentCount\":2,\"publisher\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/12\\\/pure-ftpd-with-mysql.png\",\"keywords\":[\"linux vps\",\"mariadb\",\"opensuse\",\"phpmyadmin\",\"pure-ftpd\",\"pureftpd\",\"virtual-users\"],\"articleSection\":[\"Databases\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/\",\"name\":\"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/12\\\/pure-ftpd-with-mysql.png\",\"datePublished\":\"2014-12-10T20:37:34+00:00\",\"dateModified\":\"2022-06-03T08:46:30+00:00\",\"description\":\"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/#primaryimage\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/12\\\/pure-ftpd-with-mysql.png\",\"contentUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2014\\\/12\\\/pure-ftpd-with-mysql.png\",\"width\":390,\"height\":202},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\",\"name\":\"RoseHosting.com\",\"description\":\"Premium Linux Tutorials Since 2001\",\"publisher\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#organization\",\"name\":\"RoseHosting\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/android-chrome-192x192-1.png\",\"contentUrl\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/03\\\/android-chrome-192x192-1.png\",\"width\":192,\"height\":192,\"caption\":\"RoseHosting\"},\"image\":{\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/RoseHosting\",\"https:\\\/\\\/x.com\\\/rosehosting\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/rosehosting\\\/\"],\"description\":\"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.\",\"email\":\"info@rosehosting.com\",\"telephone\":\"(314) 275-0414\",\"legalName\":\"Rose Web Services LLC\",\"foundingDate\":\"2001-04-02\",\"numberOfEmployees\":{\"@type\":\"QuantitativeValue\",\"minValue\":\"11\",\"maxValue\":\"50\"}},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/#\\\/schema\\\/person\\\/7ce77a842fa6a9a7f8efa186f2353713\",\"name\":\"Jeff Wilson\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g\",\"caption\":\"Jeff Wilson\"},\"description\":\"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.\",\"sameAs\":[\"https:\\\/\\\/www.rosehosting.com\",\"https:\\\/\\\/www.facebook.com\\\/rosehosting.helpdesk\"],\"url\":\"https:\\\/\\\/www.rosehosting.com\\\/blog\\\/author\\\/jwilson\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting","description":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/","og_locale":"en_US","og_type":"article","og_title":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS","og_description":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting","og_url":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/","og_site_name":"RoseHosting","article_publisher":"https:\/\/www.facebook.com\/RoseHosting","article_author":"https:\/\/www.facebook.com\/rosehosting.helpdesk","article_published_time":"2014-12-10T20:37:34+00:00","article_modified_time":"2022-06-03T08:46:30+00:00","og_image":[{"width":390,"height":202,"url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png","type":"image\/png"}],"author":"Jeff Wilson","twitter_card":"summary_large_image","twitter_creator":"@rosehosting","twitter_site":"@rosehosting","twitter_misc":{"Written by":"Jeff Wilson","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#article","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/"},"author":{"name":"Jeff Wilson","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713"},"headline":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS","datePublished":"2014-12-10T20:37:34+00:00","dateModified":"2022-06-03T08:46:30+00:00","mainEntityOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/"},"wordCount":838,"commentCount":2,"publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png","keywords":["linux vps","mariadb","opensuse","phpmyadmin","pure-ftpd","pureftpd","virtual-users"],"articleSection":["Databases","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/","url":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/","name":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting","isPartOf":{"@id":"https:\/\/www.rosehosting.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#primaryimage"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#primaryimage"},"thumbnailUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png","datePublished":"2014-12-10T20:37:34+00:00","dateModified":"2022-06-03T08:46:30+00:00","description":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS | RoseHosting","breadcrumb":{"@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#primaryimage","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2014\/12\/pure-ftpd-with-mysql.png","width":390,"height":202},{"@type":"BreadcrumbList","@id":"https:\/\/www.rosehosting.com\/blog\/install-and-configure-pureftpd-with-mysql-on-an-opensuse-linux-vps\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.rosehosting.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Install and Configure PureFTPd with MySQL on an OpenSUSE Linux VPS"}]},{"@type":"WebSite","@id":"https:\/\/www.rosehosting.com\/blog\/#website","url":"https:\/\/www.rosehosting.com\/blog\/","name":"RoseHosting.com","description":"Premium Linux Tutorials Since 2001","publisher":{"@id":"https:\/\/www.rosehosting.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.rosehosting.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/www.rosehosting.com\/blog\/#organization","name":"RoseHosting","url":"https:\/\/www.rosehosting.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","contentUrl":"https:\/\/www.rosehosting.com\/blog\/wp-content\/uploads\/2022\/03\/android-chrome-192x192-1.png","width":192,"height":192,"caption":"RoseHosting"},"image":{"@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/RoseHosting","https:\/\/x.com\/rosehosting","https:\/\/www.linkedin.com\/in\/rosehosting\/"],"description":"RoseHosting is a leading Linux hosting provider, serving thousands of clients world-wide since 2001.","email":"info@rosehosting.com","telephone":"(314) 275-0414","legalName":"Rose Web Services LLC","foundingDate":"2001-04-02","numberOfEmployees":{"@type":"QuantitativeValue","minValue":"11","maxValue":"50"}},{"@type":"Person","@id":"https:\/\/www.rosehosting.com\/blog\/#\/schema\/person\/7ce77a842fa6a9a7f8efa186f2353713","name":"Jeff Wilson","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/0985fed6af04cc60703d2ecf27c65dfa373e0ca00eb21c0b03477e099ea3f99f?s=96&r=g","caption":"Jeff Wilson"},"description":"An experienced Linux veteran with many years of experience. Helping other Linux admins with frequent Linux and business-related blog posts on the RoseHosting blog. Techie by choice. Loving nature and travel. Happily married and father of two lovely children.","sameAs":["https:\/\/www.rosehosting.com","https:\/\/www.facebook.com\/rosehosting.helpdesk"],"url":"https:\/\/www.rosehosting.com\/blog\/author\/jwilson\/"}]}},"_links":{"self":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/16550","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/users\/4"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/comments?post=16550"}],"version-history":[{"count":1,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/16550\/revisions"}],"predecessor-version":[{"id":42161,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/posts\/16550\/revisions\/42161"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media\/16551"}],"wp:attachment":[{"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/media?parent=16550"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/categories?post=16550"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rosehosting.com\/blog\/wp-json\/wp\/v2\/tags?post=16550"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}