Setting up SFTP with Nginx: Difference between revisions
Jump to navigation
Jump to search
mNo edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
Nginx Directory Permissions and Symbolic Link Configuration Guide | |||
| Line 19: | Line 19: | ||
# Verify Symbolic Link | # Verify Symbolic Link | ||
< | <pre lang="bash"># Check if symbolic link is correct | ||
ls -l /home/your_user/public_folder</ | ls -l /home/your_user/public_folder</pre> | ||
Expected output: | Expected output: | ||
| Line 52: | Line 52: | ||
}</pre> | }</pre> | ||
<span id="common-issues"></span> | <span id="common-issues"></span> | ||
== Common Issues | == Troubleshooting of Common Issues == | ||
* Specific directories return 404 (files exist) | * Specific directories return 404 (files exist) | ||
| Line 58: | Line 58: | ||
* Nginx error log shows permission issues | * Nginx error log shows permission issues | ||
== Solution: Adjust Permission Settings == | === Solution: Adjust Permission Settings === | ||
# Check Nginx Error Log | # Check Nginx Error Log | ||
| Line 82: | Line 82: | ||
chmod 644 /usr/share/nginx/html/folder/your_file.png</pre> | chmod 644 /usr/share/nginx/html/folder/your_file.png</pre> | ||
<span id="permission-details"></span> | <span id="permission-details"></span> | ||
== Permission Details == | |||
=== Permission Details === | |||
* <code>chmod 755</code> (directories): | * <code>chmod 755</code> (directories): | ||
| Line 93: | Line 94: | ||
** Others: read (r–) | ** Others: read (r–) | ||
== Testing and Verification == | === Testing and Verification === | ||
<ol style="list-style-type: decimal;"> | <ol style="list-style-type: decimal;"> | ||
| Line 101: | Line 102: | ||
sudo systemctl reload nginx</pre></li></ol> | sudo systemctl reload nginx</pre></li></ol> | ||
== Important Notes == | === Important Notes === | ||
# Permission changes take effect immediately, no nginx restart needed | # Permission changes take effect immediately, no nginx restart needed | ||
Latest revision as of 14:12, 18 April 2025
Nginx Directory Permissions and Symbolic Link Configuration Guide
Environment Overview[edit]
- Using SFTP to upload files to personal directory
- Personal directory linked to website root via symbolic link
- Files accessible through public web URL after upload
Example SFTP Upload Process[edit]
- Upload file to personal directory:
/home/your_user/public_folder/ - File automatically reflects in website directory:
/usr/share/nginx/html/folder/ - Access via URL: http://your_domain/folder/file.png
Configuration Steps[edit]
- Verify Symbolic Link
# Check if symbolic link is correct
ls -l /home/your_user/public_folder
Expected output:
lrwxrwxrwx 1 your_user your_user 26 Jan 20 15:00 /home/your_user/public_folder -> /usr/share/nginx/html/folder
- Check Directory Structure and Permissions
# Check website root directory
sudo ls -lht /usr/share/nginx/html/
# Check target directory
sudo ls -lht /usr/share/nginx/html/folder/
- Check Nginx Configuration
# Check nginx config
sudo nano /etc/nginx/nginx.conf
# Or check site config
sudo nano /etc/nginx/sites-available/default
Basic nginx configuration should include:
server {
listen 80;
server_name your_domain;
root /usr/share/nginx/html;
index index.html;
location / {
try_files $uri $uri/ =404;
}
}
Troubleshooting of Common Issues[edit]
- Specific directories return 404 (files exist)
- Files uploaded via SFTP not accessible via web
- Nginx error log shows permission issues
Solution: Adjust Permission Settings[edit]
- Check Nginx Error Log
sudo tail /var/log/nginx/error.log
Possible error message:
[crit] stat() "[path]/file.png" failed (13: Permission denied)
- Set User Directory Permissions
# Ensure user directory is accessible
sudo chmod 755 /home/your_user
- Set Website Directory Permissions
# Ensure website directory is accessible
sudo chmod 755 /home/your_user/public_folder
- (optional) Set File Permissions
# Set file read permissions
chmod 644 /usr/share/nginx/html/folder/your_file.png
Permission Details[edit]
chmod 755(directories):- Owner: read, write, execute (rwx)
- Group: read and execute (r-x)
- Others: read and execute (r-x)
chmod 644(files):- Owner: read, write (rw-)
- Group: read (r–)
- Others: read (r–)
Testing and Verification[edit]
Public URL format: http://your_domain/folder/file.png
If still inaccessible after configuration:
# Reload nginx configuration sudo systemctl reload nginx
Important Notes[edit]
- Permission changes take effect immediately, no nginx restart needed
- Entire path needs proper execute permissions
- New files need correct permissions set
- Ensure symbolic links remain intact
- Verify files are uploaded to correct location