Arch Linux httpd/apache with php and the issue that php-cli can write to /usr/share/webapps but php-http (php-fpm) can not
I wanted to install dolibarr on my arch linux machine.
The first steps are simple and I tried to stick to the official but little outdated aur package.
#as root
cd /usr/share/webapps
mkdir dolibarr
cd dolibarr
git clone https://github.com/dolibarr/dolibarr -b 14.0.1 .
cd ..
choown -R http:http dolibarr
sudo -u http touch dolibarr/htdocs/conf/conf.php
cat > /etc/httpd/conf/extra/httpd-dolibarr.conf <<DELIM
Alias /dolibarr "/usr/share/webapps/dolibarr/htdocs"
<Directory "/usr/share/webapps/dolibarr/htdocs">
AllowOverride All
Options FollowSymlinks Indexes
Require all granted
</Directory>
# vim: set ft=apache ts=2 sw=2 et:
DELIM
echo "#dolibar" >> /etc/httpd/conf/httpd.conf
echo "Include conf/extra/httpd-dolibarr.conf" >> /etc/httpd/conf/httpd.conf
systemctl restart httpd.service
After that, I wanted to open my http://<hostname>/dolibarr
and it worked out quite well. The build in installation routine started and I was able to click to the next page to check the system.
Almost all went well but it took me hours to figure out why the installation routine complained about the conf.php
file. It had the right permissions (u+rw
) but the php built in is_writable
is returning false
for this file.
It wasn't a running selinux, it wasn't a wrong configured php open_basedir
or php safemode
. It really turned out, that apache http refuesed to allow writing to a file outside than the configured home path of /srv/http
.
Even a softlink created in /srv/http
linking to /usr/share/webapps/dolibarr
was not working.
What was working is to mv /usr/share/webapps/dolibarr /srv/http
and to adapt the httpd-dolibarr.conf
.