Sunday, October 27, 2024

Re: Cpanel Upload

Thanks alot for your help devs

On Sun, 27 Oct 2024 at 21:39, maina patrick <mainapatrick2937@gmail.com> wrote:

To successfully host a Django website on cPanel and troubleshoot the 500 error occurring when DEBUG is set to False, here's a comprehensive guide:

Step 1: Prepare Django Project for Deployment

  1. Settings Adjustment:

    • In your settings.py file, set DEBUG = False for production.
    • Add your domain to the ALLOWED_HOSTS list, like this:
      python
      ALLOWED_HOSTS = ['yourdomain.com', 'www.yourdomain.com']
  2. Static Files Configuration:

    • Set up the STATIC_ROOT for static files. For example:
      python
      STATIC_ROOT = os.path.join(BASE_DIR, 'static')
    • Run python manage.py collectstatic to gather all static files into the STATIC_ROOT directory.

Step 2: Compress and Upload Your Project

  1. Compress the Project Folder:
    • Zip your Django project files to simplify the upload.
  2. Upload the Zip File:
    • Go to File Manager in cPanel, navigate to the root of your domain, and upload the zipped project.
    • Extract the zip file.

Step 3: Create a Python App in cPanel

  1. Go to Setup Python App in cPanel.
  2. Set the Python Version (typically Python 3.7 or later).
  3. Select the Project Directory where you uploaded your files.
  4. Configure the Virtual Environment:
    • Set up the virtual environment by pointing to the folder where manage.py is located.
  5. Install Dependencies:
    • Click Enter to the virtual environment.
    • Run pip install -r requirements.txt to install your project dependencies.

Step 4: Configure Environment Variables

  1. Go to the Environment Variables section in your Python App settings.
  2. Set environment variables for DJANGO_SETTINGS_MODULE:
    plaintext
    DJANGO_SETTINGS_MODULE=yourproject.settings
  3. If you're using a secret key, add it as well:
    plaintext
    SECRET_KEY=your_secret_key

Step 5: Set Up Database Settings

  1. Configure the database in settings.py to use the production database (if not using SQLite).
  2. Ensure that the database credentials are correct and accessible in the cPanel environment.

Step 6: Check Permissions

Ensure that all files and folders have the correct permissions:

  • Files: 644
  • Folders: 755

Step 7: Adjust Allowed Hosts and Error Handling

  1. Test ALLOWED_HOSTS:
    • Make sure your domain is added to ALLOWED_HOSTS.
  2. Configure Logging in settings.py to catch errors:
    python
    LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'handlers': { 'file': { 'level': 'ERROR', 'class': 'logging.FileHandler', 'filename': os.path.join(BASE_DIR, 'error.log'), }, }, 'loggers': { 'django': { 'handlers': ['file'], 'level': 'ERROR', 'propagate': True, }, }, }
  3. Check the Error Log:
    • In cPanel, go to Errors under Metrics to see server logs.
    • Look in error.log in your project directory to identify specific errors.

Step 8: Test and Debug

  1. Restart the Python app in cPanel.
  2. Access the site with DEBUG = False and check if it runs smoothly.
  3. If the 500 error persists, inspect logs and address any misconfigurations.

This should help troubleshoot and resolve the issue on cPanel with DEBUG set to False




if the error persists let me know , happy to help
 

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/django-users/CA%2B7S-XsZRrTYSO5a6PaYjB47KTySw2aaRq2TvqoMOqer-ww-Eg%40mail.gmail.com.

--
You received this message because you are subscribed to the Google Groups "Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email to django-users+unsubscribe@googlegroups.com.
To view this discussion visit https://groups.google.com/d/msgid/django-users/CAE1sx0LA_bCr9bt7V7tvg0ELAFo4HOCaHHGvzmQ4p3nz%3DemfLw%40mail.gmail.com.

No comments:

Post a Comment