Jump to content

roguitar

Members
  • Posts

    99
  • Joined

  • Last visited

Posts posted by roguitar

  1. On 8/26/2021 at 4:08 PM, wolstech said:

    @SeekierActually it is possible. The control panel won't work, but since it's not archived and already exists, the account can be unsuspended so the site is up at least. We can suspend and unsuspend still, we just can't unarchive, delete, or create.

    The username is munny, the other two accounts don't exist.

    Unsuspended.

    Ok, thank you very much. And yes, the other two accounts I'd mentioned doesn't exist, because I as far as I can remember I told you to delete them so that I can have only one. Now I can access the website and server. Anyways, when I try to login to the cpanel, I have something like 'We are in the process of upgrading our servers to use the Plesk control panel...'.

  2.  

    subprocess.Popen("/home/roguitar/public_html/chat/server/websocket_server.php")

    The next issue I see is that file isn't executable on its own. You need to make it like you did in the cron

    subprocess.Popen("/usr/local/bin/ea-php72 /home/roguitar/public_html/chat/server/websocket_server.php")
    

    I've tried this, too and nothing has happened.

  3.  

    You just create a start.py and stop.py cgi scripts based on the idea at https://wiki.helionet.org/tutorials/discord-bot#starting-and-stopping-your-bot Then when you want to start your script you go to domain.heliohost.org/cgi-bin/start.py and when you want to stop the script you go to domain.heliohost.org/cgi-bin/stop.py

     

    Like this?

     

    To start:

     

     

    #!/usr/bin/python3.6
    
    
    import os, subprocess, signal
    
    
    print("Content-Type: text/html\n\n")
    
    
    counter = 0
    p = subprocess.Popen(['ps', '-u', 'username'], stdout=subprocess.PIPE)
    # must match your username --------^^^^^^^^
    
    
    out, err = p.communicate()
    for line in out.splitlines():
      if 'websocket_server.php'.encode('utf-8') in line:
    #     ^^^^^^^^^^^----- this has to match the filename of your bot script
    
    
        counter += 1
        print("Bot already running.")
    
    
    if counter == 0:
      subprocess.Popen("/home/roguitar/public_html/chat/server/websocket_server.php")
    #                         ^^^^^^^^-- be sure to update it to your username
    
    
      print("Bot started!")

    To stop:

     

     

    #!/usr/bin/python3.6
    
    
    import os, subprocess, signal
    
    
    print("Content-Type: text/html\n\n")
    
    
    counter = 0
    p = subprocess.Popen(['ps', '-u', 'username'], stdout=subprocess.PIPE)
    # must match your username --------^^^^^^^^
    
    
    out, err = p.communicate()
    for line in out.splitlines():
      if 'websocket_server.php'.encode('utf-8') in line:
    #     ^^^^^^^--- this has to match the filename of your loop
    
    
        counter += 1
        pid = int(line.split(None, 1)[0])
        print("Stopping bot.")
        os.kill(pid, signal.SIGTERM)
    
    
    if counter == 0:
      print("Already stopped.")

    Please, correct me if I am wrong...

     

     

     

     

     

     

     

    I've tried the code above and the page is blank. And I believe nothing is running.

  4. You just create a start.py and stop.py cgi scripts based on the idea at https://wiki.helionet.org/tutorials/discord-bot#starting-and-stopping-your-bot Then when you want to start your script you go to domain.heliohost.org/cgi-bin/start.py and when you want to stop the script you go to domain.heliohost.org/cgi-bin/stop.py

     

    Like this?

     

    To start:

     

     

    #!/usr/bin/python3.6
    
    
    import os, subprocess, signal
    
    
    print("Content-Type: text/html\n\n")
    
    
    counter = 0
    p = subprocess.Popen(['ps', '-u', 'username'], stdout=subprocess.PIPE)
    # must match your username --------^^^^^^^^
    
    
    out, err = p.communicate()
    for line in out.splitlines():
      if 'websocket_server.php'.encode('utf-8') in line:
    #     ^^^^^^^^^^^----- this has to match the filename of your bot script
    
    
        counter += 1
        print("Bot already running.")
    
    
    if counter == 0:
      subprocess.Popen("/home/roguitar/public_html/chat/server/websocket_server.php")
    #                         ^^^^^^^^-- be sure to update it to your username
    
    
      print("Bot started!")

    To stop:

     

     

    #!/usr/bin/python3.6
    
    
    import os, subprocess, signal
    
    
    print("Content-Type: text/html\n\n")
    
    
    counter = 0
    p = subprocess.Popen(['ps', '-u', 'username'], stdout=subprocess.PIPE)
    # must match your username --------^^^^^^^^
    
    
    out, err = p.communicate()
    for line in out.splitlines():
      if 'websocket_server.php'.encode('utf-8') in line:
    #     ^^^^^^^--- this has to match the filename of your loop
    
    
        counter += 1
        pid = int(line.split(None, 1)[0])
        print("Stopping bot.")
        os.kill(pid, signal.SIGTERM)
    
    
    if counter == 0:
      print("Already stopped.")

    Please, correct me if I am wrong...

     

     

     

     

     

  5. Is there any useful information in the email you get when the cron runs?

     

    Perhaps it's time to try the cgi method of starting the server since cron doesn't seem to be working? At least that way you can start/stop it as many times a day as you want instead of worrying about exceeding your cron limit.

     

    Maybe the cgi method is a bit difficult to me, cuz I don't have any experience.

  6.  

    Does your script have some sort of exit condition, or should it run forever?

     

    EDIT:

     

    Why don't you try this:

    The other option is you could edit the cron command to change to the correct directory first. The command would be something like this then:

    cd /home/roguitar/public_html/chat/server/ && /usr/local/bin/ea-php72 /home/roguitar/public_html/chat/server/websocket_server.php

     

     

    I think there's no exit condition. It runs forever unless I close the terminal. At least I guess so... Not sure... And ok, I'll try it for tomorrow.

     

     

    What do you have to say about it?

  7. Does your script have some sort of exit condition, or should it run forever?

     

    EDIT:

     

    Why don't you try this:

    The other option is you could edit the cron command to change to the correct directory first. The command would be something like this then:

    cd /home/roguitar/public_html/chat/server/ && /usr/local/bin/ea-php72 /home/roguitar/public_html/chat/server/websocket_server.php

     

     

    I think there's no exit condition. It runs forever unless I close the terminal. At least I guess so... Not sure... And ok, I'll try it for tomorrow.

  8. I can see your cronjob now, and it looks right. We'll find out if it works in 8 hours and 15 minutes I guess.

    No, nothing, nada... It's the same thing:

     

    Service Unavailable

    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    Additionally, a 503 Service Unavailable error was encountered while trying to use an ErrorDocument to handle the request.

     

     

    Unless I give you access to check the files in /home/roguiar/public_html/chat/ folder

  9.  

    503 means your script on port 4000 isn't running.

     

    Also, you only need to do 'RewriteEngine On' once at the very top of the .htaccess. Doing it over and over won't cause an error, but it looks kind of silly.  :blink:

     

    I checked your cron jobs, and I don't see anything listed. Did you delete it?

    Yes, I deleted it because I'm afraid of causing problems to myself. Anyway, my plan was to delete it and in the following day (today) set it all again. But I also could set it once and let it run once per day. I'll set it now at 1:15 p.m.

     

    Okay, so RewriteEngine On only once, right? I'll then delete the other .htaccess that controls the http/https thing, ok? I think that inside the folder chat/ there must be some file or script where I need to set the port. I don't know what to do, I was thinking of sending my folder to you for you to analyze all the scripts, but I know that you wouldn't do it, and in case you would, you'd certainly charge something for it. So... I'm afraid to ask this.

     

    Besides that, the problem persists:

     

    Service Unavailable

    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    Additionally, a 503 Service Unavailable error was encountered while trying to use an ErrorDocument to handle the request.

  10. 503 means your script on port 4000 isn't running.

     

    Also, you only need to do 'RewriteEngine On' once at the very top of the .htaccess. Doing it over and over won't cause an error, but it looks kind of silly.  :blink:

     

    I checked your cron jobs, and I don't see anything listed. Did you delete it?

    Yes, I deleted it because I'm afraid of causing problems to myself. Anyway, my plan was to delete it and in the following day (today) set it all again. But I also could set it once and let it run once per day. I'll set it now at 1:15 p.m.

     

    Okay, so RewriteEngine On only once, right? I'll then delete the other .htaccess that controls the http/https thing, ok? I think that inside the folder chat/ there must be some file or script where I need to set the port. I don't know what to do, I was thinking of sending my folder to you for you to analyze all the scripts, but I know that you wouldn't do it, and in case you would, you'd certainly charge something for it. So... I'm afraid to ask this.

  11.  

    Failed opening required 'home/roguitar/public_html/chat/vendor/autoload.php'

    See how there is no / at the front? Without that leading / it tries to look for a directory called home in it's present working directory. To be an absolute path it needs the / at the start.

     

    Yes, you're totally right. I did it, and no error was sent to my email related to this cron job there. But... Anyway... I tried to use the chat system there and it's not working yet... I set the port as 4000, I did that all and nothing. I tried to run the path in the browser https://olimppius.heliohost.org/chat/server/websocket_server.php

    and this message has shown:

     

    Service Unavailable

    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    Additionally, a 503 Service Unavailable error was encountered while trying to use an ErrorDocument to handle the request.

     

     

    What have I done wrong once more?

    I set the cron job to run at 1:15 p.m. today. 

     

    I used this command here:

    /usr/local/bin/ea-php72 /home/roguitar/public_html/chat/server/websocket_server.php

    And I created an .htaccess in /home/roguitar/public_html/.htaccess and inside it we have:

     

    RewriteEngine on
    RewriteRule ^chat/server/(.*)$ http://127.0.0.1:4000/$1 [P,QSA,L]
    
    
    #RewriteEngine on
    #RewriteCond %{SERVER_PORT} =80
    #RewriteRule ^(.*) https://%{SERVER_NAME}%{REQUEST_URI} [R,L]
    
    
    #RewriteEngine On
    #RewriteRule ^websocket_server.php/(.*)$ ws://ricky.heliohost.org:80/?$1  [P,QSA,L]

    Remember that there is also another .htaccess in /home/roguitar/.htaccess and there is:

     

    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

    And I don't know if it's making things awkward.

  12. You could try editing /home/roguitar/public_html/chat/server/websocket_server.php on line 9 and change ../vendor/autoload.php to the full path /home/roguitar/...etc

     

    The other option is you could edit the cron command to change to the correct directory first. The command would be something like this then:

    cd /home/roguitar/public_html/chat/server/ && /usr/local/bin/ea-php72 /home/roguitar/public_html/chat/server/websocket_server.php
    

    Ok, I did what you  suggested, but now I have the following error:

     

    Warning: require_once(home/roguitar/public_html/chat/vendor/autoload.php): failed to open stream: No such file or directory in /home/roguitar/public_html/chat/server/websocket_server.php on line 10

     

    Fatal error: require_once(): Failed opening required 'home/roguitar/public_html/chat/vendor/autoload.php' (include_path='.:/opt/cpanel/ea-php72/root/usr/share/pear') in /home/roguitar/public_html/chat/server/websocket_server.php on line 10

  13.  

    Cron is the simpler way to start your socket script, but it can also cause you issues.

    • You're only allowed to do 2 cron executions per day, so if you waste them both debugging then you need to wait until the next day to try again. Running cron 3 or more times could result in your account being suspended.
    • People have a tendency to use cron to start scripts, and then they don't know how to stop the script and the poorly written script runs amok on the server causing massive load and the account ends up suspended for it.
    If you want to try cron anyways knowing the risks, your command would be something like this

    /usr/local/bin/ea-php72 /home/roguitar/public_html/chat/server/websocket_server.php
    
    First set the cron execution to ONCE A DAY, and then since the server runs on UTC look at this https://www.google.com/search?q=what+time+is+it+utc and set the hour and minute fields to be a few minutes in the future.

     

    To stop all of your scripts you can run a cron like this

    killall -u roguitar
    
    and set it for a few minutes in the future as well. So one start and one stop and you're done for the day on cron jobs, so make them count. The count resets at midnight UTC so I guess you could run one at 23:58, 23:59, 00:00, and 00:01 and be fine, but if you kept that going you'd be suspended.

     

    The better way to do this is to use cgi to start and stop your script. I'm not going to copy/paste everything here from the wiki, but take a look at https://wiki.helionet.org/tutorials/discord-bot#starting-and-stopping-your-bot The same idea can be used to start and stop a php socket script as well.

     

    Ok, I tried to set the cron job and after that I went to the page https://olimppius.heliohost.org/chat/server/websocket_server.php and this was the message I've got:

    Service Unavailable

    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    Additionally, a 503 Service Unavailable error was encountered while trying to use an ErrorDocument to handle the request.

     

     

    What have I done wrong?

    I set the cron job to run at 13:40 today, according to this time here https://www.google.com/search?q=what+time+is+it+utc because I'm here in Brazil, and at this exact moment, it's 11:02.

     

    So, I believe that the server is already initiated, and if I want to stop it, I just create another cron job and set 

    killall -u roguitar

     , right?

    .

    I think this is all due to this problem pointed in the message shown I put above.

     

    I think it's all because of this, lol:

     

    Warning: require_once(../vendor/autoload.php): failed to open stream: No such file or directory in /home/roguitar/public_html/chat/server/websocket_server.php on line 9

     

    Fatal error: require_once(): Failed opening required '../vendor/autoload.php' (include_path='.:/opt/cpanel/ea-php72/root/usr/share/pear') in /home/roguitar/public_html/chat/server/websocket_server.php on line 9

     

     

     

  14. Cron is the simpler way to start your socket script, but it can also cause you issues.

    • You're only allowed to do 2 cron executions per day, so if you waste them both debugging then you need to wait until the next day to try again. Running cron 3 or more times could result in your account being suspended.
    • People have a tendency to use cron to start scripts, and then they don't know how to stop the script and the poorly written script runs amok on the server causing massive load and the account ends up suspended for it.
    If you want to try cron anyways knowing the risks, your command would be something like this

    /usr/local/bin/ea-php72 /home/roguitar/public_html/chat/server/websocket_server.php
    
    First set the cron execution to ONCE A DAY, and then since the server runs on UTC look at this https://www.google.com/search?q=what+time+is+it+utc and set the hour and minute fields to be a few minutes in the future.

     

    To stop all of your scripts you can run a cron like this

    killall -u roguitar
    
    and set it for a few minutes in the future as well. So one start and one stop and you're done for the day on cron jobs, so make them count. The count resets at midnight UTC so I guess you could run one at 23:58, 23:59, 00:00, and 00:01 and be fine, but if you kept that going you'd be suspended.

     

    The better way to do this is to use cgi to start and stop your script. I'm not going to copy/paste everything here from the wiki, but take a look at https://wiki.helionet.org/tutorials/discord-bot#starting-and-stopping-your-bot The same idea can be used to start and stop a php socket script as well.

     

    Ok, I tried to set the cron job and after that I went to the page https://olimppius.heliohost.org/chat/server/websocket_server.php and this was the message I've got:

    Service Unavailable

    The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.

    Additionally, a 503 Service Unavailable error was encountered while trying to use an ErrorDocument to handle the request.

     

     

    What have I done wrong?

    I set the cron job to run at 13:40 today, according to this time here https://www.google.com/search?q=what+time+is+it+utc because I'm here in Brazil, and at this exact moment, it's 11:02.

     

    So, I believe that the server is already initiated, and if I want to stop it, I just create another cron job and set 

    killall -u roguitar

     , right?

    .

    I think this is all due to this problem pointed in the message shown I put above.

  15. Pick a port that isn't already in use, like 4000, and use cgi or cron to start your script running listening on that port. Then use something like this to redirect requests to that port

    RewriteEngine on
    RewriteRule ^socket/(.*)$ http://127.0.0.1:4000/$1 [P,QSA,L]
    
    Then if you go to olimppius.heliohost.org apache will handle the html/php, but if your requests go to olimppius.heliohost.org/socket/(.*) it will be proxied to the internal port 4000 where your script is listening. Please be aware that port 4000 will not be accessible directly. For example olimppius.heliohost.org:4000 will just time out because the firewall will block it, but the firewall won't block internal ports between apache and your script.

     

     

    Ok, just have a look at what I've done: in /home/roguitar/public_html/chat/vendor/cboden/ratchet/src/Ratchet/Server/IoServer.php

    I set the port as 4000 and the address as 0.0.0.0. in line 67. And in /home/roguitar/public_html/chat/server/websocket_server.php I set the port as 4000 too in line 58. And in /home/roguitar/public_html I created a .htaccess with those lines of code you gave me, but I adapted it more or less like this:

     

    RewriteEngine on
    RewriteRule ^chat/server/(.*)$ http://127.0.0.1:4000/$1 [P,QSA,L]

    This is because the script of the server is in chat/server/websocket_server.php. But okay...

     

    In /home/roguitar/public_html/view.php I set this line (435) here in JS:     

    var websocket_server = new WebSocket("ws://ricky.heliohost.org:4000/");  /* ws://localhost:8080/ AND ports 80/443 */

    Now, what code do I have to type in this cron or cgi thing there? How do I do this? I'm a total newbie at it.

  16. If your system opens a port (which it probably does if it needs a server half running), no it won't work on the shared hosting. You could buy a VPS to run it though.

     

    If it doesn't need to open a custom port and only has to be accessed by stuff running on the hosting server, it might work using a cron, but leaving things running infinitely like this is a good way to get suspended too because they contribute to load while they're running.

    Unfortunately, it needs to open a port...

  17. Hi, there. I'd like to know if it's possible to use a chat system here (PHP, JS, Websocket). I have a chat system made in php and integrated with a socket by using JS, and in localhost, everytime I want to use it, I have to start the server first using the command below in terminal: 

     

    php.exe websocket_server.php

     

    Is there any way of doing this here? If so, what are the procedures? How do I do this here? Thank you!

     

×
×
  • Create New...