Download docs/admin/installation-apache.rst from Openyx/xcdv: direct link, hf CLI and curl.
- Browser
- Download file 11.4 kB
-
https://huggingface.co/spaces/Openyx/xcdv/resolve/main/docs/admin/installation-apache.rst
- Command line
-
hf download hf://spaces/Openyx/xcdv/docs/admin/installation-apache.rst
-
curl -L -o installation-apache.rst https://huggingface.co/spaces/Openyx/xcdv/resolve/main/docs/admin/installation-apache.rst
11.4 kB
| .. _installation apache: | |
| ====== | |
| Apache | |
| ====== | |
| .. _Apache: https://httpd.apache.org/ | |
| .. _Apache Debian: | |
| https://cwiki.apache.org/confluence/display/HTTPD/DistrosDefaultLayout#DistrosDefaultLayout-Debian,Ubuntu(Apachehttpd2.x): | |
| .. _apache2.README.Debian: | |
| https://salsa.debian.org/apache-team/apache2/raw/master/debian/apache2.README.Debian | |
| .. _Apache Arch Linux: | |
| https://wiki.archlinux.org/index.php/Apache_HTTP_Server | |
| .. _Apache Fedora: | |
| https://docs.fedoraproject.org/en-US/quick-docs/getting-started-with-apache-http-server/index.html | |
| .. _Apache directives: | |
| https://httpd.apache.org/docs/trunk/mod/directives.html | |
| .. _Getting Started: | |
| https://httpd.apache.org/docs/current/en/getting-started.html | |
| .. _Terms Used to Describe Directives: | |
| https://httpd.apache.org/docs/current/en/mod/directive-dict.html | |
| .. _Configuration Files: | |
| https://httpd.apache.org/docs/current/en/configuring.html | |
| .. _ProxyPreserveHost: https://httpd.apache.org/docs/trunk/mod/mod_proxy.html#proxypreservehost | |
| .. _LoadModule: | |
| https://httpd.apache.org/docs/mod/mod_so.html#loadmodule | |
| .. _IncludeOptional: | |
| https://httpd.apache.org/docs/mod/core.html#includeoptional | |
| .. _DocumentRoot: | |
| https://httpd.apache.org/docs/trunk/mod/core.html#documentroot | |
| .. _Location: | |
| https://httpd.apache.org/docs/trunk/mod/core.html#location | |
| .. _uWSGI Apache support: | |
| https://uwsgi-docs.readthedocs.io/en/latest/Apache.html | |
| .. _mod_proxy_uwsgi: | |
| https://uwsgi-docs.readthedocs.io/en/latest/Apache.html#mod-proxy-uwsgi | |
| .. _mod_proxy_http: | |
| https://httpd.apache.org/docs/current/mod/mod_proxy_http.html | |
| .. _mod_proxy: | |
| https://httpd.apache.org/docs/current/mod/mod_proxy.html | |
| This section explains how to set up a SearXNG instance using the HTTP server Apache_. | |
| If you did use the :ref:`installation scripts` and do not have any special preferences | |
| you can install the :ref:`SearXNG site <apache searxng site>` using | |
| :ref:`searxng.sh <searxng.sh overview>`: | |
| .. code:: bash | |
| $ sudo -H ./utils/searxng.sh install apache | |
| If you have special interests or problems with setting up Apache, the following | |
| section might give you some guidance. | |
| .. sidebar:: further read | |
| - `Apache Arch Linux`_ | |
| - `Apache Debian`_ | |
| - `apache2.README.Debian`_ | |
| - `Apache Fedora`_ | |
| - `Apache directives`_ | |
| .. contents:: | |
| :depth: 2 | |
| :local: | |
| :backlinks: entry | |
| The Apache HTTP server | |
| ====================== | |
| If Apache_ is not installed, install it now. If apache_ is new to you, the | |
| `Getting Started`_, `Configuration Files`_ and `Terms Used to Describe | |
| Directives`_ documentation gives first orientation. There is also a list of | |
| `Apache directives`_ *to keep in the pocket*. | |
| .. tabs:: | |
| .. group-tab:: Ubuntu / debian | |
| .. code:: bash | |
| sudo -H apt-get install apache2 | |
| .. group-tab:: Arch Linux | |
| .. code:: bash | |
| sudo -H pacman -S apache | |
| sudo -H systemctl enable httpd | |
| sudo -H systemctl start http | |
| .. group-tab:: Fedora / RHEL | |
| .. code:: bash | |
| sudo -H dnf install httpd | |
| sudo -H systemctl enable httpd | |
| sudo -H systemctl start httpd | |
| Now at http://localhost you should see some kind of *Welcome* or *Test* page. | |
| How this default site is configured, depends on the linux distribution | |
| (compare `Apache directives`_). | |
| .. tabs:: | |
| .. group-tab:: Ubuntu / debian | |
| .. code:: bash | |
| less /etc/apache2/sites-enabled/000-default.conf | |
| In this file, there is a line setting the `DocumentRoot`_ directive: | |
| .. code:: apache | |
| DocumentRoot /var/www/html | |
| And the *welcome* page is the HTML file at ``/var/www/html/index.html``. | |
| .. group-tab:: Arch Linux | |
| .. code:: bash | |
| less /etc/httpd/conf/httpd.conf | |
| In this file, there is a line setting the `DocumentRoot`_ directive: | |
| .. code:: apache | |
| DocumentRoot "/srv/http" | |
| <Directory "/srv/http"> | |
| Options Indexes FollowSymLinks | |
| AllowOverride None | |
| Require all granted | |
| </Directory> | |
| The *welcome* page of Arch Linux is a page showing the directory located | |
| at ``DocumentRoot``. This *directory* page is generated by the Module | |
| `mod_autoindex <https://httpd.apache.org/docs/2.4/mod/mod_autoindex.html>`_: | |
| .. code:: apache | |
| LoadModule autoindex_module modules/mod_autoindex.so | |
| ... | |
| Include conf/extra/httpd-autoindex.conf | |
| .. group-tab:: Fedora / RHEL | |
| .. code:: bash | |
| less /etc/httpd/conf/httpd.conf | |
| In this file, there is a line setting the ``DocumentRoot`` directive: | |
| .. code:: apache | |
| DocumentRoot "/var/www/html" | |
| ... | |
| <Directory "/var/www"> | |
| AllowOverride None | |
| # Allow open access: | |
| Require all granted | |
| </Directory> | |
| On fresh installations, the ``/var/www`` is empty and the *default | |
| welcome page* is shown, the configuration is located at:: | |
| less /etc/httpd/conf.d/welcome.conf | |
| .. _Debian's Apache layout: | |
| Debian's Apache layout | |
| ---------------------- | |
| Be aware, Debian's Apache layout is quite different from the standard Apache | |
| configuration. For details look at the apache2.README.Debian_ | |
| (``/usr/share/doc/apache2/README.Debian.gz``). Some commands you should know on | |
| Debian: | |
| * :man:`apache2ctl`: Apache HTTP server control interface | |
| * :man:`a2enmod`, :man:`a2dismod`: switch on/off modules | |
| * :man:`a2enconf`, :man:`a2disconf`: switch on/off configurations | |
| * :man:`a2ensite`, :man:`a2dissite`: switch on/off sites | |
| .. _apache modules: | |
| Apache modules | |
| -------------- | |
| To load additional modules, in most distributions you have to uncomment the | |
| lines with the corresponding LoadModule_ directive, except in :ref:`Debian's | |
| Apache layout`. | |
| .. tabs:: | |
| .. group-tab:: Ubuntu / debian | |
| :ref:`Debian's Apache layout` uses :man:`a2enmod` and :man:`a2dismod` to | |
| activate or disable modules: | |
| .. code:: bash | |
| sudo -H a2enmod ssl | |
| sudo -H a2enmod headers | |
| sudo -H a2enmod proxy | |
| sudo -H a2enmod proxy_http | |
| sudo -H a2enmod proxy_uwsgi | |
| .. group-tab:: Arch Linux | |
| In the ``/etc/httpd/conf/httpd.conf`` file, activate LoadModule_ | |
| directives: | |
| .. code:: apache | |
| LoadModule ssl_module modules/mod_ssl.so | |
| LoadModule headers_module modules/mod_headers.so | |
| LoadModule proxy_module modules/mod_proxy.so | |
| LoadModule proxy_http_module modules/mod_proxy_http.so | |
| LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so | |
| .. group-tab:: Fedora / RHEL | |
| In the ``/etc/httpd/conf/httpd.conf`` file, activate LoadModule_ | |
| directives: | |
| .. code:: apache | |
| LoadModule ssl_module modules/mod_ssl.so | |
| LoadModule headers_module modules/mod_headers.so | |
| LoadModule proxy_module modules/mod_proxy.so | |
| LoadModule proxy_http_module modules/mod_proxy_http.so | |
| LoadModule proxy_uwsgi_module modules/mod_proxy_uwsgi.so | |
| .. _apache sites: | |
| Apache sites | |
| ------------ | |
| .. tabs:: | |
| .. group-tab:: Ubuntu / debian | |
| In :ref:`Debian's Apache layout` you create a ``searxng.conf`` with the | |
| ``<Location /searxng >`` directive and save this file in the *sites | |
| available* folder at ``/etc/apache2/sites-available``. To enable the | |
| ``searxng.conf`` use :man:`a2ensite`: | |
| .. code:: bash | |
| sudo -H a2ensite searxng.conf | |
| .. group-tab:: Arch Linux | |
| In the ``/etc/httpd/conf/httpd.conf`` file add a IncludeOptional_ | |
| directive: | |
| .. code:: apache | |
| IncludeOptional sites-enabled/*.conf | |
| Create two folders, one for the *available sites* and one for the *enabled sites*: | |
| .. code:: bash | |
| mkdir -p /etc/httpd/sites-available | |
| mkdir -p /etc/httpd/sites-enabled | |
| Create configuration at ``/etc/httpd/sites-available`` and place a | |
| symlink to ``sites-enabled``: | |
| .. code:: bash | |
| sudo -H ln -s /etc/httpd/sites-available/searxng.conf \ | |
| /etc/httpd/sites-enabled/searxng.conf | |
| .. group-tab:: Fedora / RHEL | |
| In the ``/etc/httpd/conf/httpd.conf`` file add a IncludeOptional_ | |
| directive: | |
| .. code:: apache | |
| IncludeOptional sites-enabled/*.conf | |
| Create two folders, one for the *available sites* and one for the *enabled sites*: | |
| .. code:: bash | |
| mkdir -p /etc/httpd/sites-available | |
| mkdir -p /etc/httpd/sites-enabled | |
| Create configuration at ``/etc/httpd/sites-available`` and place a | |
| symlink to ``sites-enabled``: | |
| .. code:: bash | |
| sudo -H ln -s /etc/httpd/sites-available/searxng.conf \ | |
| /etc/httpd/sites-enabled/searxng.conf | |
| .. _apache searxng site: | |
| Apache's SearXNG site | |
| ===================== | |
| .. _mod_uwsgi: https://uwsgi-docs.readthedocs.io/en/latest/Apache.html#mod-uwsgi | |
| .. sidebar:: uWSGI | |
| Use mod_proxy_uwsgi_ / don't use the old mod_uwsgi_ anymore. | |
| To proxy the incoming requests to the SearXNG instance Apache needs the | |
| mod_proxy_ module (:ref:`apache modules`). | |
| .. sidebar:: HTTP headers | |
| With ProxyPreserveHost_ the incoming ``Host`` header is passed to the proxied | |
| host. | |
| Depending on what your SearXNG installation is listening on, you need a http | |
| mod_proxy_http_) or socket (mod_proxy_uwsgi_) communication to upstream. | |
| The :ref:`installation scripts` installs the :ref:`reference setup | |
| <use_default_settings.yml>` and a :ref:`uwsgi setup` that listens on a socket by default. | |
| You can install and activate your own ``searxng.conf`` like shown in | |
| :ref:`apache sites`. | |
| .. tabs:: | |
| .. group-tab:: socket | |
| .. kernel-include:: $DOCS_BUILD/includes/searxng.rst | |
| :start-after: START apache socket | |
| :end-before: END apache socket | |
| .. group-tab:: http | |
| .. kernel-include:: $DOCS_BUILD/includes/searxng.rst | |
| :start-after: START apache http | |
| :end-before: END apache http | |
| .. _restart apache: | |
| Restart service: | |
| .. tabs:: | |
| .. group-tab:: Ubuntu / debian | |
| .. code:: bash | |
| sudo -H systemctl restart apache2 | |
| sudo -H service uwsgi restart searxng | |
| .. group-tab:: Arch Linux | |
| .. code:: bash | |
| sudo -H systemctl restart httpd | |
| sudo -H systemctl restart uwsgi@searxng | |
| .. group-tab:: Fedora / RHEL | |
| .. code:: bash | |
| sudo -H systemctl restart httpd | |
| sudo -H touch /etc/uwsgi.d/searxng.ini | |
| disable logs | |
| ============ | |
| For better privacy you can disable Apache logs. In the examples above activate | |
| one of the lines and `restart apache`_: | |
| .. code:: apache | |
| SetEnvIf Request_URI "/searxng" dontlog | |
| # CustomLog /dev/null combined env=dontlog | |
| The ``CustomLog`` directive disables logs for the entire (virtual) server, use it | |
| when the URL of the service does not have a path component (``/searxng``), so when | |
| SearXNG is located at root (``/``). | |