如何在cPanel部署Django应用并配置Python Selenium自动化运行
cPanel服务器运行Selenium Chrome的完整配置方案
1. 确认服务器权限前提
你使用的cPanel必须是VPS、云服务器或独立服务器类型,拥有root SSH权限;共享型cPanel主机大多会限制Chrome这类应用的运行权限,无法正常部署Selenium服务。
2. 服务端安装Chrome浏览器
SSH登录服务器后,执行如下命令安装稳定版Chrome(cPanel默认搭载CentOS/RHEL系统):
wget https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm yum install ./google-chrome-stable_current_x86_64.rpm -y
安装完成后执行验证命令,输出版本号即为安装成功:google-chrome --version
3. 业务代码适配修改
服务器无图形界面,必须添加无头运行等核心启动参数,你的原有代码缺少必要参数是启动失败的核心原因之一,修改后的参考代码如下:
def getrate(request): if request.user.is_authenticated: if request.method == "GET" : from selenium import webdriver from webdriver_manager.chrome import ChromeDriverManager from selenium.webdriver.chrome.options import Options chrome_options = Options() # 无头模式,无图形界面必备参数 chrome_options.add_argument("--headless=new") # 关闭沙箱安全模式,cPanel非root用户运行必备 chrome_options.add_argument("--no-sandbox") # 解决共享内存不足问题 chrome_options.add_argument("--disable-dev-shm-usage") # 禁用GPU加速,避免渲染报错 chrome_options.add_argument("--disable-gpu") # 指定窗口尺寸,避免元素定位异常 chrome_options.add_argument("--window-size=1920,1080") driver = webdriver.Chrome(ChromeDriverManager().install(), options=chrome_options) driver.get("https://www.nytimes.com/international/") # 后续业务逻辑执行完成后务必关闭driver释放资源 # driver.quit()
注意:原有代码末尾多写了一个右括号,需要删除避免语法报错。
4. cPanel环境补全配置
- 确认Django运行的Python虚拟环境已安装对应依赖:执行
pip install selenium webdriver-manager完成安装,也可以将两个依赖写入requirements.txt后通过cPanel的Python应用管理器一键安装 - 若webdriver-manager自动下载驱动失败,可手动下载对应Chrome版本的chromedriver二进制文件上传到你的cPanel用户目录,赋予执行权限:
chmod +x /home/你的cPanel用户名/chromedriver,同时修改代码指定驱动路径:webdriver.Chrome(executable_path="/home/你的cPanel用户名/chromedriver", options=chrome_options) - 若仍启动失败,联系主机商确认未限制
/proc目录访问权限,没有禁止Chrome运行的安全策略 - 不建议在请求同步逻辑中直接启动Selenium,每次请求初始化浏览器会严重占用服务器资源,且容易触发请求超时,建议将Selenium任务放到Celery等异步队列中执行。
内容的提问来源于stack exchange,提问作者Prashant Kumar
相关产品推荐
相关产品推荐

