Skip to content
View in the app

A better way to browse. Learn more.

Unraid

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.

Php Upgrade package for unRAID

Featured Replies

php-upgrade+unraid-0.0.2-i386-bubba.tgz

 

  Download from:  http://www.tcpatools.com/bubba/php-upgrade+unraid-0.0.2-i386-bubba.tgz

 

This package will "flesh out" the stock php install in unRAID 5.0-beta1.  This package is comprehensive, but it is also pretty heavy as a result (9MB gzipped) but a lot are replacements for stock libs (and many identical... I have not pruned identical files yet).  I'm sure many of the support files and libs can be moved to a supplemental package.

 

The stock CLI version of php (/usr/bin/php) is left alone, and the CGI version is installed beside it in /usr/bin/php-cgi.  Some of the shared libs are updated.

 

Note the Lighttpd package looks for the php-cgi.ini in /boot/custom/php (which this package provides).  I intend to implement the same conf.d directory structure for the php-cgi.ini as I set up for Lighttpd, so modifications are easier.

This is intended primarily for testing, as it is anticipated that a future version of unRAID 5.x will include a more robust install of php, and make this package obsolete.

 

Comments and suggestions welcome.

 

========Contents=========

Includes these packages (dependencies for various php libs)

- libmcrypt-2.5.7-i486-1

- libtool-2.2.6b-i486-2

- libxml2-2.7.6-i486-1

 

========Revisions=========

0.0.2 - pruned some files and scan /boot/custom/php/conf.d for .ini files

0.0.1 - initial release for testing

 

==========To Do===========

You need to manually stop and restart Lighttpd if you add this package.

Prune identical files based on unRAID stock distro

Relocate support files and libs, and further prune php-cgi.ini

What additions to PHP were made?

Some of the compile time options should probbably be in the stock PHP, Such as PCRE zlib/bz/zip support.

 

Yet I'm curious what else is added.

Features like mysql should probably require installation of the mysql libs separately.

 

  • Author
What additions to PHP were made?

 

It fleshes out the php to the equivalent of the default install of 5.2.13 as ships with slackware.

 

Look at phpinfo and in /usr/lib/php/extensions/

 

I will be pruning this all down, but I wanted to get this out into dev hands as is, while I work on it some more.

 

