On my FreeBSD system, my apache
webserver would get angry whenever I update the php
& extensions ports. Requiring a bunch of other operations after the 'portmaster -a
'.
Since I've been playing around with CFEngine 3, I had started to add to my "bundle agent apache
", to do more than just promise config files current, process running, reloads, etc.
So, one of the first problems I had run into on FreeBSD, is that there are certain extensions that need to be in order in '/usr/local/etc/php/extension.ini
'. Which is solved by using fixphpextorder.sh
.
Well, fortunately when this script is run it results in a backup file of 'extensions.ini.old
' which is the same age or newer than 'extennsions.ini
'.
CFEngine3 can take care of it this way:
Code
vars: | |
| |
"ext_dir" string => "/usr/local/etc/php"; | |
| |
"ext_file" string => "extensions.ini"; | |
| |
"fix_php_ext" string => "/usr/local/etc/fixphpextorder.sh"; | |
| |
classes: | |
| |
"need_fix_php" expression => isnewerthan("$(ext_dir)/$(ext_file)","$(ext_dir)/$(ext_file).old"); | |
| |
commands: | |
| |
need_fix_php:: | |
| |
"$(fix_php_ext)" contain => in_dir("$(ext_dir)"); | |
| |
"$(g.lrc_d)/$(g.apache) graceful"; |
g.apache
is "apache22
" currently on FreeBSD, and "apache2
" on Ubuntu. Someday it might become "apache24
" on FreeBSD.
Since I did FreeBSD first, and I'm still working on getting my one of 4 (or less) Ubuntu rolled in, I have:
g.rc_d
as "/etc/rc.d
" and g.lrc_d
as "/usr/local/etc/rc.d
" for FreeBSD. They are both set to "/etc/init.d
" for Ubuntu. I also have a g.init_d
for Ubuntu, but not FreeBSD. Not sure which I'll use where....I suppose if its an OS specific case, g.init_d
would get used and if its not...then which ever one is the correct one for FreeBSD will get used.
Pages: 1· 2