Friday, February 3, 2017

php - Apache LAMP permisson issues on Ubuntu server

I have been trawling the internet for a few days now and think I've tried almost everything to get some virtual hosts set up on my Ubuntu server but everything short of chmod 777 on the webroot fails.



I have my default Apache conf pointing at /home/server/public_html with the the settings show below





ServerAdmin webmaster@localhost

DocumentRoot /home/server/public_html/

Options FollowSymLinks
AllowOverride All


Options Indexes FollowSymLinks MultiViews

AllowOverride All
Order allow,deny
allow from all


ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/

AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny

Allow from all


ErrorLog ${APACHE_LOG_DIR}/error.log

# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn

CustomLog ${APACHE_LOG_DIR}/access.log combined


Alias /doc/ "/usr/share/doc/"

Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from all






I have then created a virtual host for a project I'm working on say for example project.name.co.uk.conf and inside there I have the following




ServerName http://www.local.dirty-briefs.co.uk
ServerAlias local.project-name.co.uk
DocumentRoot /home/server/public_html/project-name/
DirectoryIndex index.php index.html




I then ran sudo a2ensite project.name.co.uk.conf.
I'm working on a windows 7 machine using samba to access the files on the server. I added the project.name.co.uk to my windows hosts file however not matter what I do I get 403 permission errors.





Thought id add the tail of the Apache error log in case it was useful




*==> /var/log/apache2/error.log <==
[Sat Jun 11 13:22:23 2011] [error] [client 192.168.0.3] PHP Warning: require(/home/server/public_html/dirty-briefs/site/protected/config/main.php): failed to open stream: Permission denied in /home/server/public_html/dirty-briefs/framework/base/CApplication.php on line 120
[Sat Jun 11 13:22:23 2011] [error] [client 192.168.0.3] PHP Fatal error: require(): Failed opening required '/home/server/public_html/dirty-briefs/site/protected/config/main.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/server/public_html/dirty-briefs/framework/base/CApplication.php on line 120*


It may also be worth mentioning I'm working with Yii the PHP framework I have a .htaccess file that lives in my site folder with the following inside



    # Disable directory browsing
Options All -Indexes


# File types
AddType application/x-font-woff .eot .ttf # Font-Face


# URL Rewriting

RewriteEngine On

# Site Maintenance
# RewriteCond %{REMOTE_ADDR} !^10\.0\.2\.2

# RewriteCond %{REQUEST_FILENAME} !-f
# RewriteRule ^(.*)$ /maintenance.html [L]


# LOCAL
RewriteCond %{SERVER_NAME} ^local.project-name.co.uk
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index-local.php/$1
# -----


# PRODUCTION
RewriteCond %{HTTP_HOST} ^project-name.co.uk
RewriteRule ^(.*)$ http://www.project-name.co.uk/$1 [R=301,L]

RewriteCond %{SERVER_NAME} ^www.project-name.co.uk
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /folder/index.php/$1
# -----




I tailed the Apache error and access logs and found I was getting perm errors on importing files inside my PHP script due to permission errors.



I have read about checking what user and group Apache is running under, which are www-data www-data so I'm guessing Apache basically doesn't have perms to access the files under /home/server/public_html unless I give the folder 777 perms which I don't want so I'm just wondering if anyone can spot what I'm doing wrong or advise on anything I can try to get this working

No comments:

Post a Comment

linux - How to SSH to ec2 instance in VPC private subnet via NAT server

I have created a VPC in aws with a public subnet and a private subnet. The private subnet does not have direct access to external network. S...