I have commented out some of the extension libs in the php-cgi.ini (they have dependencies on various libs that I didn't feel like including), but have not pruned them from the distro yet.

 

I added to the OP some more info about the contents of the package.

 

What additions to PHP were made?

Some of the compile time options should probbably be in the stock PHP, Such as PCRE zlib/bz/zip support.

 

Yet I'm curious what else is added.

Features like mysql should probably require installation of the mysql libs separately.

 

 

I added PCRE in -beta2, what does zlib/bz/zip support do for you?

What additions to PHP were made?

Some of the compile time options should probbably be in the stock PHP, Such as PCRE zlib/bz/zip support.

 

Yet I'm curious what else is added.

Features like mysql should probably require installation of the mysql libs separately.

 

 

I added PCRE in -beta2, what does zlib/bz/zip support do for you?

 

read/write compressed files.

I think Bubba mentioned it also for possibility to use with advanced package manager.

 

I could also see zip or gz being used to capture syslogs for uploading.

I don't know that it's 100% necessary, but something is necessary in order to make a .zip for syslog posting.

At the very least zip/unzip binaries should be in the core distro.

 

My thought is, if the shared libs are there, then use them.

 

I'll ask this question aimed more at bubba. What is required for PEAR support and is this something that should be in the core?

 

This one came up when I was trying to access Tar::Archive to review a .tgz file pacakge or update files within.

 

  • Author

Part of the problem is that many php options not only create an extension in /usr/lib/php/extensions/, they have their own library dependencies, such as XML.

 

My idea was to compile php-cgi with the widest array of stuff enabled, but prune the libraries after the build to make the package smaller, and then individual extensions and their dependencies (such as mySQL) can be added back in the field.

 

I'm not sure which ones can be added after-the-fact by dropping in the extension into /usr/lib/php/extensions/, and which ones will not work unless support was included when php-cgi was built.

 

For example, I don't know if I just drop mysql.so and mysqli.so (and any dependencies) into /usr/lib/php/extensions/ and enable them in php.ini, if that will work if php-cgi was not compiled with the sql support.  In short, are the make switches just building the necessary files that can be added later, or are they putting hooks into the php-cgi core?  I know some are doing the latter... but I don't know which ones. 

gzip and bzip2 packages have been included for quite a while now, I thought you were referring to this option (and others) in php.SlackBuild:

 

--enable-zip=shared

 

which is not included in the 'unraid' build of PHP.  (Wondering what that option provides for.)

 

Here is the current (as of -beta2) PHP configure option list:

# tmm - modifed to produce only php-cli for unraid
php_configure() {
EXTENSION_DIR=/usr/lib${LIBDIRSUFFIX}/php/extensions \
CFLAGS="$SLKCFLAGS" \
./configure \
  $* \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --with-libdir=lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --disable-all \
  --without-apxs2 \
  --disable-libxml \
  --enable-cli \
  --with-pcre-regex=/usr \
  --build=$ARCH-slackware-linux
}

 

And here is the slackware 'stock' configure option list:

# Generic "kitchen sink" configure function, with as many things as possible (and
# maybe then some ;-) compiled as shared extensions:
php_configure() {
EXTENSION_DIR=/usr/lib${LIBDIRSUFFIX}/php/extensions \
CFLAGS="$SLKCFLAGS" \
./configure \
  $* \
  --prefix=/usr \
  --libdir=/usr/lib${LIBDIRSUFFIX} \
  --with-libdir=lib${LIBDIRSUFFIX} \
  --sysconfdir=/etc \
  --disable-safe-mode \
  --disable-magic-quotes \
  --enable-zend-multibyte \
  --enable-mbregex \
  --enable-tokenizer=shared \
  --with-config-file-scan-dir=/etc/php \
  --with-config-file-path=/etc/httpd \
  --enable-mod_charset \
  --with-layout=PHP \
  --enable-sigchild \
  --enable-xml \
  --with-libxml-dir=/usr \
  --enable-simplexml \
  --enable-spl \
  --enable-filter \
  --disable-debug \
  --with-openssl=shared \
  --with-pcre-regex=/usr \
  --with-zlib=shared,/usr \
  --enable-bcmath=shared \
  --with-bz2=shared,/usr \
  --enable-calendar=shared \
  --enable-ctype=shared \
  --with-curl=shared \
  --with-curlwrappers \
  --with-mcrypt=/usr \
  --enable-dba=shared \
  --with-gdbm=/usr \
  --with-db4=/usr \
  --enable-dbase=shared \
  --enable-exif=shared \
  --enable-ftp=shared \
  --with-gd=shared \
  --with-jpeg-dir=/usr \
  --with-png-dir=/usr \
  --with-zlib-dir=/usr \
  --with-xpm-dir=/usr \
  --with-freetype-dir=/usr \
  --with-t1lib=/usr \
  --enable-gd-native-ttf \
  --enable-gd-jis-conv \
  --with-gettext=shared,/usr \
  --with-gmp=shared,/usr \
  --with-iconv=shared \
  --with-imap-ssl=/usr \
  --with-imap=$IMAPLIBDIR \
  --with-ldap=shared \
  --enable-mbstring=shared \
  --enable-hash \
  --with-mhash=shared,/usr \
  --with-mysql=shared,/usr \
  --with-mysqli=shared,/usr/bin/mysql_config \
  --enable-pdo=shared \
  --with-pdo-mysql=shared,/usr \
  --with-pdo-sqlite=shared,/usr \
  --with-pspell=shared,/usr \
  --with-mm=/usr \
  --enable-shmop=shared \
  --with-snmp=shared,/usr \
  --enable-soap=shared \
  --enable-sockets \
  --with-sqlite=shared \
  --enable-sqlite-utf8 \
  --with-regex=php \
  --enable-sysvmsg \
  --enable-sysvsem \
  --enable-sysvshm \
  --enable-wddx=shared \
  --with-xsl=shared,/usr \
  --enable-zip=shared \
  --with-tsrm-pthreads \
  --enable-shared=yes \
  --enable-static=no \
  --with-gnu-ld \
  --with-pic \
  --build=$ARCH-slackware-linux
}

 

And what a pain-in-the-neck it was to get PHP to compile the first time  :o

 

gzip and bzip2 packages have been included for quite a while now, I thought you were referring to this option (and others) in php.SlackBuild:

 

--enable-zip=shared

 

which is not included in the 'unraid' build of PHP.  (Wondering what that option provides for.)

 

>> And what a pain-in-the-neck it was to get PHP to compile the first time  :o

 

I can imagine. I used the cut down version and slowly added options and tested.

I think the pcre is crucial as there is a deprecated warning for other regex type functions.

I'm going to defer to other votes if the bzip/gzip php functionality is required.

 

As far as infozip   /bin/zip /bin/unzip, I do think they should be part of the distro.

I know you had unrar in there.

 

/bin/zip is to automate syslog conversion and compression for posting.

/bin/unzip is for unpacking files that users may provide.

Even when I download the unRAID distro, I wget it to the unraid array, then unzip it with specific command line options to stage it.

 

Come to think of it, if you package the /etc/unraid-release or /etc/unraid-version,

We can do a cpio off bzroot and pull out the version, then use the verison information to name the bzimage/bzroot and autoupdate sysllinux.cfg.

 

  • Author

FWIW, with the lighttpd and php=upgrade packages applied, pretty much everything I've thrown at it (such as phpsysinfo 3.x, nzbget web interface) works right out of the box.

 

AjaXplorer is also working, including the text file editing in the browser.

 

I have not yet done xml-rpc, scgi and rTorrent however... that's coming soon.

  • Author
We can do a cpio off bzroot and pull out the version, then use the verison information to name the bzimage/bzroot

 

Ohhh yes....

We can do a cpio off bzroot and pull out the version, then use the verison information to name the bzimage/bzroot

 

Ohhh yes....

Only if Tom provides "cpio"  (Or we supply an add-on package for it)

As far as I know, it is not part of 5.0 or any prior version of unRAID.

 

Joe L.

  • Author

 

Here is the current (as of -beta2) PHP configure option list:

 

Note that with php prior to 5.3, the default was to not build CGI.... so if you are sticking with 5.2.13, you need to add:

 

--enable-fastcgi

.

 

Lack of CGI is the main problem with some stuff not working as expected.... missing libs like pcre is the other.

 

Of course, you may want different builds for phpCLI (for emhttp) and another for phpCGI (for lighttpd).

 

 

  • Author

New version posted.  See OP for details.

 

php-upgrade+unraid-0.0.2-i386-bubba.tgz

 

 

We can do a cpio off bzroot and pull out the version, then use the verison information to name the bzimage/bzroot

 

Ohhh yes....

Only if Tom provides "cpio"   (Or we supply an add-on package for it)

As far as I know, it is not part of 5.0 or any prior version of unRAID.

 

Joe L.

 

uh /me slaps head, forgot about that.

Archived

This topic is now archived and is closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.