diff options
author | Remi Collet <fedora@famillecollet.com> | 2012-09-09 16:32:47 +0200 |
---|---|---|
committer | Remi Collet <fedora@famillecollet.com> | 2012-09-09 16:32:47 +0200 |
commit | 2b1d9607f6d89404d4c48ac04059480d75bb1b1f (patch) | |
tree | c3ce87b73ed69df15265dd773da90f45ab5e1545 | |
parent | d83caf893828eabd0fe9b4071eeb6ccc781f66c6 (diff) |
php-eaccelerator: create 'httpd' sub package for Apache config
-rw-r--r-- | php-eaccelerator-cache.patch | 5 | ||||
-rw-r--r-- | php-eaccelerator-config.patch | 14 | ||||
-rw-r--r-- | php-eaccelerator-dev.spec | 94 | ||||
-rw-r--r-- | php-eaccelerator.httpd | 24 |
4 files changed, 88 insertions, 49 deletions
diff --git a/php-eaccelerator-cache.patch b/php-eaccelerator-cache.patch index c0358a8..18de83d 100644 --- a/php-eaccelerator-cache.patch +++ b/php-eaccelerator-cache.patch @@ -1,5 +1,5 @@ --- eaccelerator.c.cache 2012-09-09 11:49:26.000000000 +0200 -+++ eaccelerator.c 2012-09-09 13:07:04.000000000 +0200 ++++ eaccelerator.c 2012-09-09 15:44:28.000000000 +0200 @@ -1521,13 +1521,13 @@ ZEND_INI_ENTRY1("eaccelerator.shm_ttl", "0", PHP_INI_SYSTEM, eaccelerator_OnUpdateLong, &ea_shm_ttl) ZEND_INI_ENTRY1("eaccelerator.shm_prune_period", "0", PHP_INI_SYSTEM, eaccelerator_OnUpdateLong, &ea_shm_prune_period) @@ -7,7 +7,8 @@ -STD_PHP_INI_ENTRY("eaccelerator.log_file", "", PHP_INI_SYSTEM, OnUpdateString, ea_log_file, zend_eaccelerator_globals, eaccelerator_globals) +STD_PHP_INI_ENTRY("eaccelerator.log_file", "", PHP_INI_SYSTEM|PHP_INI_PERDIR, OnUpdateString, ea_log_file, zend_eaccelerator_globals, eaccelerator_globals) STD_PHP_INI_ENTRY("eaccelerator.check_mtime", "1", PHP_INI_SYSTEM, OnUpdateBool, check_mtime_enabled, zend_eaccelerator_globals, eaccelerator_globals) - ZEND_INI_ENTRY1("eaccelerator.shm_only", "0", PHP_INI_SYSTEM, eaccelerator_OnUpdateBool, &ea_scripts_shm_only) +-ZEND_INI_ENTRY1("eaccelerator.shm_only", "0", PHP_INI_SYSTEM, eaccelerator_OnUpdateBool, &ea_scripts_shm_only) ++ZEND_INI_ENTRY1("eaccelerator.shm_only", "0", PHP_INI_SYSTEM|PHP_INI_PERDIR, eaccelerator_OnUpdateBool, &ea_scripts_shm_only) #ifdef WITH_EACCELERATOR_INFO STD_PHP_INI_ENTRY("eaccelerator.allowed_admin_path", "", PHP_INI_SYSTEM, OnUpdateString, allowed_admin_path, zend_eaccelerator_globals, eaccelerator_globals) #endif diff --git a/php-eaccelerator-config.patch b/php-eaccelerator-config.patch index d0578c8..36afeaa 100644 --- a/php-eaccelerator-config.patch +++ b/php-eaccelerator-config.patch @@ -1,5 +1,5 @@ --- eaccelerator.ini.upstream 2012-09-09 12:38:47.000000000 +0200 -+++ eaccelerator.ini 2012-09-09 12:39:55.000000000 +0200 ++++ eaccelerator.ini 2012-09-09 16:20:49.000000000 +0200 @@ -12,13 +12,8 @@ ; You must uncomment one (and only one) line from the following to load @@ -25,3 +25,15 @@ ; A string that's prepended to all keys. This allows two applications that use the ; same key names to run on the same host by setting this in .htaccess or in the main +@@ -79,9 +74,9 @@ + ; Enables or disables caching of compiled scripts on disk. It has no effect + ; on session data and content caching. + ; Default value is "0" that means - use disk and shared memory for caching. +-eaccelerator.shm_only = "0" ++eaccelerator.shm_only = "1" + + ; The script paths that are allowed to get admin information and do admin + ; controls +-eaccelerator.allowed_admin_path = "" ++eaccelerator.allowed_admin_path = "/usr/share/eaccelerator" + diff --git a/php-eaccelerator-dev.spec b/php-eaccelerator-dev.spec index 24e2c8a..113e06d 100644 --- a/php-eaccelerator-dev.spec +++ b/php-eaccelerator-dev.spec @@ -4,21 +4,23 @@ %global apache 48 %global gitver 42067ac %global cache %{_var}/cache/php-eaccelerator +%global extname eaccelerator -Summary: PHP accelerator, optimizer, encoder and dynamic content cacher +Summary: PHP accelerator, optimizer and dynamic content cacher Name: php-eaccelerator Version: 1.0 -Release: 0.2.git%{gitver}%{?dist} +Release: 0.3.git%{gitver}%{?dist} Epoch: 1 # The eaccelerator module itself is GPLv2+ # The PHP control panel is under the Zend license (control.php and dasm.php) -License: GPLv2+ and Zend +License: GPLv2+ and PHP Group: Development/Languages URL: http://eaccelerator.net/ # github.com/eaccelerator/eaccelerator/tarvall/42067ac7e2d55caa5d060580489f5043357ffbe2 Source0: eaccelerator-eaccelerator-%{gitver}.tar.gz Source1: %{name}.cron +Source2: %{name}.httpd # Fix packaging directory path Patch0: %{name}-config.patch @@ -36,7 +38,7 @@ Requires: php-common%{?_isa} = %{php_version} # Required by our cleanup cron job Requires: tmpwatch -Conflicts: php-mmcache, php-pecl-apc, php-xcache +Conflicts: php-pecl-apc, php-xcache # Other third party repo stuff Obsoletes: php53-eaccelerator @@ -68,16 +70,23 @@ Turck MMCache was created by Dmitry Stogov and much of the eAccelerator code is still based on his work. +%package httpd +Summary: Configuration file for eAccelerator and Apache +Requires(pre): httpd +Requires: php%{?_isa} +Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} + +%description httpd +This package provides Apache configuration for eAccelerator: +- enable disk cache +- enable control panel on http://localhost/eaccelerator + + %prep %setup -q -c cp %{SOURCE1} . - -cat >httpd.conf <<EOF -# Redirect cache and log when used from httpd + mod_php -php_value eaccelerator.cache_dir "%{cache}" -php_value eaccelerator.log_file "%{_var}/log/httpd/eaccelerator_log" -EOF +cp %{SOURCE2} . # prepare duplicated build tree mv eaccelerator-eaccelerator-%{gitver} nts @@ -87,14 +96,14 @@ cd nts %patch0 -p0 -b .upstream # Change extension path in the example config sed -e 's|@EXTDIR@/|%{php_extdir}/|' \ - -i eaccelerator.ini + -i %{extname}.ini %patch1 -p0 -b .cache cd ../zts %patch0 -p0 -b .upstream # Change extension path in the example config sed -e 's|@EXTDIR@/|%{php_ztsextdir}/|' \ - -i eaccelerator.ini + -i %{extname}.ini %patch1 -p0 -b .cache @@ -129,19 +138,22 @@ make -C zts install INSTALL_ROOT=%{buildroot} mkdir -p %{buildroot}%{cache}/%{apache} # Drop in the bit of configuration -install -D -m 0644 nts/eaccelerator.ini \ - %{buildroot}%{php_inidir}/eaccelerator.ini -install -D -m 0644 zts/eaccelerator.ini \ - %{buildroot}%{php_ztsinidir}/eaccelerator.ini +install -D -m 0644 nts/%{extname}.ini \ + %{buildroot}%{php_inidir}/%{extname}.ini +install -D -m 0644 zts/%{extname}.ini \ + %{buildroot}%{php_ztsinidir}/%{extname}.ini # Cache removal cron job -install -D -m 0755 -p php-eaccelerator.cron \ +install -D -m 0755 -p %{name}.cron \ %{buildroot}%{_sysconfdir}/cron.daily/%{name} # Apache configuration file -install -D -m 0644 -p httpd.conf \ +install -D -m 0644 -p %{name}.httpd \ %{buildroot}%{_sysconfdir}/httpd/conf.d/%{name}.conf +# Control panel +install -d -m 0755 %{buildroot}/%{_datadir}/%{extname} +install -p -m 0644 nts/control.php %{buildroot}/%{_datadir}/%{extname}/index.php %clean rm -rf %{buildroot} @@ -153,36 +165,21 @@ if [ $1 -eq 0 ]; then rm -rf %{cache}/* &>/dev/null || : fi -%post -# We don't want to require "httpd" in case PHP is used with some other web -# server or without any, but we do want the owner of this directory to default -# to apache for a working "out of the box" experience on the most common setup. -# -# We can't store numeric ownerships in %%files and have it work, so "fix" here, -# but only change the ownership if it's the current user (which is root), which -# allows users to manually change ownership and not have it change back. -if [ ! -d %{cache}/%{apache} ] -then - # Create the ghost'ed directory with default ownership and mode - mkdir -p %{cache}/%{apache} - chown %{apache}:%{apache} %{cache}/%{apache} - chmod 0750 %{cache} -fi - +%post httpd # Please remember to empty your eAccelerator disk cache # when upgrading, otherwise things will break! -rm -rf %{cache}/*/* &>/dev/null || : +rm -rf %{cache}/%{apache}/* &>/dev/null || : %check # Check if the built extensions can be loaded %{__php} -n \ - -d zend_extension=%{buildroot}%{php_extdir}/eaccelerator.so \ - -m | grep eAccelerator + -d zend_extension=%{buildroot}%{php_extdir}/%{extname}.so \ + -m | grep -i %{extname} %{__ztsphp} -n \ - -d zend_extension=%{buildroot}%{php_ztsextdir}/eaccelerator.so \ - -m | grep eAccelerator + -d zend_extension=%{buildroot}%{php_ztsextdir}/%{extname}.so \ + -m | grep -i %{extname} %files @@ -190,17 +187,22 @@ rm -rf %{cache}/*/* &>/dev/null || : %doc nts/{AUTHORS,ChangeLog,COPYING,NEWS,README} %doc nts/*.php %{_sysconfdir}/cron.daily/%{name} -%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf -%config(noreplace) %{php_inidir}/eaccelerator.ini -%config(noreplace) %{php_ztsinidir}/eaccelerator.ini -%{php_extdir}/eaccelerator.so -%{php_ztsextdir}/eaccelerator.so -# We need this hack, as otherwise rpm resets ownership upon package upgrade +%config(noreplace) %{php_inidir}/%{extname}.ini +%config(noreplace) %{php_ztsinidir}/%{extname}.ini +%{php_extdir}/%{extname}.so +%{php_ztsextdir}/%{extname}.so %dir %{cache} -%ghost %{cache}/%{apache} +%{_datadir}/%{extname} + +%files httpd +%config(noreplace) %{_sysconfdir}/httpd/conf.d/%{name}.conf +%attr(750,apache,apache) %dir %{cache}/%{apache} %changelog +* Sun Sep 9 2012 Remi Collet <remi@fedoraproject.org> - 1:1.0-0.3.git42067ac +- create httpd subpackage + * Sun Sep 9 2012 Remi Collet <remi@fedoraproject.org> - 1:1.0-0.2.git42067ac - try to improve cache management diff --git a/php-eaccelerator.httpd b/php-eaccelerator.httpd new file mode 100644 index 0000000..6c84a8e --- /dev/null +++ b/php-eaccelerator.httpd @@ -0,0 +1,24 @@ +# eAccelerator - PHP accelerator, optimizer, encoder and dynamic content cacher + +# Apache specific options - enable cache disk +php_value eaccelerator.shm_only "0" +php_value eaccelerator.cache_dir "/var/cache/php-eaccelerator" +php_value eaccelerator.log_file "/var/log/httpd/eaccelerator_log" + +# Configure control panel +Alias /eaccelerator /usr/share/eaccelerator + +<Directory /usr/share/eaccelerator> + <IfModule mod_authz_core.c> + # Apache 2.4 + Require local + </IfModule> + <IfModule !mod_authz_core.c> + # Apache 2.2 + Order Deny,Allow + Deny from All + Allow from 127.0.0.1 + Allow from ::1 + </IfModule> +</Directory> + |