Group :: Sistema/Servidores
RPM: apache-mod_php5
Main Changelog Spec Patches Sources Download Gear Bugs e FR Repocop
Patch: php-5.1.3-sapi-mod_php.patch
Download
Download
--- mod_php5-5.1.3.cvs20060122/mod_php5.c.fix 2006-01-22 19:18:35 +0300
+++ mod_php5-5.1.3.cvs20060122/mod_php5.c 2006-01-22 19:17:32 +0300
@@ -21,16 +21,17 @@
#include "php_apache_http.h"
#include "http_conf_globals.h"
#ifdef NETWARE
#define SIGPIPE SIGINT
#endif
+#include <errno.h>
#if defined(ZEND_MULTIBYTE) && defined(HAVE_MBSTRING)
#include "ext/mbstring/mbstring.h"
#endif /* defined(ZEND_MULTIBYTE) && defined(HAVE_MBSTRING) */
#undef shutdown
/* {{{ Prototypes
*/
@@ -76,16 +77,39 @@ static unsigned char apache_php_initiali
typedef struct _php_per_dir_entry {
char *key;
char *value;
uint key_length;
uint value_length;
int type;
} php_per_dir_entry;
+/* default php.ini path */
+static int php_ini_path_override(char **val)
+{
+ char *buf = NULL;
+
+ if (getenv("PHPRC")) {
+ *val = buf;
+ return 0;
+ }
+
+ if ((buf = (char *) malloc(MAXPATHLEN)) == NULL) {
+ errno = ENOMEM;
+ return -1;
+ }
+
+ snprintf(buf, MAXPATHLEN, "/etc/php/%d.%d.%d/apache-mod_php",
+ PHP_MAJOR_VERSION,
+ PHP_MINOR_VERSION,
+ PHP_RELEASE_VERSION);
+ *val = buf;
+ return 0;
+}
+
/* some systems are missing these from their header files */
/* {{{ php_save_umask
*/
static void php_save_umask(void)
{
saved_umask = umask(077);
umask(saved_umask);
@@ -764,16 +788,22 @@ static CONST_PREFIX char *php_apache_val
php_per_dir_entry per_dir_entry;
if (!apache_php_initialized) {
apache_php_initialized = 1;
#ifdef ZTS
tsrm_startup(1, 1, 0, NULL);
#endif
sapi_startup(&apache_sapi_module);
+ if ( !apache_sapi_module.php_ini_path_override || !*apache_sapi_module.php_ini_path_override ) {
+ if ( php_ini_path_override(&apache_sapi_module.php_ini_path_override) == -1) {
+ perror("Can't override php.ini path");
+ return NULL;
+ }
+ }
php_apache_startup(&apache_sapi_module);
}
per_dir_entry.type = mode;
if (strcasecmp(arg2, "none") == 0) {
arg2 = "";
}
@@ -907,16 +937,18 @@ static void php_init_handler(server_rec
{
register_cleanup(p, NULL, (void (*)(void *))apache_php_module_shutdown_wrapper, (void (*)(void *))php_module_shutdown_for_exec);
if (!apache_php_initialized) {
apache_php_initialized = 1;
#ifdef ZTS
tsrm_startup(1, 1, 0, NULL);
#endif
sapi_startup(&apache_sapi_module);
+ if (!apache_sapi_module.php_ini_path_override || !*apache_sapi_module.php_ini_path_override)
+ php_ini_path_override(&apache_sapi_module.php_ini_path_override);
php_apache_startup(&apache_sapi_module);
}
#if MODULE_MAGIC_NUMBER >= 19980527
{
TSRMLS_FETCH();
if (PG(expose_php)) {
#if HARDENING_PATCH
ap_add_version_component("PHP/" PHP_VERSION " with Hardening-Patch");