Lucian Pricop
2 years ago
17 changed files with 4046 additions and 11 deletions
-
1.gitignore
-
6new/configuration.nix
-
2new/server.nix
-
13new2/.loco/bin/loco-apache-init
-
8new2/.loco/bin/loco-php-init
-
121new2/.loco/config/apache/conf/httpd.conf.loco.tpl
-
385new2/.loco/config/apache/conf/magic
-
1855new2/.loco/config/apache/conf/mime.types
-
18new2/.loco/config/php/php-fpm.conf.loco.tpl
-
16new2/.loco/config/php/php.ini.d/php.ini
-
9new2/.loco/config/php/php.ini.d/xdebug.ini.loco.tpl
-
1378new2/.loco/config/redis/redis.conf.loco.tpl
-
48new2/.loco/loco.yml
-
43new2/.loco/pkgs/php-exts/default.nix
-
128new2/default.nix
-
21new2/shell.nix
-
5pkgs/generate channel file.txt
@ -1,5 +1,5 @@ |
|||||
let |
let |
||||
nixos = import <nixpkgs/nixos> { |
|
||||
|
nixos = import <nixpkgs> { |
||||
configuration = import ./configuration.nix; |
configuration = import ./configuration.nix; |
||||
}; |
}; |
||||
in |
in |
@ -0,0 +1,13 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
cp "$LOCO_SVC_CFG/conf/magic" "$LOCO_SVC_CFG/conf/mime.types" \ |
||||
|
"$LOCO_SVC_VAR/conf/" |
||||
|
|
||||
|
REALHTTPDIR=$(dirname $(dirname $(which httpd))) |
||||
|
mkdir -p "$LOCO_SVC_VAR" "$LOCO_SVC_VAR/logs" "$LOCO_SVC_VAR/conf" "$LOCO_SVC_VAR/htdocs" |
||||
|
if [ ! -f "$LOCO_SVC_VAR/htdocs/index.html" ]; then |
||||
|
echo "<html><body>Placeholder</body></html>" > "$LOCO_SVC_VAR/htdocs/index.html" |
||||
|
fi |
||||
|
for SUBDIR in bin cgi-bin error icons modules ;do |
||||
|
[ ! -e "$LOCO_SVC_VAR/$SUBDIR" ] && ln -s "$REALHTTPDIR/$SUBDIR" "$LOCO_SVC_VAR/$SUBDIR" |
||||
|
done |
@ -0,0 +1,8 @@ |
|||||
|
#!/usr/bin/env bash |
||||
|
|
||||
|
mkdir -p $LOCO_SVC_VAR/php.ini.d |
||||
|
|
||||
|
## The list of extension paths needs to generated via nix. |
||||
|
if which php-exts 2>/dev/null > /dev/null; then |
||||
|
php-exts > $LOCO_SVC_VAR/php.ini.d/extensions.ini |
||||
|
fi |
@ -0,0 +1,121 @@ |
|||||
|
ServerRoot "{{LOCO_SVC_VAR}}" |
||||
|
Listen {{HTTPD_PORT}} |
||||
|
PidFile {{LOCO_SVC_VAR}}/httpd.pid |
||||
|
LoadModule mpm_event_module modules/mod_mpm_event.so |
||||
|
LoadModule authn_file_module modules/mod_authn_file.so |
||||
|
LoadModule authn_core_module modules/mod_authn_core.so |
||||
|
LoadModule authz_host_module modules/mod_authz_host.so |
||||
|
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so |
||||
|
LoadModule authz_user_module modules/mod_authz_user.so |
||||
|
LoadModule authz_core_module modules/mod_authz_core.so |
||||
|
LoadModule access_compat_module modules/mod_access_compat.so |
||||
|
LoadModule auth_basic_module modules/mod_auth_basic.so |
||||
|
LoadModule reqtimeout_module modules/mod_reqtimeout.so |
||||
|
LoadModule filter_module modules/mod_filter.so |
||||
|
LoadModule mime_module modules/mod_mime.so |
||||
|
LoadModule log_config_module modules/mod_log_config.so |
||||
|
LoadModule env_module modules/mod_env.so |
||||
|
LoadModule headers_module modules/mod_headers.so |
||||
|
LoadModule setenvif_module modules/mod_setenvif.so |
||||
|
LoadModule version_module modules/mod_version.so |
||||
|
LoadModule unixd_module modules/mod_unixd.so |
||||
|
LoadModule status_module modules/mod_status.so |
||||
|
LoadModule autoindex_module modules/mod_autoindex.so |
||||
|
<IfModule !mpm_prefork_module> |
||||
|
#LoadModule cgid_module modules/mod_cgid.so |
||||
|
</IfModule> |
||||
|
<IfModule mpm_prefork_module> |
||||
|
#LoadModule cgi_module modules/mod_cgi.so |
||||
|
</IfModule> |
||||
|
LoadModule dir_module modules/mod_dir.so |
||||
|
LoadModule alias_module modules/mod_alias.so |
||||
|
|
||||
|
LoadModule deflate_module modules/mod_deflate.so |
||||
|
LoadModule rewrite_module modules/mod_rewrite.so |
||||
|
LoadModule ssl_module modules/mod_ssl.so |
||||
|
# LoadModule vhost_alias_module modules/mod_vhost_alias.so |
||||
|
LoadModule proxy_module modules/mod_proxy.so |
||||
|
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so |
||||
|
|
||||
|
ServerAdmin you@example.com |
||||
|
ServerName localhost:{{HTTPD_PORT}} |
||||
|
<Directory /> |
||||
|
AllowOverride none |
||||
|
Require all denied |
||||
|
</Directory> |
||||
|
|
||||
|
DocumentRoot "{{LOCO_SVC_VAR}}/htdocs" |
||||
|
<Directory "{{LOCO_SVC_VAR}}/htdocs"> |
||||
|
Options Indexes FollowSymLinks |
||||
|
AllowOverride None |
||||
|
Require all granted |
||||
|
</Directory> |
||||
|
|
||||
|
<IfModule dir_module> |
||||
|
DirectoryIndex index.html index.php |
||||
|
</IfModule> |
||||
|
|
||||
|
<Files ".ht*"> |
||||
|
Require all denied |
||||
|
</Files> |
||||
|
|
||||
|
ErrorLog "|/bin/cat" |
||||
|
|
||||
|
LogLevel info |
||||
|
|
||||
|
<IfModule log_config_module> |
||||
|
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined |
||||
|
LogFormat "%h %l %u %t \"%r\" %>s %b" common |
||||
|
|
||||
|
<IfModule logio_module> |
||||
|
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio |
||||
|
</IfModule> |
||||
|
|
||||
|
CustomLog "|/bin/cat" common |
||||
|
|
||||
|
</IfModule> |
||||
|
|
||||
|
<IfModule headers_module> |
||||
|
RequestHeader unset Proxy early |
||||
|
</IfModule> |
||||
|
|
||||
|
<IfModule mime_module> |
||||
|
TypesConfig conf/mime.types |
||||
|
AddType application/x-compress .Z |
||||
|
AddType application/x-gzip .gz .tgz |
||||
|
</IfModule> |
||||
|
|
||||
|
|
||||
|
<IfModule ssl_module> |
||||
|
SSLRandomSeed startup builtin |
||||
|
SSLRandomSeed connect builtin |
||||
|
</IfModule> |
||||
|
|
||||
|
<VirtualHost *:{{HTTPD_PORT}}> |
||||
|
ServerAdmin webmaster@{{HTTPD_DOMAIN}} |
||||
|
ServerName {{HTTPD_DOMAIN}} |
||||
|
|
||||
|
UseCanonicalName Off |
||||
|
DocumentRoot "{{HTTPD_ROOT}}" |
||||
|
|
||||
|
<Directory "{{HTTPD_ROOT}}"> |
||||
|
Options All |
||||
|
AllowOverride All |
||||
|
<IfModule mod_authz_host.c> |
||||
|
Require all granted |
||||
|
</IfModule> |
||||
|
</Directory> |
||||
|
|
||||
|
## Added for php-fpm |
||||
|
# ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://{{LOCALHOST}}:{{PHPFPM_PORT}}/<?php echo $root ?>/$1 |
||||
|
DirectoryIndex index.html index.php |
||||
|
|
||||
|
<FilesMatch \.php$> |
||||
|
# SetHandler "proxy:fcgi://{{LOCALHOST}}:{{PHPFPM_PORT}}#" |
||||
|
# SetHandler "proxy:unix:/var/run/php5-fpm.sock|fcgi://localhost" |
||||
|
SetHandler "proxy:fcgi://{{LOCALHOST}}:{{PHPFPM_PORT}}" |
||||
|
</FilesMatch> |
||||
|
|
||||
|
</VirtualHost> |
||||
|
|
||||
|
# IncludeOptional %%BKNIXDIR%%/var/amp/apache.d/*.conf |
@ -0,0 +1,385 @@ |
|||||
|
# Magic data for mod_mime_magic Apache module (originally for file(1) command) |
||||
|
# The module is described in /manual/mod/mod_mime_magic.html |
||||
|
# |
||||
|
# The format is 4-5 columns: |
||||
|
# Column #1: byte number to begin checking from, ">" indicates continuation |
||||
|
# Column #2: type of data to match |
||||
|
# Column #3: contents of data to match |
||||
|
# Column #4: MIME type of result |
||||
|
# Column #5: MIME encoding of result (optional) |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# Localstuff: file(1) magic for locally observed files |
||||
|
# Add any locally observed files here. |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# end local stuff |
||||
|
#------------------------------------------------------------------------------ |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# Java |
||||
|
|
||||
|
0 short 0xcafe |
||||
|
>2 short 0xbabe application/java |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# audio: file(1) magic for sound formats |
||||
|
# |
||||
|
# from Jan Nicolai Langfeldt <janl@ifi.uio.no>, |
||||
|
# |
||||
|
|
||||
|
# Sun/NeXT audio data |
||||
|
0 string .snd |
||||
|
>12 belong 1 audio/basic |
||||
|
>12 belong 2 audio/basic |
||||
|
>12 belong 3 audio/basic |
||||
|
>12 belong 4 audio/basic |
||||
|
>12 belong 5 audio/basic |
||||
|
>12 belong 6 audio/basic |
||||
|
>12 belong 7 audio/basic |
||||
|
|
||||
|
>12 belong 23 audio/x-adpcm |
||||
|
|
||||
|
# DEC systems (e.g. DECstation 5000) use a variant of the Sun/NeXT format |
||||
|
# that uses little-endian encoding and has a different magic number |
||||
|
# (0x0064732E in little-endian encoding). |
||||
|
0 lelong 0x0064732E |
||||
|
>12 lelong 1 audio/x-dec-basic |
||||
|
>12 lelong 2 audio/x-dec-basic |
||||
|
>12 lelong 3 audio/x-dec-basic |
||||
|
>12 lelong 4 audio/x-dec-basic |
||||
|
>12 lelong 5 audio/x-dec-basic |
||||
|
>12 lelong 6 audio/x-dec-basic |
||||
|
>12 lelong 7 audio/x-dec-basic |
||||
|
# compressed (G.721 ADPCM) |
||||
|
>12 lelong 23 audio/x-dec-adpcm |
||||
|
|
||||
|
# Bytes 0-3 of AIFF, AIFF-C, & 8SVX audio files are "FORM" |
||||
|
# AIFF audio data |
||||
|
8 string AIFF audio/x-aiff |
||||
|
# AIFF-C audio data |
||||
|
8 string AIFC audio/x-aiff |
||||
|
# IFF/8SVX audio data |
||||
|
8 string 8SVX audio/x-aiff |
||||
|
|
||||
|
# Creative Labs AUDIO stuff |
||||
|
# Standard MIDI data |
||||
|
0 string MThd audio/unknown |
||||
|
#>9 byte >0 (format %d) |
||||
|
#>11 byte >1 using %d channels |
||||
|
# Creative Music (CMF) data |
||||
|
0 string CTMF audio/unknown |
||||
|
# SoundBlaster instrument data |
||||
|
0 string SBI audio/unknown |
||||
|
# Creative Labs voice data |
||||
|
0 string Creative\ Voice\ File audio/unknown |
||||
|
## is this next line right? it came this way... |
||||
|
#>19 byte 0x1A |
||||
|
#>23 byte >0 - version %d |
||||
|
#>22 byte >0 \b.%d |
||||
|
|
||||
|
# [GRR 950115: is this also Creative Labs? Guessing that first line |
||||
|
# should be string instead of unknown-endian long...] |
||||
|
#0 long 0x4e54524b MultiTrack sound data |
||||
|
#0 string NTRK MultiTrack sound data |
||||
|
#>4 long x - version %ld |
||||
|
|
||||
|
# Microsoft WAVE format (*.wav) |
||||
|
# [GRR 950115: probably all of the shorts and longs should be leshort/lelong] |
||||
|
# Microsoft RIFF |
||||
|
0 string RIFF audio/unknown |
||||
|
# - WAVE format |
||||
|
>8 string WAVE audio/x-wav |
||||
|
# MPEG audio. |
||||
|
0 beshort&0xfff0 0xfff0 audio/mpeg |
||||
|
# C64 SID Music files, from Linus Walleij <triad@df.lth.se> |
||||
|
0 string PSID audio/prs.sid |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# c-lang: file(1) magic for C programs or various scripts |
||||
|
# |
||||
|
|
||||
|
# XPM icons (Greg Roelofs, newt@uchicago.edu) |
||||
|
# ideally should go into "images", but entries below would tag XPM as C source |
||||
|
0 string /*\ XPM image/x-xbm 7bit |
||||
|
|
||||
|
# this first will upset you if you're a PL/1 shop... (are there any left?) |
||||
|
# in which case rm it; ascmagic will catch real C programs |
||||
|
# C or REXX program text |
||||
|
0 string /* text/plain |
||||
|
# C++ program text |
||||
|
0 string // text/plain |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# compress: file(1) magic for pure-compression formats (no archives) |
||||
|
# |
||||
|
# compress, gzip, pack, compact, huf, squeeze, crunch, freeze, yabba, whap, etc. |
||||
|
# |
||||
|
# Formats for various forms of compressed data |
||||
|
# Formats for "compress" proper have been moved into "compress.c", |
||||
|
# because it tries to uncompress it to figure out what's inside. |
||||
|
|
||||
|
# standard unix compress |
||||
|
0 string \037\235 application/octet-stream x-compress |
||||
|
|
||||
|
# gzip (GNU zip, not to be confused with [Info-ZIP/PKWARE] zip archiver) |
||||
|
0 string \037\213 application/octet-stream x-gzip |
||||
|
|
||||
|
# According to gzip.h, this is the correct byte order for packed data. |
||||
|
0 string \037\036 application/octet-stream |
||||
|
# |
||||
|
# This magic number is byte-order-independent. |
||||
|
# |
||||
|
0 short 017437 application/octet-stream |
||||
|
|
||||
|
# XXX - why *two* entries for "compacted data", one of which is |
||||
|
# byte-order independent, and one of which is byte-order dependent? |
||||
|
# |
||||
|
# compacted data |
||||
|
0 short 0x1fff application/octet-stream |
||||
|
0 string \377\037 application/octet-stream |
||||
|
# huf output |
||||
|
0 short 0145405 application/octet-stream |
||||
|
|
||||
|
# Squeeze and Crunch... |
||||
|
# These numbers were gleaned from the Unix versions of the programs to |
||||
|
# handle these formats. Note that I can only uncrunch, not crunch, and |
||||
|
# I didn't have a crunched file handy, so the crunch number is untested. |
||||
|
# Keith Waclena <keith@cerberus.uchicago.edu> |
||||
|
#0 leshort 0x76FF squeezed data (CP/M, DOS) |
||||
|
#0 leshort 0x76FE crunched data (CP/M, DOS) |
||||
|
|
||||
|
# Freeze |
||||
|
#0 string \037\237 Frozen file 2.1 |
||||
|
#0 string \037\236 Frozen file 1.0 (or gzip 0.5) |
||||
|
|
||||
|
# lzh? |
||||
|
#0 string \037\240 LZH compressed data |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# frame: file(1) magic for FrameMaker files |
||||
|
# |
||||
|
# This stuff came on a FrameMaker demo tape, most of which is |
||||
|
# copyright, but this file is "published" as witness the following: |
||||
|
# |
||||
|
0 string \<MakerFile application/x-frame |
||||
|
0 string \<MIFFile application/x-frame |
||||
|
0 string \<MakerDictionary application/x-frame |
||||
|
0 string \<MakerScreenFon application/x-frame |
||||
|
0 string \<MML application/x-frame |
||||
|
0 string \<Book application/x-frame |
||||
|
0 string \<Maker application/x-frame |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# html: file(1) magic for HTML (HyperText Markup Language) docs |
||||
|
# |
||||
|
# from Daniel Quinlan <quinlan@yggdrasil.com> |
||||
|
# and Anna Shergold <anna@inext.co.uk> |
||||
|
# |
||||
|
0 string \<!DOCTYPE\ HTML text/html |
||||
|
0 string \<!doctype\ html text/html |
||||
|
0 string \<HEAD text/html |
||||
|
0 string \<head text/html |
||||
|
0 string \<TITLE text/html |
||||
|
0 string \<title text/html |
||||
|
0 string \<html text/html |
||||
|
0 string \<HTML text/html |
||||
|
0 string \<!-- text/html |
||||
|
0 string \<h1 text/html |
||||
|
0 string \<H1 text/html |
||||
|
|
||||
|
# XML eXtensible Markup Language, from Linus Walleij <triad@df.lth.se> |
||||
|
0 string \<?xml text/xml |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# images: file(1) magic for image formats (see also "c-lang" for XPM bitmaps) |
||||
|
# |
||||
|
# originally from jef@helios.ee.lbl.gov (Jef Poskanzer), |
||||
|
# additions by janl@ifi.uio.no as well as others. Jan also suggested |
||||
|
# merging several one- and two-line files into here. |
||||
|
# |
||||
|
# XXX - byte order for GIF and TIFF fields? |
||||
|
# [GRR: TIFF allows both byte orders; GIF is probably little-endian] |
||||
|
# |
||||
|
|
||||
|
# [GRR: what the hell is this doing in here?] |
||||
|
#0 string xbtoa btoa'd file |
||||
|
|
||||
|
# PBMPLUS |
||||
|
# PBM file |
||||
|
0 string P1 image/x-portable-bitmap 7bit |
||||
|
# PGM file |
||||
|
0 string P2 image/x-portable-greymap 7bit |
||||
|
# PPM file |
||||
|
0 string P3 image/x-portable-pixmap 7bit |
||||
|
# PBM "rawbits" file |
||||
|
0 string P4 image/x-portable-bitmap |
||||
|
# PGM "rawbits" file |
||||
|
0 string P5 image/x-portable-greymap |
||||
|
# PPM "rawbits" file |
||||
|
0 string P6 image/x-portable-pixmap |
||||
|
|
||||
|
# NIFF (Navy Interchange File Format, a modification of TIFF) |
||||
|
# [GRR: this *must* go before TIFF] |
||||
|
0 string IIN1 image/x-niff |
||||
|
|
||||
|
# TIFF and friends |
||||
|
# TIFF file, big-endian |
||||
|
0 string MM image/tiff |
||||
|
# TIFF file, little-endian |
||||
|
0 string II image/tiff |
||||
|
|
||||
|
# possible GIF replacements; none yet released! |
||||
|
# (Greg Roelofs, newt@uchicago.edu) |
||||
|
# |
||||
|
# GRR 950115: this was mine ("Zip GIF"): |
||||
|
# ZIF image (GIF+deflate alpha) |
||||
|
0 string GIF94z image/unknown |
||||
|
# |
||||
|
# GRR 950115: this is Jeremy Wohl's Free Graphics Format (better): |
||||
|
# FGF image (GIF+deflate beta) |
||||
|
0 string FGF95a image/unknown |
||||
|
# |
||||
|
# GRR 950115: this is Thomas Boutell's Portable Bitmap Format proposal |
||||
|
# (best; not yet implemented): |
||||
|
# PBF image (deflate compression) |
||||
|
0 string PBF image/unknown |
||||
|
|
||||
|
# GIF |
||||
|
0 string GIF image/gif |
||||
|
|
||||
|
# JPEG images |
||||
|
0 beshort 0xffd8 image/jpeg |
||||
|
|
||||
|
# PC bitmaps (OS/2, Windoze BMP files) (Greg Roelofs, newt@uchicago.edu) |
||||
|
0 string BM image/bmp |
||||
|
#>14 byte 12 (OS/2 1.x format) |
||||
|
#>14 byte 64 (OS/2 2.x format) |
||||
|
#>14 byte 40 (Windows 3.x format) |
||||
|
#0 string IC icon |
||||
|
#0 string PI pointer |
||||
|
#0 string CI color icon |
||||
|
#0 string CP color pointer |
||||
|
#0 string BA bitmap array |
||||
|
|
||||
|
0 string \x89PNG image/png |
||||
|
0 string FWS application/x-shockwave-flash |
||||
|
0 string CWS application/x-shockwave-flash |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# lisp: file(1) magic for lisp programs |
||||
|
# |
||||
|
# various lisp types, from Daniel Quinlan (quinlan@yggdrasil.com) |
||||
|
0 string ;; text/plain 8bit |
||||
|
# Emacs 18 - this is always correct, but not very magical. |
||||
|
0 string \012( application/x-elc |
||||
|
# Emacs 19 |
||||
|
0 string ;ELC\023\000\000\000 application/x-elc |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# mail.news: file(1) magic for mail and news |
||||
|
# |
||||
|
# There are tests to ascmagic.c to cope with mail and news. |
||||
|
0 string Relay-Version: message/rfc822 7bit |
||||
|
0 string #!\ rnews message/rfc822 7bit |
||||
|
0 string N#!\ rnews message/rfc822 7bit |
||||
|
0 string Forward\ to message/rfc822 7bit |
||||
|
0 string Pipe\ to message/rfc822 7bit |
||||
|
0 string Return-Path: message/rfc822 7bit |
||||
|
0 string Path: message/news 8bit |
||||
|
0 string Xref: message/news 8bit |
||||
|
0 string From: message/rfc822 7bit |
||||
|
0 string Article message/news 8bit |
||||
|
#------------------------------------------------------------------------------ |
||||
|
# msword: file(1) magic for MS Word files |
||||
|
# |
||||
|
# Contributor claims: |
||||
|
# Reversed-engineered MS Word magic numbers |
||||
|
# |
||||
|
|
||||
|
0 string \376\067\0\043 application/msword |
||||
|
0 string \333\245-\0\0\0 application/msword |
||||
|
|
||||
|
# disable this one because it applies also to other |
||||
|
# Office/OLE documents for which msword is not correct. See PR#2608. |
||||
|
#0 string \320\317\021\340\241\261 application/msword |
||||
|
|
||||
|
|
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# printer: file(1) magic for printer-formatted files |
||||
|
# |
||||
|
|
||||
|
# PostScript |
||||
|
0 string %! application/postscript |
||||
|
0 string \004%! application/postscript |
||||
|
|
||||
|
# Acrobat |
||||
|
# (due to clamen@cs.cmu.edu) |
||||
|
0 string %PDF- application/pdf |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# sc: file(1) magic for "sc" spreadsheet |
||||
|
# |
||||
|
38 string Spreadsheet application/x-sc |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# tex: file(1) magic for TeX files |
||||
|
# |
||||
|
# XXX - needs byte-endian stuff (big-endian and little-endian DVI?) |
||||
|
# |
||||
|
# From <conklin@talisman.kaleida.com> |
||||
|
|
||||
|
# Although we may know the offset of certain text fields in TeX DVI |
||||
|
# and font files, we can't use them reliably because they are not |
||||
|
# zero terminated. [but we do anyway, christos] |
||||
|
0 string \367\002 application/x-dvi |
||||
|
#0 string \367\203 TeX generic font data |
||||
|
#0 string \367\131 TeX packed font data |
||||
|
#0 string \367\312 TeX virtual font data |
||||
|
#0 string This\ is\ TeX, TeX transcript text |
||||
|
#0 string This\ is\ METAFONT, METAFONT transcript text |
||||
|
|
||||
|
# There is no way to detect TeX Font Metric (*.tfm) files without |
||||
|
# breaking them apart and reading the data. The following patterns |
||||
|
# match most *.tfm files generated by METAFONT or afm2tfm. |
||||
|
#2 string \000\021 TeX font metric data |
||||
|
#2 string \000\022 TeX font metric data |
||||
|
#>34 string >\0 (%s) |
||||
|
|
||||
|
# Texinfo and GNU Info, from Daniel Quinlan (quinlan@yggdrasil.com) |
||||
|
#0 string \\input\ texinfo Texinfo source text |
||||
|
#0 string This\ is\ Info\ file GNU Info text |
||||
|
|
||||
|
# correct TeX magic for Linux (and maybe more) |
||||
|
# from Peter Tobias (tobias@server.et-inf.fho-emden.de) |
||||
|
# |
||||
|
0 leshort 0x02f7 application/x-dvi |
||||
|
|
||||
|
# RTF - Rich Text Format |
||||
|
0 string {\\rtf application/rtf |
||||
|
|
||||
|
#------------------------------------------------------------------------------ |
||||
|
# animation: file(1) magic for animation/movie formats |
||||
|
# |
||||
|
# animation formats, originally from vax@ccwf.cc.utexas.edu (VaX#n8) |
||||
|
# MPEG file |
||||
|
0 string \000\000\001\263 video/mpeg |
||||
|
# |
||||
|
# The contributor claims: |
||||
|
# I couldn't find a real magic number for these, however, this |
||||
|
# -appears- to work. Note that it might catch other files, too, |
||||
|
# so BE CAREFUL! |
||||
|
# |
||||
|
# Note that title and author appear in the two 20-byte chunks |
||||
|
# at decimal offsets 2 and 22, respectively, but they are XOR'ed with |
||||
|
# 255 (hex FF)! DL format SUCKS BIG ROCKS. |
||||
|
# |
||||
|
# DL file version 1 , medium format (160x100, 4 images/screen) |
||||
|
0 byte 1 video/unknown |
||||
|
0 byte 2 video/unknown |
||||
|
# Quicktime video, from Linus Walleij <triad@df.lth.se> |
||||
|
# from Apple quicktime file format documentation. |
||||
|
4 string moov video/quicktime |
||||
|
4 string mdat video/quicktime |
||||
|
|
1855
new2/.loco/config/apache/conf/mime.types
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,18 @@ |
|||||
|
[global] |
||||
|
pid = {{LOCO_SVC_VAR}}/php-fpm.pid |
||||
|
error_log = {{LOCO_SVC_VAR}}/php-fpm.log |
||||
|
; include=/etc/php5/fpm/pool.d/*.conf |
||||
|
daemonize = no |
||||
|
|
||||
|
[www] |
||||
|
; user = www-data |
||||
|
; group = www-data |
||||
|
listen = {{LOCALHOST}}:{{PHPFPM_PORT}} |
||||
|
; listen.owner = www-data |
||||
|
; listen.group = www-data |
||||
|
pm = dynamic |
||||
|
pm.max_children = 5 |
||||
|
pm.start_servers = 2 |
||||
|
pm.min_spare_servers = 1 |
||||
|
pm.max_spare_servers = 3 |
||||
|
chdir = / |
@ -0,0 +1,16 @@ |
|||||
|
;; Note: After changing, you should reinitialize+restart PHP. |
||||
|
|
||||
|
; date.timezone = America/Los_Angeles |
||||
|
date.timezone = Europe/London |
||||
|
|
||||
|
max_execution_time = 0 |
||||
|
memory_limit = 256M |
||||
|
|
||||
|
; Some test suites depend on $_ENV |
||||
|
variables_order=EGPCS |
||||
|
|
||||
|
; By default, disable outbound mail |
||||
|
sendmail_path = "/usr/bin/env true" |
||||
|
|
||||
|
; Display nicely formatted errors |
||||
|
display_errors = 1 |
@ -0,0 +1,9 @@ |
|||||
|
;; Configure XDebug |
||||
|
;; Note: After changing, you should reinitialize+restart PHP. |
||||
|
|
||||
|
xdebug.remote_autostart=on |
||||
|
xdebug.remote_enable=on |
||||
|
xdebug.remote_mode=req |
||||
|
xdebug.remote_handler=dbgp |
||||
|
xdebug.remote_host=localhost |
||||
|
xdebug.remote_port={{XDEBUG_PORT}} |
1378
new2/.loco/config/redis/redis.conf.loco.tpl
File diff suppressed because it is too large
View File
File diff suppressed because it is too large
View File
@ -0,0 +1,48 @@ |
|||||
|
format: 'loco-0.1' |
||||
|
|
||||
|
## The following are *default* values for important environment variables. |
||||
|
## They are ignored if you have already set them elsewhere. |
||||
|
default_environment: |
||||
|
- HTTPD_DOMAIN=localhost |
||||
|
- HTTPD_PORT=8000 |
||||
|
- HTTPD_ROOT=$LOCO_PRJ/web |
||||
|
- LOCALHOST=127.0.0.1 |
||||
|
- MYSQL_PORT=3306 |
||||
|
- PHPFPM_PORT=9000 |
||||
|
- REDIS_PORT=6379 |
||||
|
- XDEBUG_PORT=9000 |
||||
|
- RAMDISK_SIZE=300 |
||||
|
|
||||
|
## The following are *mandatory* values for important environment variables. |
||||
|
## They will override any other values you might have set. |
||||
|
environment: |
||||
|
- PHP_INI_SCAN_DIR=$LOCO_VAR/php/php.ini.d:$LOCO_PRJ/.loco/config/php/php.ini.d |
||||
|
- MYSQL_HOME=$LOCO_VAR/mysql/conf |
||||
|
|
||||
|
## All service data will be stored in a ramdisk. |
||||
|
## If you prefer to use a physical disk, comment out this section. |
||||
|
volume: |
||||
|
init: 'ramdisk start "$LOCO_VAR" "$RAMDISK_SIZE"' |
||||
|
cleanup: 'ramdisk stop "$LOCO_VAR"' |
||||
|
message: 'Loco data volume is a ram disk at "<comment>$LOCO_VAR</comment>".' |
||||
|
|
||||
|
## The "services" are the programs we wish to run. |
||||
|
services: |
||||
|
|
||||
|
redis: |
||||
|
run: 'redis-server --port "$REDIS_PORT" --bind "$LOCALHOST" --pidfile "$LOCO_SVC_VAR/redis.pid" --dir "$LOCO_SVC_VAR"' |
||||
|
pid_file: '$LOCO_SVC_VAR/redis.pid' |
||||
|
message: 'Redis is running on "<comment>$LOCALHOST:$REDIS_PORT</comment>".' |
||||
|
|
||||
|
php: |
||||
|
init: 'loco-php-init' |
||||
|
run: 'php-fpm -y "$LOCO_SVC_VAR/php-fpm.conf"' |
||||
|
pid_file: '$LOCO_SVC_VAR/php-fpm.pid' |
||||
|
message: 'PHP-FPM is running on "<comment>$LOCALHOST:$PHPFPM_PORT</comment>" with config files in "<comment>$LOCO_SVC_VAR/php.ini.d</comment>" and "<comment>$LOCO_SVC_CFG/php.ini.d</comment>".' |
||||
|
|
||||
|
apache: |
||||
|
depends: [php] |
||||
|
init: 'loco-apache-init' |
||||
|
run: 'apachectl -d "$LOCO_SVC_VAR" -DFOREGROUND' |
||||
|
pid_file: '$LOCO_SVC_VAR/httpd.pid' |
||||
|
message: 'Apache HTTPD is running at "<comment>http://$LOCALHOST:$HTTPD_PORT</comment>" with content from "<comment>$HTTPD_ROOT</comment>".' |
@ -0,0 +1,43 @@ |
|||||
|
{pkgs ? import <nixpkgs> { |
||||
|
inherit system; |
||||
|
}, |
||||
|
system ? builtins.currentSystem, |
||||
|
noDev ? false, |
||||
|
stdExts ? [], |
||||
|
zendExts ? [] |
||||
|
}: |
||||
|
|
||||
|
let |
||||
|
|
||||
|
stdenv = pkgs.stdenv; |
||||
|
|
||||
|
stdExtConcat = builtins.concatStringsSep " " stdExts; |
||||
|
zendExtConcat = builtins.concatStringsSep " " zendExts; |
||||
|
|
||||
|
in stdenv.mkDerivation rec { |
||||
|
|
||||
|
phpExtScript = '' |
||||
|
#!/usr/bin/env bash |
||||
|
echo '; This file has been auto-generated by php-exts/default.nix' |
||||
|
for d in ${zendExtConcat} ; do |
||||
|
for f in $d/lib/php/extensions/*.so ; do |
||||
|
echo "zend_extension=$f" |
||||
|
done |
||||
|
done |
||||
|
|
||||
|
for d in ${stdExtConcat} ; do |
||||
|
for f in $d/lib/php/extensions/*.so ; do |
||||
|
echo "extension=$f" |
||||
|
done |
||||
|
done |
||||
|
''; |
||||
|
|
||||
|
name = "php-exts"; |
||||
|
buildInputs = zendExts ++ stdExts; |
||||
|
buildCommand = '' |
||||
|
mkdir -p $out/bin |
||||
|
echo "$phpExtScript" > $out/bin/php-exts |
||||
|
chmod +x $out/bin/php-exts |
||||
|
''; |
||||
|
|
||||
|
} |
@ -0,0 +1,128 @@ |
|||||
|
## locolamp: Download a collection of binaries for use in "LAMP"-style development |
||||
|
## (Apache, PHP, NodeJS, etc). Binaries are downloaded from nixpkgs. |
||||
|
## |
||||
|
## This file is generally organized into sections: |
||||
|
## 1. Import a list of available software packages. |
||||
|
## 2. Pick a list of specific packages. |
||||
|
|
||||
|
{ |
||||
|
system ? builtins.currentSystem, |
||||
|
}: |
||||
|
|
||||
|
################################################################################ |
||||
|
## Import a list of available software packages. |
||||
|
## |
||||
|
## Observe: The list of available software comes from Github (`https://github.com/OWNER/PROJECT/archive/REF.tar.gz`). |
||||
|
## The Github URLs can be changed to reference: |
||||
|
## |
||||
|
## - Branches |
||||
|
## - Tags or commits |
||||
|
## - Unofficial forks (different owners/projects) |
||||
|
## |
||||
|
## Referencing a branch means that `nix-shell` will (from time to time) automatically get |
||||
|
## newer versions of the packages. Referencing a tag or commit means that |
||||
|
## the exact versions of the software will be locked. |
||||
|
|
||||
|
let |
||||
|
|
||||
|
#### |
||||
|
## Import the standard package repository (nixpkgs v18.09). Assign it the name "pkgs". |
||||
|
## |
||||
|
## Observe: The name "pkgs" follows a coding-convention, but it's just a |
||||
|
## local variable. We could call it anything (as long as we're consistent |
||||
|
## about it below). |
||||
|
## |
||||
|
## Observe: The notation `import (...url...) {...options...}` accepts a list of options. |
||||
|
## This can be useful if you need custom compilation options for some packages. |
||||
|
|
||||
|
pkgs = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-18.09.tar.gz) { |
||||
|
inherit system; |
||||
|
}; |
||||
|
|
||||
|
#### |
||||
|
## Import an older version of the standard package repository (nixpkgs v18.03). Assign it the name "oldPkgs". |
||||
|
## |
||||
|
## Observe: PHP 5.6 and PHP 7.0 are no longer distributed in nixpkgs |
||||
|
## v18.09+. But you can still get them from nixpkgs v18.03. |
||||
|
## |
||||
|
## Observe: This is not commonly done in the official "nixpkgs", but it's |
||||
|
## handy if you need to mix+match different versions. |
||||
|
## |
||||
|
## Observe: Older builds used libmysqlclient instead of mysqlnd. That can |
||||
|
## be problematic with, e.g., Drush+Drupal 8. So we set some custom build |
||||
|
## options. |
||||
|
|
||||
|
oldPkgs = import (fetchTarball https://github.com/NixOS/nixpkgs-channels/archive/nixos-18.03.tar.gz) { |
||||
|
inherit system; |
||||
|
config = { |
||||
|
php = { |
||||
|
mysqlnd = false; |
||||
|
}; |
||||
|
}; |
||||
|
}; |
||||
|
|
||||
|
#### |
||||
|
## Import some specific packages that are not available in nixpkgs. |
||||
|
|
||||
|
## "callPackage" is a common helper/convention that makes it easier to get other packages. |
||||
|
callPackage = path: overrides: |
||||
|
let f = import path; |
||||
|
in f ((builtins.intersectAttrs (builtins.functionArgs f) pkgs) // overrides); |
||||
|
|
||||
|
## By default, we download a specific version of loco. But if you had a |
||||
|
## local codebase for development purposes, you could use that instead. |
||||
|
|
||||
|
loco = callPackage (fetchTarball https://github.com/totten/loco/archive/v0.2.1.tar.gz) {}; |
||||
|
# loco = callPackage /home/myuser/src/loco { inherit pkgs; }; |
||||
|
|
||||
|
ramdisk = callPackage (fetchTarball https://github.com/totten/ramdisk/archive/5c699fbeb8ce3d8f3862a726e1e2684067b237dd.tar.gz) {}; |
||||
|
|
||||
|
## Generating php.ini requires some special work. |
||||
|
phpExtLoader = extSpec: (callPackage ./.loco/pkgs/php-exts/default.nix ({ inherit pkgs; } // extSpec)); |
||||
|
|
||||
|
################################################################################ |
||||
|
## Now, we have a list of available software packages. |
||||
|
## Let's define the "locolamp" project and include some specific dependencies. |
||||
|
|
||||
|
in [ |
||||
|
## Major services / runtimes |
||||
|
ramdisk |
||||
|
pkgs.apacheHttpd /* ... or pkgs.nginx ... */ |
||||
|
## pkgs.mariadb /* ... or pkgs.mysql57, pkgs.mysql55 ... */ |
||||
|
pkgs.nodejs-10_x /* ... or pkgs.nodejs-8_x, pkgs.nodes-6_x ... */ |
||||
|
pkgs.redis /* ... or pkgs.memcached ... */ |
||||
|
|
||||
|
pkgs.php74 /* ... or pkgs.php71, oldPkgs.php70, oldPkgs.php56 ... */ |
||||
|
(phpExtLoader { |
||||
|
zendExts = [ |
||||
|
##pkgs.php74Packages.xdebug |
||||
|
]; |
||||
|
stdExts = [ |
||||
|
pkgs.php74Packages.redis |
||||
|
## pkgs.php74Packages.imagick |
||||
|
]; |
||||
|
}) |
||||
|
|
||||
|
# pkgs.mailcatcher |
||||
|
|
||||
|
## CLI utilities |
||||
|
loco |
||||
|
pkgs.bzip2 |
||||
|
pkgs.curl |
||||
|
pkgs.git |
||||
|
##pkgs.gnutar |
||||
|
pkgs.hostname |
||||
|
##pkgs.ncurses |
||||
|
pkgs.patch |
||||
|
pkgs.php74Packages.composer |
||||
|
##pkgs.rsync |
||||
|
##pkgs.unzip |
||||
|
pkgs.which |
||||
|
pkgs.zip |
||||
|
|
||||
|
## Aside: Downloading a different version of PHP or MySQL or NodeJS is |
||||
|
## simple, but bear in mind: this is upgrading (or downgrading). You |
||||
|
## may need to change configuration files to match. Most services are |
||||
|
## pretty good about forward-compatibility, but some (*ahem*MySQL*MariaDB*) |
||||
|
## may give errors and require edits to the configuration. |
||||
|
] |
@ -0,0 +1,21 @@ |
|||||
|
## Based on locolamp https://github.com/totten/locolamp |
||||
|
{ |
||||
|
pkgs ? import <nixpkgs> { |
||||
|
inherit system; |
||||
|
}, |
||||
|
system ? builtins.currentSystem, |
||||
|
}: |
||||
|
|
||||
|
pkgs.stdenv.mkDerivation rec { |
||||
|
|
||||
|
name = "searchanddisplace-core"; |
||||
|
|
||||
|
buildInputs = import ./default.nix { inherit system; }; |
||||
|
|
||||
|
## When starting `nix-shell`, load all the project-wide config variables from `loco.yml`. |
||||
|
## This ensures that, e.g., the `mysql` and `mysqldump` commands have the right `MYSQL_HOME`. |
||||
|
shellHook = '' |
||||
|
eval $(loco env --export) |
||||
|
''; |
||||
|
|
||||
|
} |
@ -1,5 +0,0 @@ |
|||||
# run this after any update of sandd.nix |
|
||||
|
|
||||
tar -cJf nixexprs.tar.xz ./pkgs/*.nix \ |
|
||||
--transform "s,^,${PWD##*/}/," \ |
|
||||
--owner=0 --group=0 --mtime="1970-01-01 00:00:00 UTC" |
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue