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 |
|||
nixos = import <nixpkgs/nixos> { |
|||
nixos = import <nixpkgs> { |
|||
configuration = import ./configuration.nix; |
|||
}; |
|||
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