skoobe / riofs

Userspace S3 filesystem
GNU General Public License v3.0
393 stars 60 forks source link

Apache Document Root #138

Open scrolls-mckenzie opened 7 years ago

scrolls-mckenzie commented 7 years ago

Hello,

Apologies if this is a repeat. I have recently come across this repo and am very impressed about the speed and usage of the riofs system.

I would like to implement the S3 as a document root location for apache2 so that i can spin up many instances without having to replicate/duplicate data across machines.

I have tried to setup riofs, I was successful as root but have errors as a standard user. Main issue is that the folder/file permission when run as root cannot be read by apache2 and receive a 403 forbidden

When i run the command as a non root user, i get the following errors

ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 1 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 2 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 3 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 4 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 5 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 6 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 7 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 8 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 9 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 10 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 11 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 12 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 13 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 14 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 15 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 16 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 17 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 18 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 19 of 20 ERROR! [con: 0x14092f0] Server returned HTTP error: 403 (Forbidden)! Retry ID: 20 of 20 ERROR! [con: 0x14092f0] Reached the maximum number of retries ! ERROR! Failed to execute HTTP request ! ERROR! Failed to get bucket versioning!

Any information would be great, if anyone has had success with this please let me know

ThePythonicCow commented 7 years ago

To set different permissions on your riofs files and directories

try changing these riofs.conf.xml fields:

 <dir_mode type="int">-1</dir_mode>

<file_mode type="int">-1</file_mode>

In place of the -1, you might have something such as 0755 and 0644.

The run "kill -s USR2 $(pidof riofs)" to get riofs to reload this configuration.

-- Paul Jackson pj@usa.net

scrolls-mckenzie commented 7 years ago

Does that apply to it running as root or as a non root user?

wizzard commented 7 years ago

Hello, the error log you mentioned in your post isn't related to the local user name. To me is seems that you are providing wrong AWS credentials, when trying to run RioFS. But without any additional information it's hard to tell what is the real issue.

scrolls-mckenzie commented 7 years ago

Yes, regardless of that. I have read documentation that says to not run riofs as root. The config file is the same for both root and non-root users.

My question was in regard to the code you sent. Is it best to run this as root or not?

wizzard commented 7 years ago

The general tip is: try to avoid running any applications as root user. This is highly unsafe. RioFS does not have any code that requires root access rights.

scrolls-mckenzie commented 7 years ago

I figured out my other issues.

Are you aware of any limitation using riofs as a document root for php delivery (ie. wordpress)

scrolls-mckenzie commented 7 years ago

I got it.....

This is rocking

Apologies for any noob posts.

wizzard commented 7 years ago

Please be aware about a very important RioFS limitation: it does not allow appending data to already existing files. Say your script created a new file, wrote some data and closed it, a moment later your script decided to write more data to the end of the existing file - it opened the file, used "seek()" function to travel to the end of the file and tried to write a new portion of data - that operation would fail, as we do not support appending.

scrolls-mckenzie commented 7 years ago

Thank you for the follow up info. This limitation will be considered in future deployments. Are there any plans to rectify this issue?