diff options
author | Jacob Michalskie <hel@lcp.world> | 2022-09-03 23:18:48 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-09-03 17:18:48 -0400 |
commit | 1f505160b5288243c26355c3177025dba2cc2317 (patch) | |
tree | 1622f03c48cf7e42388c9a4969b3b7c7ea723848 | |
parent | e36e9f902af57e26a3ae0e14ceb9dff78857989f (diff) | |
download | bugs-1f505160b5288243c26355c3177025dba2cc2317.tar bugs-1f505160b5288243c26355c3177025dba2cc2317.tar.gz bugs-1f505160b5288243c26355c3177025dba2cc2317.tar.bz2 bugs-1f505160b5288243c26355c3177025dba2cc2317.tar.xz bugs-1f505160b5288243c26355c3177025dba2cc2317.zip |
Bug 1785943: Update the MySQL, Linux and Quick Start in the Installation documentation 5.0 (#113)
* Update the Linux and Quick Start in the Installation documentation
* Update the notes to mention MySQL 8 incompatibility and MariaDB as a replacement
* Default to MariaDB and mention how it relates to MySQL
* Switch to mention how to install optional modules outside of dnf
-rw-r--r-- | docs/en/rst/installing/linux.rst | 149 | ||||
-rw-r--r-- | docs/en/rst/installing/mysql.rst | 18 | ||||
-rw-r--r-- | docs/en/rst/installing/quick-start.rst | 149 |
3 files changed, 201 insertions, 115 deletions
diff --git a/docs/en/rst/installing/linux.rst b/docs/en/rst/installing/linux.rst index e2e05c310..9a6632e31 100644 --- a/docs/en/rst/installing/linux.rst +++ b/docs/en/rst/installing/linux.rst @@ -18,7 +18,7 @@ Install Packages ================ Use your distribution's package manager to install Perl, your preferred -database engine (MySQL if in doubt), and a webserver (Apache if in doubt). +database engine (MySQL or MariaDB if in doubt), and a webserver (Apache if in doubt). Some distributions even have a Bugzilla package, although that will vary in age. @@ -28,64 +28,102 @@ is not found, just remove it from the list and reissue the command. If you want to use a different database or webserver, substitute the package names as appropriate. -Fedora and Red Hat +Fedora, CentOS Stream and RHEL ------------------ -The following command will install Red Hat's packaged version of Bugzilla: +The following command will install Fedora's packaged version of Bugzilla: -:command:`yum install bugzilla httpd mysql-server` +:command:`dnf install bugzilla httpd mariadb-server` Then, you can skip to :ref:`configuring your database <linux-config-database>`. It may be useful to know that Fedora stores the Bugzilla files in :file:`/usr/share/bugzilla`, so that's where you'll run :file:`checksetup.pl`. -If you want to install a version of Bugzilla from the Bugzilla project, you -will instead need: - -:command:`yum install httpd mysql-server mod_perl mod_perl-devel httpd-devel -gd-devel mysql-devel -graphviz patchutils gcc 'perl(Apache2::SizeLimit)' 'perl(Authen::Radius)' -'perl(Authen::SASL)' 'perl(Cache::Memcached)' 'perl(CGI)' 'perl(Chart::Lines)' -'perl(Daemon::Generic)' 'perl(Date::Format)' 'perl(DateTime)' -'perl(DateTime::TimeZone)' 'perl(DBI)' 'perl(Digest::SHA)' 'perl(Email::MIME)' -'perl(Email::Reply)' 'perl(Email::Sender)' 'perl(Encode)' 'perl(Encode::Detect)' -'perl(File::MimeInfo::Magic)' 'perl(GD)' 'perl(GD::Graph)' -'perl(GD::Text)' 'perl(HTML::FormatText::WithLinks)' 'perl(HTML::Parser)' -'perl(HTML::Scrubber)' 'perl(IO::Scalar)' 'perl(JSON::RPC)' 'perl(JSON::XS)' -'perl(List::MoreUtils)' 'perl(LWP::UserAgent)' 'perl(Math::Random::ISAAC)' -'perl(MIME::Parser)' 'perl(mod_perl2)' 'perl(Net::LDAP)' 'perl(Net::SMTP::SSL)' -'perl(PatchReader)' 'perl(SOAP::Lite)' 'perl(Template)' -'perl(Template::Plugin::GD::Image)' 'perl(Test::Taint)' 'perl(TheSchwartz)' -'perl(URI)' 'perl(XMLRPC::Lite)' 'perl(XML::Twig)'` - -If you are running RHEL6, you will have to enable the "RHEL Server Optional" -channel in RHN to get some of those packages. - -If you plan to use a database other than MySQL, you will need to also install +If you want to install a version of Bugzilla from the Bugzilla project +or have it on RHEL or CentOS, you will need to do the following instead: + +On CentOS Stream and RHEl, add the Fedora EPEL repo, in the way described +in the `installation instructions <https://docs.fedoraproject.org/en-US/epel/>`_. + +Run the following to install the base Bugzilla dependencies: + +:command:`dnf install git httpd httpd-devel mariadb-devel gcc +mariadb-server mod_perl mod_perl-devel 'perl(autodie)' 'perl(CGI)' +'perl(Date::Format)' 'perl(DateTime)' 'perl(DateTime::TimeZone)' +'perl(DBI)' 'perl(DBD::mysql)' 'perl(Digest::SHA)' 'perl(Email::MIME)' +'perl(Email::Sender)' 'perl(fields)' 'perl(JSON::XS)' +'perl(List::MoreUtils)' 'perl(Math::Random::ISAAC)' 'perl(Memoize)' +'perl(Safe)' 'perl(Template)' 'perl(URI)'` + +On Fedora, all the optional dependencies are available: + +:command:`dnf install gd-devel graphviz patchutils +'perl(Apache2::SizeLimit)' 'perl(Authen::Radius)' 'perl(Authen::SASL)' +'perl(Cache::Memcached)' 'perl(Chart::Lines)' 'perl(Daemon::Generic)' +'perl(Email::Reply)' 'perl(Encode)' 'perl(Encode::Detect)' +'perl(File::Copy::Recursive)' 'perl(File::MimeInfo::Magic)' +'perl(File::Which)' 'perl(GD)' 'perl(GD::Graph)' 'perl(GD::Text)' 'perl(HTML::FormatText::WithLinks)' 'perl(HTML::Parser)' +'perl(HTML::Scrubber)' 'perl(IO::Scalar)' 'perl(JSON::RPC)' +'perl(LWP::UserAgent)' 'perl(MIME::Parser)' 'perl(mod_perl2)' +'perl(Net::LDAP)' 'perl(Net::SMTP::SSL)' 'perl(PatchReader)' +'perl(SOAP::Lite)' 'perl(Template::Plugin::GD::Image)' +'perl(Test::Taint)' 'perl(TheSchwartz)' 'perl(XMLRPC::Lite)' +'perl(XML::Twig)'` + +On CentOS Stream and RHEL with EPEL, some modules are missing in the +repositories, so use the following instead: + +:command:`dnf install gd-devel graphviz patchutils +'perl(Apache2::SizeLimit)' 'perl(Authen::Radius)' 'perl(Authen::SASL)' +'perl(Cache::Memcached)' 'perl(Encode)' 'perl(Encode::Detect)' +'perl(File::Copy::Recursive)' 'perl(File::MimeInfo::Magic)' +'perl(File::Which)' 'perl(GD)' 'perl(GD::Graph)' 'perl(GD::Text)' +'perl(HTML::Parser)' 'perl(HTML::Scrubber)' 'perl(IO::Scalar)' +'perl(JSON::RPC)' 'perl(LWP::UserAgent)' 'perl(MIME::Parser)' +'perl(mod_perl2)' 'perl(Net::LDAP)' 'perl(Net::SMTP::SSL)' +'perl(SOAP::Lite)' 'perl(Test::Taint)' 'perl(XMLRPC::Lite)' +'perl(XML::Twig)'` + +and install the missing optional modules with: + +:command:`cd /var/www/html/bugzilla/ && ./install-module.pl Chart::Lines +Daemon::Generic Email::Reply HTML::FormatText::WithLinks PatchReader +Template::Plugin::GD::Image TheSchwartz` + +If you plan to use a database other than MariaDB, you will need to also install the appropriate packages for that. Ubuntu and Debian ----------------- -:command:`apt-get install git nano` - -:command:`apt-get install apache2 mysql-server libappconfig-perl -libdate-calc-perl libtemplate-perl libmime-perl build-essential -libdatetime-timezone-perl libdatetime-perl libemail-sender-perl -libemail-mime-perl libemail-mime-modifier-perl libdbi-perl libdbd-mysql-perl -libcgi-pm-perl libmath-random-isaac-perl libmath-random-isaac-xs-perl -apache2-mpm-prefork libapache2-mod-perl2 libapache2-mod-perl2-dev -libchart-perl libxml-perl libxml-twig-perl perlmagick libgd-graph-perl -libtemplate-plugin-gd-perl libsoap-lite-perl libhtml-scrubber-perl -libjson-rpc-perl libdaemon-generic-perl libtheschwartz-perl -libtest-taint-perl libauthen-radius-perl libfile-slurp-perl -libencode-detect-perl libmodule-build-perl libnet-ldap-perl -libauthen-sasl-perl libtemplate-perl-doc libfile-mimeinfo-perl -libhtml-formattext-withlinks-perl libgd-dev libmysqlclient-dev lynx-cur -graphviz python-sphinx` - -If you plan to use a database other than MySQL, you will need to also install -the appropriate packages for that. +You can install required packages with: +:command:`apt install apache2 build-essential git +libcgi-pm-perl libdatetime-perl libdatetime-timezone-perl +libdbi-perl libdigest-sha-perl libemail-address-perl +libemail-mime-perl libemail-sender-perl libjson-xs-perl +liblist-moreutils-perl libmath-random-isaac-perl libtemplate-perl +libtimedate-perl liburi-perl libmariadb-dev-compat libdbd-mysql-perl +mariadb-server` + +If you plan to use a database other than MariaDB, you will need to also install +the appropriate packages for that (in the command above, the packages required +for MariaDB are ``libdbd-mysql-perl``, ``libmariadb-dev-compat`` and ``mariadb-server``). + +You can install optional packages with: +:command:`apt install graphviz libapache2-mod-perl2 +libapache2-mod-perl2-dev libauthen-radius-perl libauthen-sasl-perl +libcache-memcached-perl libchart-perl libdaemon-generic-perl +libemail-reply-perl libencode-detect-perl libencode-perl +libfile-copy-recursive-perl libfile-mimeinfo-perl libfile-which-perl +libgd-dev libgd-graph-perl libgd-perl libgd-text-perl +libhtml-formattext-withlinks-perl libhtml-parser-perl +libhtml-scrubber-perl libio-stringy-perl libjson-rpc-perl +libmime-tools-perl libnet-ldap-perl libnet-smtp-ssl-perl +libsoap-lite-perl libtemplate-plugin-gd-perl libtest-taint-perl +libtheschwartz-perl libwww-perl libxmlrpc-lite-perl libxml-twig-perl` + +There is no Ubuntu package for ``PatchReader`` and so you will have to install that module +outside the package manager if you want it. Gentoo ------ @@ -98,6 +136,16 @@ USE flag enabled, Bugzilla will end up in :file:`/var/www/localhost/bugzilla`. Then, you can skip to :ref:`configuring your database <linux-config-database>`. +openSUSE +-------- + +:command:`zypper in bugzilla` + +has been available in the openSUSE Leap repositories since 15.2 and is +in the openSUSE Tumbleweed repositories, also comes with an optional +``bugzilla-apache`` package, that allows you to skip to +:ref:`configuring your database <linux-config-database>` + .. _linux-install-perl: Perl @@ -185,10 +233,11 @@ We have specific configuration instructions for the following: Database Engine =============== -Bugzilla supports MySQL, PostgreSQL, Oracle and SQLite as database servers. -You only require one of these systems to make use of Bugzilla. MySQL is -most commonly used. SQLite is good for trial installations as it requires no -setup. Configure your server according to the instructions below: +Bugzilla supports MySQL (or MariaDB, its compatible counterpart), PostgreSQL, +Oracle and SQLite as database servers. You only require one of these systems +to make use of Bugzilla. MySQL or MariaDB are most commonly used. SQLite is +good for trial installations as it requires no setup. Configure your server +according to the instructions below: * :ref:`mysql` * :ref:`postgresql` diff --git a/docs/en/rst/installing/mysql.rst b/docs/en/rst/installing/mysql.rst index 1107547a6..66f44de20 100644 --- a/docs/en/rst/installing/mysql.rst +++ b/docs/en/rst/installing/mysql.rst @@ -3,7 +3,13 @@ MySQL ##### -You need MySQL version 5.0.15 or higher. +It is strongly advised to use MariaDB which is a drop-in replacement for +MySQL and is fully compatible with Bugzilla. If MySQL must be used, be +aware that the minimum required version is MySQL 5.0.15 and that MySQL 8 +or higher cannot be used at this time. + +All commands in this document work regardless of whether MySQL or +MariaDB are used. It's possible to test which version of MySQL you have installed with: @@ -15,12 +21,12 @@ Installing Windows ------- -Download the MySQL 32-bit or 64-bit MSI installer from the -`MySQL website <http://www.mysql.com/downloads/mysql/>`_ (~28 MB). +Download the MariaDB 32-bit or 64-bit MSI installer from the +`MariaDB website <https://mariadb.org/download/?t=mariadb&os=windows>`_ (~66 MB). -MySQL has a standard Windows installer. It's ok to select a Typical MySQL -install (the default). The rest of this documentation assumes assume you -have installed MySQL into :file:`C:\\mysql`. Adjust paths appropriately if not. +MariaDB has a standard Windows installer. It's ok to select a the +default install options. The rest of this documentation assumes assume you +have installed MariaDB into :file:`C:\\mysql`. Adjust paths appropriately if not. Linux/Mac OS X -------------- diff --git a/docs/en/rst/installing/quick-start.rst b/docs/en/rst/installing/quick-start.rst index 7ea5ed58a..f0ac2fa4f 100644 --- a/docs/en/rst/installing/quick-start.rst +++ b/docs/en/rst/installing/quick-start.rst @@ -1,40 +1,35 @@ .. _quick-start: -Quick Start (Ubuntu Linux 14.04) +Quick Start (Ubuntu Linux 22.04) ################################ This quick start guide makes installing Bugzilla as simple as possible for those who are able to choose their environment. It creates a system using -Ubuntu Linux 14.04 LTS, Apache and MySQL. It requires a little familiarity +Ubuntu Linux 22.04 LTS, Apache and MariaDB. It requires a little familiarity with Linux and the command line. Obtain Your Hardware ==================== -Ubuntu 14.04 LTS Server requires a 64-bit processor. +Ubuntu 22.04 LTS Server requires a 64-bit processor. Bugzilla itself has no prerequisites beyond that, although you should pick reliable hardware. You can also probably use any 64-bit virtual machine -or cloud instance that you have root access on. +or cloud instance that you have root access on. Install the OS ============== -Get `Ubuntu Server 14.04 LTS <http://www.ubuntu.com/download/server>`_ -and follow the `installation instructions <http://www.ubuntu.com/download/server/install-ubuntu-server>`_. +Get `Ubuntu Server 22.04 LTS <https://www.ubuntu.com/download/server>`_ +and follow the `installation instructions <https://www.ubuntu.com/download/server/install-ubuntu-server>`_. Here are some tips: -* Choose any server name you like. -* When creating the initial Linux user, call it ``bugzilla``, give it a - strong password, and write that password down. -* You do not need an encrypted home directory. +* You do not need an encrypted lvm group, root or home directory. * Choose all the defaults for the "partitioning" part (excepting of course where the default is "No" and you need to press "Yes" to continue). -* Choose "install security updates automatically" unless you want to do - them manually. -* From the install options, choose "OpenSSH Server" and "LAMP Server". -* Set the password for the MySQL root user to a strong password, and write - that password down. -* Install the Grub boot loader to the Master Boot Record. +* Choose any server name you like. +* When creating the initial Linux user, call it ``bugzilla``, give it a + strong password, and write that password down. +* From the install options, choose "OpenSSH Server". Reboot when the installer finishes. @@ -44,59 +39,61 @@ Become root ssh to the machine as the 'bugzilla' user, or start a console. Then: :command:`sudo su` - + Install Prerequisites ===================== -:command:`apt-get install git nano` - -:command:`apt-get install apache2 mysql-server libappconfig-perl libdate-calc-perl libtemplate-perl libmime-perl build-essential libdatetime-timezone-perl libdatetime-perl libemail-sender-perl libemail-mime-perl libemail-mime-modifier-perl libdbi-perl libdbd-mysql-perl libcgi-pm-perl libmath-random-isaac-perl libmath-random-isaac-xs-perl apache2-mpm-prefork libapache2-mod-perl2 libapache2-mod-perl2-dev libchart-perl libxml-perl libxml-twig-perl perlmagick libgd-graph-perl libtemplate-plugin-gd-perl libsoap-lite-perl libhtml-scrubber-perl libjson-rpc-perl libdaemon-generic-perl libtheschwartz-perl libtest-taint-perl libauthen-radius-perl libfile-slurp-perl libencode-detect-perl libmodule-build-perl libnet-ldap-perl libauthen-sasl-perl libtemplate-perl-doc libfile-mimeinfo-perl libhtml-formattext-withlinks-perl libgd-dev libmysqlclient-dev lynx-cur graphviz python-sphinx` +:command:`apt install git nano` + +:command:`apt install apache2 build-essential mariadb-server +libcgi-pm-perl libdigest-sha-perl libtimedate-perl libdatetime-perl +libdatetime-timezone-perl libdbi-perl libtemplate-perl +libemail-address-perl libemail-sender-perl libemail-mime-perl +liburi-perl liblist-moreutils-perl libmath-random-isaac-perl +libjson-xs-perl libgd-perl libchart-perl libtemplate-plugin-gd-perl +libgd-text-perl libgd-graph-perl libmime-tools-perl libwww-perl +libxml-twig-perl libnet-ldap-perl libauthen-sasl-perl +libnet-smtp-ssl-perl libauthen-radius-perl libsoap-lite-perl +libxmlrpc-lite-perl libjson-rpc-perl libtest-taint-perl +libhtml-parser-perl libhtml-scrubber-perl libencode-perl +libencode-detect-perl libemail-reply-perl +libhtml-formattext-withlinks-perl libtheschwartz-perl +libdaemon-generic-perl libapache2-mod-perl2 libapache2-mod-perl2-dev +libfile-mimeinfo-perl libio-stringy-perl libcache-memcached-perl +libfile-copy-recursive-perl libfile-which-perl libdbd-mysql-perl +perlmagick lynx graphviz python3-sphinx rst2pdf` This will take a little while. It's split into two commands so you can do the next steps (up to step 7) in another terminal while you wait for the second command to finish. If you start another terminal, you will need to :command:`sudo su` again. -Download Bugzilla -================= - -Get it from our Git repository: - -:command:`cd /var/www/html` - -:command:`git clone --branch release-X.X-stable https://github.com/bugzilla/bugzilla bugzilla` - -(where "X.X" is the 2-digit version number of the stable release of Bugzilla -that you want - e.g. 5.0) - -Configure MySQL +Configure MariaDB =============== The following instructions use the simple :file:`nano` editor, but feel free to use any text editor you are comfortable with. -:command:`nano /etc/mysql/my.cnf` +:command:`nano /etc/mysql/mariadb.conf.d/50-server.cnf` Set the following values, which increase the maximum attachment size and make it possible to search for short words and terms: -* Alter on Line 52: ``max_allowed_packet=100M`` -* Add as new line 32, in the ``[mysqld]`` section: ``ft_min_word_len=2`` +* Uncomment and alter on Line 34 to have a value of at least: ``max_allowed_packet=100M`` +* Add as new line 42, in the ``[mysqld]`` section: ``ft_min_word_len=2`` Save and exit. -Then, add a user to MySQL for Bugzilla to use: +Then, add a user to MariaDB for Bugzilla to use: -:command:`mysql -u root -p -e "GRANT ALL PRIVILEGES ON bugs.* TO bugs@localhost IDENTIFIED BY '$db_pass'"` +:command:`mysql -u root -e "GRANT ALL PRIVILEGES ON bugs.* TO bugs@localhost IDENTIFIED BY '$db_pass'"` Replace ``$db_pass`` with a strong password you have generated. Write it down. -When you run the above command, it will prompt you for the MySQL root password -that you configured when you installed Ubuntu. You should make ``$db_pass`` -different to that password. +You should make ``$db_pass`` different to your password. -Restart MySQL: +Restart MariaDB: -:command:`service mysql restart` +:command:`service mariadb restart` Configure Apache ================ @@ -107,21 +104,35 @@ Paste in the following and save: .. code-block:: apache - ServerName localhost + <VirtualHost \*:80> + ServerName localhost - <Directory /var/www/html/bugzilla> - AddHandler cgi-script .cgi - Options +ExecCGI - DirectoryIndex index.cgi index.html - AllowOverride All - </Directory> + <Directory /var/www/html/bugzilla> + AddHandler cgi-script .cgi + Options +ExecCGI + DirectoryIndex index.cgi index.html + AllowOverride All + </Directory> + </VirtualHost> :command:`a2ensite bugzilla` -:command:`a2enmod cgi headers expires` +:command:`a2enmod cgi headers expires rewrite` :command:`service apache2 restart` +Download Bugzilla +================= + +Get it from our Git repository: + +:command:`cd /var/www/html` + +:command:`git clone --branch release-X.X-stable https://github.com/bugzilla/bugzilla bugzilla` + +(where "X.X" is the 2-digit version number of the stable release of Bugzilla +that you want - e.g. 5.0) + Check Setup =========== @@ -144,7 +155,7 @@ You will need to set the following values: * Line 29: set ``$webservergroup`` to ``www-data`` * Line 67: set ``$db_pass`` to the password for the ``bugs`` user you created - in MySQL a few steps ago + in MariaDB a few steps ago Check Setup (again) =================== @@ -162,12 +173,10 @@ Test Server :command:`./testserver.pl http://localhost/bugzilla` -All the tests should pass. You will get warnings about deprecation from -the ``Chart::Base`` Perl module; just ignore those. +All the tests should pass. You will get a warning about failing to run +``gdlib-config``; just ignore it. -.. todo:: Chart::Base gives confusing deprecation warnings :-| - https://rt.cpan.org/Public/Bug/Display.html?id=79658 , unfixed for - 2 years. :bug:`1070117`. +.. todo:: ``gdlib-config`` is no longer in Ubuntu. Access Via Web Browser ====================== @@ -183,8 +192,28 @@ You might well need to configure your DNS such that the server has, and is reachable by, a name rather than IP address. Doing so is out of scope of this document. In the mean time, it is available on your local network at ``http://<ip address>/bugzilla``, where ``<ip address>`` is (unless you -have a complex network setup) the "inet addr" value displayed when you run -:command:`ifconfig eth0`. +have a complex network setup) the address starting with 192 displayed when +you run :command:`hostname -I`. + +Accessing Bugzilla from the Internet +==================================== + +To be able to access Bugzilla from anywhere in the world, you don't have +to make it internet facing at all, there are free VPN services that let +you set up your own network that is accessible anywhere. One of those is +Tailscale, which has a fairly accessible `Quick Start guide <https://tailscale.com/kb/1017/install/>`_. + +If you are setting up an internet facing Bugzilla, it's essential to set +up SSL, so that the communication between the server and users is +encrypted. For local and intranet installation this matters less, and +for those cases, you could set up a self signed local certificate +instead. + +There are a few ways to set up free SSL thanks to `Let's Encrypt <https://letsencrypt.org/>`_. +The two major ones would be Apache's `mod_md <https://httpd.apache.org/docs/2.4/mod/mod_md.html>`_ +and EFF's `certbot <https://certbot.eff.org/instructions?ws=apache&os=ubuntufocal>`_, +but we don't cover the exact specifics of this here, as that's out of +scope of this guide. Configure Bugzilla ================== @@ -198,6 +227,8 @@ the following parameters in the :guilabel:`Required Settings` section: * :param:`urlbase`: :paramval:`http://<servername>/bugzilla/` or :paramval:`http://<ip address>/bugzilla/` +* :param:`ssl_redirect`: + :paramval:`on` if you set up an SSL certificate Click :guilabel:`Save Changes` at the bottom of the page. |