Difference between revisions of "Uploadtmpdir"

From SME Server
Jump to navigationJump to search
Line 6: Line 6:
  
 
=== template of php.ini ===
 
=== template of php.ini ===
 +
{{Note box|With this configuration, It appears that the tmp folder is set for all web applications on your server. For a better matter of security it is preferable to set each virtual host of your httpd server. See Template of httpd.conf}}
 +
 
  mkdir /etc/e-smith/templates-custom/etc/php.ini/               
 
  mkdir /etc/e-smith/templates-custom/etc/php.ini/               
 
  nano /etc/e-smith/templates-custom/etc/php.ini/12phptmpfolder
 
  nano /etc/e-smith/templates-custom/etc/php.ini/12phptmpfolder
Line 23: Line 25:
 
  signal-event console-save  
 
  signal-event console-save  
 
=== Template of httpd.conf ===
 
=== Template of httpd.conf ===
 
+
{{Note box|With this configuration, It appears that the tmp folder will be set only for this web application and not at all for other. It is a better matter for security}}
 
You can do the same thing by adding the following in the httpd.conf template of your contrib or special apache virtual host.
 
You can do the same thing by adding the following in the httpd.conf template of your contrib or special apache virtual host.
 
  php_admin_value upload_tmp_dir /tmp
 
  php_admin_value upload_tmp_dir /tmp
  
with [[Web_Application_RPM|web contrib]] the special line to put in the config of your virtual host is
+
with [[Web_Application_RPM]] the special line to put in the config of your virtual host is
  php_admin_value upload_tmp_dir /tmp
+
  $OUT .= "    php_admin_value upload_tmp_dir /tmp\n";
  
Example root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92foo  
+
Example for root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92foo  
 
  $OUT .= "    php_value mysql.default_user $foo{DbUser}\n";
 
  $OUT .= "    php_value mysql.default_user $foo{DbUser}\n";
 
  $OUT .= "    php_value mysql.default_password $foo{DbPassword}\n";
 
  $OUT .= "    php_value mysql.default_password $foo{DbPassword}\n";
Line 36: Line 38:
 
  if ($pass)
 
  if ($pass)
 
  {
 
  {
 +
 +
and then do
 +
 +
signal-event console-save
 +
 +
If you want to erase this setting you have to remove the file and the folder if necessary
 +
rm root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92foo
 +
and
 +
signal-event console-save
  
 
[[Category:Howto]]
 
[[Category:Howto]]

Revision as of 21:43, 5 June 2013

upload_tmp_dir

Since SME Server V8, you could have sometime an error is thrown by PHP and you will need to specify a temporary directory (e.g. upload_tmp_dir) which is not set in php.ini. see bugzilla:6650 and bugzilla:7652. Many Php applications needs this setting, most of known are wordpress, roudcube, egroupware, etc. Symptoms are that you can't upload contents to the PHP application.

An easy way is to make a Custom Template to resolve this issue.

template of php.ini

Important.png Note:
With this configuration, It appears that the tmp folder is set for all web applications on your server. For a better matter of security it is preferable to set each virtual host of your httpd server. See Template of httpd.conf


mkdir /etc/e-smith/templates-custom/etc/php.ini/              
nano /etc/e-smith/templates-custom/etc/php.ini/12phptmpfolder

then paste this and save the file by ctrl+x

upload_tmp_dir = /tmp

and then do

signal-event console-save 

If you want to erase this setting you have to remove the file and the folder if necessary

rm /etc/e-smith/templates-custom/etc/php.ini/12phptmpfolder
rm -rf /etc/e-smith/templates-custom/etc/php.ini/

and

signal-event console-save 

Template of httpd.conf

Important.png Note:
With this configuration, It appears that the tmp folder will be set only for this web application and not at all for other. It is a better matter for security


You can do the same thing by adding the following in the httpd.conf template of your contrib or special apache virtual host.

php_admin_value upload_tmp_dir /tmp

with Web_Application_RPM the special line to put in the config of your virtual host is

$OUT .= "    php_admin_value upload_tmp_dir /tmp\n";

Example for root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92foo

$OUT .= "    php_value mysql.default_user $foo{DbUser}\n";
$OUT .= "    php_value mysql.default_password $foo{DbPassword}\n";
$OUT .= "    php_admin_value upload_tmp_dir /tmp\n";
if ($pass)
{

and then do

signal-event console-save 

If you want to erase this setting you have to remove the file and the folder if necessary

rm root/etc/e-smith/templates/etc/httpd/conf/httpd.conf/92foo

and

signal-event console-save