Web application package guidelines

From ArchWiki
Jump to: navigation, search

Tango-inaccurate.pngThe factual accuracy of this article or section is disputed.Tango-inaccurate.png

Reason: Symlinking part of webapps causes major issues. Furthermore the file system layout is insufficient for more than one instance of a webapp. (Discuss in Talk:Web application package guidelines#)
Package creation guidelines

CLRCrossEclipseFree PascalGNOMEGoHaskellJavaKDEKernelLispMinGWNonfreeOCamlPerlPHPPythonRubyVCSWebWine

This page describes how to package web application which tends to install into /srv/http (for example packages written in php, such as phpmyadmin and phpvirtualbox).

Directory structure

Layout example:

  • /etc/webapps/$pkgname
  • /usr/share/webapps/$pkgname
  • /var/... (according to generic FHS conventions)

/usr/share/webapps/$pkgname files and/or directories should be symlinked into /var and /etc/.

/etc/webapps/$pkgname should contain some examples which helps to setup web-server to run this web application:

  • /etc/webapps/$pkgname/apache.example.conf
  • /etc/webapps/$pkgname/nginx.example.conf
  • /etc/webapps/$pkgname/other-web-server.example.conf

Install web application package

Install with Apache

Install package

   # install 'foo' package
   # cp /etc/webapps/foo/apache.example.conf /etc/httpd/conf/extra/foo.conf
   # edit /etc/httpd/conf/httpd.conf
      Include conf/extra/foo.conf

Start server

   # systemctl start httpd

Install with Nginx

Install package

   # install 'foo' package
   # ln -s /usr/share/webapps/foo /srv/http
   # cp /etc/webapps/foo/nginx.example.conf /etc/nginx/extra/foo.conf # conf file may be not present.

You may need configure FastCGI-PHP, FastCGI-CGI

Start server

   # systemctl start <fastcgi>
   # systemctl start nginx