Ist eigentlich noch niemandem aufgefallen, dass seit der 1139er Firmware die "open_basedir = [...]" Einstellung in der /usr/syno/etc/php.ini bei jedem Neustart des User-Apache überschrieben wird?
Das kann man auch schön in der S97apache-user.sh so sehen. War bei der Beta noch nicht der Fall.
Httpd="/usr/syno/apache/bin/httpd"
HttpdConf="/usr/syno/apache/conf/httpd.conf"
HttpdSSLConf="/usr/syno/apache/conf/extra/httpd-ssl.conf"
PHPINI="/usr/syno/etc/php.ini"
SynoConf="/etc/synoinfo.conf"
SynoDefConf="/etc.defaults/synoinfo.conf"
PIDFILE="/var/run/httpd-user.pid"
RunHTTPS=`/bin/get_key_value /etc/synoinfo.conf runHTTPS`
HttpPort=`/bin/get_key_value /etc/synoinfo.conf httpport`
SSLKEYGEN="/usr/syno/etc/rc.ssl_keygen"
SZF_PHPINI="/usr/syno/etc/php.ini"
PHPINI_DEF_BASEDIR="/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:
/var/services/blog:/var/services/homes"
GenerateConf()
{
cp ${HttpdConf}-user ${HttpdConf}
SupportWeb=`/bin/grep -s ^supportweb /etc.defaults/synoinfo.conf | awk -F \" '{print $2}' | sed 's/ //g'`
RunWeb=`/bin/grep -s ^runweb /etc/synoinfo.conf | awk -F \" '{print $2}' | sed 's/ //g'`
RunWebLocal=`/bin/grep -s ^supportweblocaluser /etc/synoinfo.conf | awk -F \" '{print $2}' | sed 's/ //g'`
open_basedir="${PHPINI_DEF_BASEDIR}"
if [ "$SupportWeb" = "yes" -a "$RunWeb" = "yes" ]; then
echo "Include /usr/syno/etc/httpd-vhost.conf-user" >> ${HttpdConf}
echo "DocumentRoot \"/var/services/web\"" >> ${HttpdConf}
cat ${HttpdSSLConf}-user > ${HttpdSSLConf}
echo "Include /usr/syno/etc/httpd-ssl-vhost.conf-user" >> ${HttpdSSLConf}
open_basedir="${open_basedir}:`ls -ld /var/services/web | awk '{print $NF}'`"
else
echo "DocumentRoot \"/usr/syno/synoman/phpsrc/web\"" >> ${HttpdConf}
cat ${HttpdSSLConf}-user | sed 's/DocumentRoot "\/var\/services\/web"/DocumentRoot "\/usr\/syno\/synoman\/phpsrc
\/web"/g' > ${HttpdSSLConf}
fi
if [ "$HttpPort" != "80" ]; then
echo "Listen $HttpPort" >> ${HttpdConf}
fi
if [ "$SupportWeb" = "yes" -a "$RunWebLocal" = "yes" ]; then
echo "Include /usr/syno/apache/conf/extra/httpd-userdir.conf-user" >> ${HttpdConf}
fi
WebmailEnabled=`/bin/get_key_value /etc/synoinfo.conf webmail_enabled`
SZD_MailStation="/var/packages/MailStation"
SZD_RoundCube="${SZD_MailStation}/target/roundcubemail"
if [ "x$WebmailEnabled" = "xyes" -a -f "${SZD_MailStation}/enabled" ]; then
echo "AliasMatch ^/mail$ \"${SZD_RoundCube}/\"" >> ${HttpdConf}
echo "Alias /mail/ \"${SZD_RoundCube}/\"" >> ${HttpdConf}
open_basedir="${open_basedir}:${SZD_RoundCube}"
fi
sed "/^open_basedir/c\\open_basedir = ${open_basedir}" ${SZF_PHPINI} > ${SZF_PHPINI}.$$
mv ${SZF_PHPINI}.$$ ${SZF_PHPINI}
}
...
Womit hast Du die Datei denn editiert? Die Synology Stations sind da sehr empfindlich, was z.B. die Zeilenenden angeht. Wenn beim Startvorgang Dateien mit ungültigen Zeichen gefunden werden, werden die Dateien ersetzt. War schon immer so.
Versuch es mal mit dem Editor 'vi'.
Trolli
SZF_PHPINI="/usr/syno/etc/php.ini"
PHPINI_DEF_BASEDIR="/usr/syno/synoman:/etc:/var/run:/tmp:/var/spool/php:/volume1/@tmp/php:/var/services/web:/var/services/photo:/var/services/blog:/var/services/homes"
GenerateConf()
{
cp ${HttpdConf}-user ${HttpdConf}
SupportWeb=`/bin/grep -s ^supportweb /etc.defaults/synoinfo.conf | awk -F \" '{print $2}' | sed 's/ //g'`
RunWeb=`/bin/grep -s ^runweb /etc/synoinfo.conf | awk -F \" '{print $2}' | sed 's/ //g'`
RunWebLocal=`/bin/grep -s ^supportweblocaluser /etc/synoinfo.conf | awk -F \" '{print $2}' | sed 's/ //g'`
open_basedir="${PHPINI_DEF_BASEDIR}"
if [ "$SupportWeb" = "yes" -a "$RunWeb" = "yes" ]; then
echo "Include /usr/syno/etc/httpd-vhost.conf-user" >> ${HttpdConf}
echo "DocumentRoot \"/var/services/web\"" >> ${HttpdConf}
cat ${HttpdSSLConf}-user > ${HttpdSSLConf}
echo "Include /usr/syno/etc/httpd-ssl-vhost.conf-user" >> ${HttpdSSLConf}
open_basedir="${open_basedir}:`ls -ld /var/services/web | awk '{print $NF}'`"
else
echo "DocumentRoot \"/usr/syno/synoman/phpsrc/web\"" >> ${HttpdConf}
cat ${HttpdSSLConf}-user | sed 's/DocumentRoot "\/var\/services\/web"/DocumentRoot "\/usr\/syno\/synoman\/phpsrc\/web"/g' > ${HttpdSSLConf}
fi
if [ "$HttpPort" != "80" ]; then
echo "Listen $HttpPort" >> ${HttpdConf}
fi
if [ "$SupportWeb" = "yes" -a "$RunWebLocal" = "yes" ]; then
echo "Include /usr/syno/apache/conf/extra/httpd-userdir.conf-user" >> ${HttpdConf}
fi
WebmailEnabled=`/bin/get_key_value /etc/synoinfo.conf webmail_enabled`
SZD_MailStation="/var/packages/MailStation"
SZD_RoundCube="${SZD_MailStation}/target/roundcubemail"
if [ "x$WebmailEnabled" = "xyes" -a -f "${SZD_MailStation}/enabled" ]; then
echo "AliasMatch ^/mail$ \"${SZD_RoundCube}/\"" >> ${HttpdConf}
echo "Alias /mail/ \"${SZD_RoundCube}/\"" >> ${HttpdConf}
open_basedir="${open_basedir}:${SZD_RoundCube}"
fi
sed "/^open_basedir/c\\open_basedir = ${open_basedir}" ${SZF_PHPINI} > ${SZF_PHPINI}.$$
mv ${SZF_PHPINI}.$$ ${SZF_PHPINI}
}
Hallo,
versuch doch mal in dem Script
PHPINI_DEF_BASEDIR=
zu erweitern.
Gruß Götz
Versuch es doch mal so, wie itari es in seinem init-Skript macht: http://www.synology-forum.de/showthread.html?p=24021#post24021
nicht mehr oder weniger elegant als php.ini direkt zu bearbeiten. Die ist bei Firmwareupgrade auch weg.Nun, funktionieren tut es so schon, ist aber eben meiner Meinung nach nicht so die eleganteste Lösung.
Es gibt wohl noch eine Lösungsmöglichkeit:
-> http://forum.synology.com/enu/viewtopic.php?p=90142#p90142
Hallo,
nicht mehr oder weniger elegant als php.ini direkt zu bearbeiten. Die ist bei Firmwareupgrade auch weg.
Gruß Götz
Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.
Als Dankeschön schalten wir deinen Account werbefrei.