summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRemi Collet <fedora@famillecollet.com>2012-09-09 16:32:47 +0200
committerRemi Collet <fedora@famillecollet.com>2012-09-09 16:32:47 +0200
commit2b1d9607f6d89404d4c48ac04059480d75bb1b1f (patch)
treec3ce87b73ed69df15265dd773da90f45ab5e1545
parentd83caf893828eabd0fe9b4071eeb6ccc781f66c6 (diff)
php-eaccelerator: create 'httpd' sub package for Apache config
-rw-r--r--php-eaccelerator-cache.patch5
-rw-r--r--php-eaccelerator-config.patch14
-rw-r--r--php-eaccelerator-dev.spec94
-rw-r--r--php-eaccelerator.httpd24
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>
+