Sisyphus repositório
Última atualização: 1 outubro 2023 | SRPMs: 18631 | Visitas: 37501368
en ru br
ALT Linux repositórios
5.0: 5.2.7.20080920-alt1.M50.1
4.1: 5.2.5-alt1.M41.3
4.0: 5.2.2-alt1

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


--- 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");
 
projeto & código: Vladimir Lettiev aka crux © 2004-2005, Andrew Avramenko aka liks © 2007-2008
mantenedor atual: Michael Shigorin
mantenedor da tradução: Fernando Martini aka fmartini © 2009