• django 部署到Ubuntu-apache2遇到的问题汇总


    1、x86_64-linux-gnu-gcc: error: unrecognized command line option ‘-fstack-protector-strong’

    Turns out that the ‘-fstack-protector-strong’ option was not added to the GCC compiler until version 4.9.  Upgraded my GCC to the latest available fixed the issue.

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install gcc-4.9
    sudo apt-get install g++-4.9
    
    sudo su
    cd ../../usr/bin
    ln -s /usr/bin/g++-4.9 /usr/bin/g++ -f
    ln -s /usr/bin/gcc-4.9 /usr/bin/gcc -f
    rm /usr/bin/x86_64-linux-gnu-gcc
    
    ln -s /usr/bin/gcc-4.9 /usr/bin/x86_64-linux-gnu-gcc
    
    pip install pandas --upgrade

    参考:

    http://www.cnblogs.com/loveidea/p/4384837.html

    https://stackoverflow.com/questions/27182042/pip-error-unrecognized-command-line-option-fstack-protector-strong

    GC5.0 6.0更高版本

    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install g++-4.7 c++-4.7
    
    The best way to correctly install gcc-4.9 and set it as your default gcc version use:
    sudo add-apt-repository ppa:ubuntu-toolchain-r/test
    sudo apt-get update
    sudo apt-get install gcc-4.9 g++-4.9
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.9 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.9
    
    The --slave, with g++, will cause g++ to be switched along with gcc, to the same version. But, at this point gcc-4.9 will be your only version configured in update-alternatives, so add 4.8 to update-alternatives, so there actually is an alternative, by using:
    sudo apt-get install gcc-4.8 g++-4.8
    sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-4.8 60 --slave /usr/bin/g++ g++ /usr/bin/g++-4.8
    
    Then you can check which one that is set, and change back and forth using:
    sudo update-alternatives --config gcc

    https://askubuntu.com/questions/466651/how-do-i-use-the-latest-gcc-on-ubuntu

    2、ubuntu14.04上安装python3.6

    sudo add-apt-repository ppa:jonathonf/python-3.6
    sudo apt-get update
    sudo apt-get install python3.6
    使用这些命令安装就行,如果没有add-apt-repository命令。先安装:
    
    apt-get install software-properties-common 

    sudo add-apt-repository ppa:jonathonf/python-3.6
    sudo apt-get update
    sudo apt-get install python3.6

    3、Error sudo: add-apt-repository: command not found [duplicate]

    apt-get install software-properties-common

    https://askubuntu.com/questions/593433/error-sudo-add-apt-repository-command-not-found

    https://pricklytech.wordpress.com/2014/05/16/ubuntu-server-14-4-trusty-add-apt-repository-command-not-found/

    4、How to install pip for Python 3.6 on Ubuntu 16.10?

    Let's suppose that you have a system running Ubuntu 16.04, 16.10, or 17.04, and you want Python 3.6 to be the default Python.

    If you're using Ubuntu 16.04 LTS, you'll need to use a PPA:

    sudo add-apt-repository ppa:jonathonf/python-3.6  # (only for 16.04 LTS)

    Then, run the following (this works out-of-the-box on 16.10 and 17.04):

    sudo apt update
    sudo apt install python3.6
    sudo apt install python3.6-dev
    sudo apt install python3.6-venv
    wget https://bootstrap.pypa.io/get-pip.py
    sudo python3.6 get-pip.py
    sudo ln -s /usr/bin/python3.6 /usr/local/bin/python3
    sudo ln -s /usr/local/bin/pip /usr/local/bin/pip3
    
    # Do this only if you want python3 to be the default Python
    # instead of python2 (may be dangerous, esp. before 2020):
    # sudo ln -s /usr/bin/python3.6 /usr/local/bin/python

    When you have completed all of the above, each of the following shell commands should indicate Python 3.6.1 (or a more recent version of Python 3.6):

    python --version
    python3 --version
    $(head -1 `which pip` | tail -c +3) --version
    $(head -1 `which pip3` | tail -c +3) --version

    If you are using Ubuntu 14.04 or 16.04, you can use J Fernyhough's PPA at https://launchpad.net/~jonathonf/+archive/ubuntu/python-3.6:
    
    sudo add-apt-repository ppa:jonathonf/python-3.6
    sudo apt-get update
    sudo apt-get install python3.6
    Alternatively, you can use Felix Krull's deadsnakes PPA at https://launchpad.net/~fkrull/+archive/ubuntu/deadsnakes:
    
    sudo add-apt-repository ppa:fkrull/deadsnakes
    sudo apt-get update
    sudo apt-get install python3.6
    Ubuntu 16.10, 17.04 and 17.10
    
    If you are using Ubuntu 16.10 or 17.04, then Python 3.6 is in the universe repository, so you can just run
    
    sudo apt-get update
    sudo apt-get install python3.6
    https://askubuntu.com/questions/865554/how-do-i-install-python-3-6-using-apt-get
    https://stackoverflow.com/questions/42662104/how-to-install-pip-for-python-3-6-on-ubuntu-16-10/44254088#44254088
    http://www.cnblogs.com/ajianbeyourself/p/4214398.html

    5、在Ubuntu 16.04 安装python3.6 环境并设置为默认

    5.1.添加python3.6安装包,并且安装

    sudo apt-get install software-properties-common
    sudo add-apt-repository ppa:jonathonf/python-3.6
    sudo apt-get update
    sudo apt-get install python3.6

    5.2.修改系统默认python版本为3.6

    1
    2
    3
    cd /user/bin
    rm python
    ln -s python3.6m python

    5.3.升级pip版本

    python pip install --upgrade pip

    6、apache2 and mod wsgi : Target WSGI script cannot be loaded as Python module

    Ubuntu14.04 Target WSGI script wsgi.py cannot be loaded as Python module

    Ubuntu14.04上面还是要用自带的python3.4,不然会出现这个无解的问题。或者谁有解决方案?欢迎讨论。

    7、其他常用教程:

    http://www.cnblogs.com/helloworldtoyou/p/5978977.html

    http://www.cnblogs.com/Junsept/p/6862595.html

    http://www.jianshu.com/p/b40a4a12fff1

    要点提炼:

    sudo apt-get install libapache2-mod-wsgi #Python2

    sudo apt-get install libapache2-mod-wsgi-py3 #Python3

    sudo a2ensite yoursite.conf 配置文件生效

    sudo service apache2 restart 重启Apache

    cat /var/log/apache2/error.log

    8、No module named django或者其他含django的错误。这说明你的环境搭错了。往上翻error.log,找到AH00489开头的错误,看看你到底用的是什么环境。一般都是你第二步Apache的Python解释器安装错误。

    重启apache2时遇到以下问题

    8.1AH00557
    AH00557: apache2: apr_sockaddr_info_get() failed for web01

    解决办法:在/etc/hosts中增加对web01的解析。然后重启apache不再报错AH00557。

    # cat /etc/hosts
    127.0.0.1 localhost web01
    8.2 AH00558:
    AH00557:apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.0.1. Set the 'ServerName' directive globally to suppress this message

    解决办法:在apache配置文件apache2.conf中添加ServerName localhost

    root@web01:/etc/apache2# vi apache2.conf
    ServerName localhost
    8.3 排错过程
    配置虚拟主机,从一般到特殊。一般出错都是和配置项加载的顺序有关。

    对所有的域名或IP都进行拦截,让其访问一个不存在的目录。

    复制代码
    <VirtualHost *:80>
    <Directory /***>
    Options None FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
    </Directory>
    </VirtualHost>
    复制代码
    只针对具体的某个域名,在<VirtualHost>中进行配置。

    对于IncludeOptional sites-enabled/*.conf,一定要注意只导入以.conf结尾的配置文件,不要以为放在/sites-enabled/目录下就会被导入。

    为了避免错误,可以写成IncludeOptional sites-enabled/*

    http://www.cnblogs.com/starof/p/4278370.html

    import os
    import sys
    
    sys.path.append("/var/www/ch/ch/")
    sys.path.append("/var/www/ch/")
    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "ch.settings")
    from django.core.wsgi import get_wsgi_application
    application = get_wsgi_application()
  • 相关阅读:
    python多线程爬虫:亚马逊价格
    python在linux中输出带颜色的文字的方法
    单线程爬虫VS多线程爬虫的效率对比
    python爬虫:正则表达式
    爬虫-python调用百度API/requests
    Python gevent学习笔记-2
    Python gevent学习笔记
    IO多路复用之select总结
    select、poll、epoll之间的区别总结[整理]
    2020年 IEDA破解码失效,2019 版IDEA无法使用 ,已解决,有效期2100年;原标题:IDEA激活—免费永久激活(lookdiv.com)
  • 原文地址:https://www.cnblogs.com/OnlyDreams/p/7200936.html
Copyright © 2020-2023  润新知