instalar sob a janela
1. Instale o Python
Baixe python-3.7.0-amd64.exe, instale diretamente na próxima etapa, lembre-se de verificar Add Python 3.7 to PATH
https://www.python.org/downloads/release/python-370/
2. Instale as bibliotecas e serviços exigidos pelo servidor da web
1. Instale o mysql, veja o tutorial de instalação do mysql
安装完测试正常后,使用以下命令部署web的后台数据库框架
mysql -u root -p < schema.sql
2.pip3 instalar jinja2 aiomysql aiohttp
3. Instale pyCharm64
O desenvolvimento do win deve ter um ambiente de desenvolvimento integrado, é muito conveniente usar o pyCharm.
Baixar Pro, crack, assim você pode escrever css, js código de
https://blog.csdn.net/u014044812/article/details/78727496
K71U8DBPNE-eyJsaWNlbnNlSWQiOiJLNzFVOERCUE5FIiwibGljZW5zZWVOYW1lIjoibGFuIHl1IiwiYXNzaWduZWVOYW1lIjoiIiwiYXNzaWduZWVFbWFpbCI6IiIsImxpY2Vuc2VSZXN0cmljdGlvbiI6IkZvciBlZHVjYXRpb25hbCB1c2Ugb25seSIsImNoZWNrQ29uY3VycmVudFVzZSI6ZmFsc2UsInByb2R1Y3RzIjpbeyJjb2RlIjoiSUkiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSUzAiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJXUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IlJEIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUkMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJEQyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkRCIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUk0iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJETSIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkFDIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiRFBOIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiR08iLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJQUyIsInBhaWRVcFRvIjoiMjAxOS0wNS0wNCJ9LHsiY29kZSI6IkNMIiwicGFpZFVwVG8iOiIyMDE5LTA1LTA0In0seyJjb2RlIjoiUEMiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifSx7ImNvZGUiOiJSU1UiLCJwYWlkVXBUbyI6IjIwMTktMDUtMDQifV0sImhhc2giOiI4OTA4Mjg5LzAiLCJncmFjZVBlcmlvZERheXMiOjAsImF1dG9Qcm9sb25nYXRlZCI6ZmFsc2UsImlzQXV0b1Byb2xvbmdhdGVkIjpmYWxzZX0=-Owt3/+LdCpedvF0eQ8635yYt0+ZLtCfIHOKzSrx5hBtbKGYRPFDrdgQAK6lJjexl2emLBcUq729K1+ukY9Js0nx1NH09l9Rw4c7k9wUksLl6RWx7Hcdcma1AHolfSp79NynSMZzQQLFohNyjD+dXfXM5GYd2OTHya0zYjTNMmAJuuRsapJMP9F1z7UTpMpLMxS/JaCWdyX6qIs+funJdPF7bjzYAQBvtbz+6SANBgN36gG1B2xHhccTn6WE8vagwwSNuM70egpahcTktoHxI7uS1JGN9gKAr6nbp+8DbFz3a2wd+XoF3nSJb/d2f/6zJR8yJF8AOyb30kwg3zf5cWw==-MIIEPjCCAiagAwIBAgIBBTANBgkqhkiG9w0BAQsFADAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBMB4XDTE1MTEwMjA4MjE0OFoXDTE4MTEwMTA4MjE0OFowETEPMA0GA1UEAwwGcHJvZDN5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAxcQkq+zdxlR2mmRYBPzGbUNdMN6OaXiXzxIWtMEkrJMO/5oUfQJbLLuMSMK0QHFmaI37WShyxZcfRCidwXjot4zmNBKnlyHodDij/78TmVqFl8nOeD5+07B8VEaIu7c3E1N+e1doC6wht4I4+IEmtsPAdoaj5WCQVQbrI8KeT8M9VcBIWX7fD0fhexfg3ZRt0xqwMcXGNp3DdJHiO0rCdU+Itv7EmtnSVq9jBG1usMSFvMowR25mju2JcPFp1+I4ZI+FqgR8gyG8oiNDyNEoAbsR3lOpI7grUYSvkB/xVy/VoklPCK2h0f0GJxFjnye8NT1PAywoyl7RmiAVRE/EKwIDAQABo4GZMIGWMAkGA1UdEwQCMAAwHQYDVR0OBBYEFGEpG9oZGcfLMGNBkY7SgHiMGgTcMEgGA1UdIwRBMD+AFKOetkhnQhI2Qb1t4Lm0oFKLl/GzoRykGjAYMRYwFAYDVQQDDA1KZXRQcm9maWxlIENBggkA0myxg7KDeeEwEwYDVR0lBAwwCgYIKwYBBQUHAwEwCwYDVR0PBAQDAgWgMA0GCSqGSIb3DQEBCwUAA4ICAQC9WZuYgQedSuOc5TOUSrRigMw4/+wuC5EtZBfvdl4HT/8vzMW/oUlIP4YCvA0XKyBaCJ2iX+ZCDKoPfiYXiaSiH+HxAPV6J79vvouxKrWg2XV6ShFtPLP+0gPdGq3x9R3+kJbmAm8w+FOdlWqAfJrLvpzMGNeDU14YGXiZ9bVzmIQbwrBA+c/F4tlK/DV07dsNExihqFoibnqDiVNTGombaU2dDup2gwKdL81ua8EIcGNExHe82kjF4zwfadHk3bQVvbfdAwxcDy4xBjs3L4raPLU3yenSzr/OEur1+jfOxnQSmEcMXKXgrAQ9U55gwjcOFKrgOxEdek/Sk1VfOjvS+nuM4eyEruFMfaZHzoQiuw4IqgGc45ohFH0UUyjYcuFxxDSU9lMCv8qdHKm+wnPRb0l9l5vXsCBDuhAGYD6ss+Ga+aDY6f/qXZuUCEUOH3QUNbbCUlviSz6+GiRnt1kA9N2Qachl+2yBfaqUqr8h7Z2gsx5LcIf5kYNsqJ0GavXTVyWh7PYiKX4bs354ZQLUwwa/cG++2+wNWP+HtBhVxMRNTdVhSm38AknZlD+PTAsWGu9GyLmhti2EnVwGybSD2Dxmhxk3IPCkhKAK+pl0eWYGZWG3tJ9mZ7SowcXLWDFAk0lRJnKGFMTggrWjV8GYpw5bq23VmIqqDLgkNzuoog==
Instale no Centos
1. Instale o Python
Instale o compilador gcc e o zlib com antecedência ao compilar o zlib-devel
Baixe o pacote de instalação do Python
cd /usr/local/src
wget https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tgz
2. Descompacte
tar -zxvf Python-3.7.0.tgz
3. Compile e instale o pacote
cd Python-3.7.0
./configure --prefix=/usr/local/python
make && make install
4. Adicione variáveis de ambiente
#echo PATH='/usr/local/python/bin/:$PATH' >> /etc/profile
<br>#source /etc/profile
Às vezes, ocorre o seguinte erro
ModuleNotFoundError: No module named '_ctypes'
Basta instalar da seguinte maneira:
yum install libffi-devel -y
5. Verifique se é bem-sucedido, execute o seguinte código
python3.7
Python 3.7.0 (default, Nov 27 2018, 10:35:54)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
2. Modifique a versão padrão do python (esta etapa pode não ser necessária, pois fará com que o supervisorctl não inicie, o supervisorctl pode ser executado apenas no python2)
1. Verifique se a versão padrão do python é 2.7.5
python
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> exit()
2. Modifique o caminho padrão do sistema em Python, pois, ao inserir comandos Python no terminal, o padrão é apontar para Python 2.7.5
mv /usr/bin/python /usr/bin/python-2.7.5
```
3.建立新的软连接,指向Python-3.7.0
ln -s /usr/local/python/bin/python3.7 / usr / bin / python
`` `
4. Abra um novo terminal, entre no ambiente python através do comando python, você pode ver que apontamos para o nosso python 3.7.0 recém-instalado:
python
Python 3.7.0 (default, Nov 27 2018, 10:35:54)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> print("test")
test
>>> exit()
5. Após alterar o python padrão, encontrei um erro ao instalar usando o yum
yum install openssh-server
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
6. Como o yum depende do python, então aqui modificamos o python padrão, devemos modificar o yum, para que ele seja executado na versão antiga:
vi /usr/bin/yum
将第一行中的“#!/usr/bin/python”
修改为“#!/usr/bin/python-2.7.5”
保存即可
7. Se houver outros erros, talvez seja necessário modificar os dois arquivos
yum install tree
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
Resolving Dependencies
--> Running transaction check
---> Package tree.x86_64 0:1.6.0-10.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
=============================================================================================================
Package Arch Version Repository Size
=============================================================================================================
Installing:
tree x86_64 1.6.0-10.el7 base 46 k
Transaction Summary
=============================================================================================================
Install 1 Package
Total download size: 46 k
Installed size: 87 k
Is this ok [y/d/N]: y
Downloading packages:
File "/usr/libexec/urlgrabber-ext-down", line 28
except OSError, e:
^
SyntaxError: invalid syntax
Exiting on user cancel
1. vim /usr/libexec/urlgrabber-ext-down
将/usr/bin/python改为/usr/bin/python-2.7.5。
2. vim /usr/bin/yum-config-manager
解决办法同上: #!/usr/bin/python换成 #!/usr/bin/python-2.7.5
3. Instale as bibliotecas e serviços exigidos pelo servidor da web
1. Instale o mysql, veja o tutorial de instalação do mysql
安装完测试正常后,使用以下命令部署web的后台数据库框架
mysql -u root -p < schema.sql
2.pip3 instalar jinja2 aiomysql aiohttp
3.yum instala o supervisor nginx do openssh-server dos2unix
As duas ferramentas a seguir são usadas aqui
- 1. Supervisor: uma ferramenta para monitorar o processo de serviço;
O principal objetivo desta ferramenta é usar o Supervisor para iniciar nosso processo app.py, para que, se houver um problema com o processo app.py, o log seja salvo e reiniciado.
Use echo_supervisord_conf para gerar o arquivo de configuração padrão, que é salvo em supervisord.conf
echo_supervisord_conf > /etc/supervisord.conf
Modifique as duas últimas linhas do /etc/supervisord.conf
[include]
files = /etc/supervisord.d/*.conf
Adicione o arquivo de configuração awesome.conf em /etc/supervisord.d/
[program:awesome]
command = /srv/awesome/www/app.py
directory = /srv/awesome/www
user = root
startsecs = 3
redirect_stderr = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups = 10
stdout_logfile = /srv/awesome/log/app.log
Para ver quem possui as permissões do www a ser executado, configure quem é o usuário no awesome.conf acima.
[root@centos awesome]# ls -l
total 24
drwxr-xr-x 2 root root 4096 Nov 27 17:23 log
lrwxrwxrwx 1 root root 21 Nov 27 16:56 www -> www-18-11-27_16.56.28
drwxr-xr-x 4 root root 4096 Nov 27 16:09 www-18-11-27_16.08.59
drwxr-xr-x 4 root root 4096 Nov 27 16:26 www-18-11-27_16.26.12
drwxr-xr-x 4 root root 4096 Nov 27 16:28 www-18-11-27_16.28.37
drwxr-xr-x 4 root root 4096 Nov 27 16:53 www-18-11-27_16.53.41
drwxr-xr-x 5 root root 4096 Nov 27 17:11 www-18-11-27_16.56.28
Referência: https://www.cnblogs.com/wswang/p/5795766.html
supervisorctl stop program_name # 停止某一个进程,program_name 为 [program:x] 里的 x
supervisorctl start program_name # 启动某个进程
supervisorctl restart program_name # 重启某个进程
supervisorctl stop groupworker: # 结束所有属于名为 groupworker 这个分组的进程 (start,restart 同理)
supervisorctl stop groupworker:name1 # 结束 groupworker:name1 这个进程 (start,restart 同理)
supervisorctl stop all # 停止全部进程,注:start、restartUnlinking stale socket /tmp/supervisor.sock
、stop 都不会载入最新的配置文件
supervisorctl reload # 载入最新的配置文件,停止原有进程并按新的配置启动、管理所有进程
supervisorctl update # 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启
[root@centos awesome]# supervisorctl stop awesome
awesome: stopped
[root@centos awesome]# supervisorctl start awesome
awesome: started
[root@centos awesome]# supervisorctl status
awesome RUNNING pid 30182, uptime 0:00:13
Teste se o processo supervisord entra em vigor, encontre o processo do kill app.py, você pode descobrir que um novo ID do processo app.py aparece
[root@centos awesome]# ps -aux | grep python
root 11340 0.0 1.4 573812 14660 ? Ssl Nov23 0:39 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 30161 0.0 1.6 225936 17072 ? Ss 17:23 0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root 30182 0.0 2.6 250196 26612 ? S 17:28 0:00 python3 /srv/awesome/www/app.py
root 30350 0.0 0.0 112704 972 pts/0 R+ 18:00 0:00 grep --color=auto python
[root@centos awesome]# kill 30182
[root@centos awesome]# ps -aux | grep python
root 11340 0.0 1.4 573812 14660 ? Ssl Nov23 0:39 /usr/bin/python -Es /usr/sbin/tuned -l -P
root 30161 0.0 1.6 225936 17068 ? Ss 17:23 0:00 /usr/bin/python /usr/bin/supervisord -c /etc/supervisord.conf
root 30364 0.0 2.6 249844 26440 ? S 18:01 0:00 python3 /srv/awesome/www/app.py
root 30366 0.0 0.0 112704 976 pts/0 R+ 18:01 0:00 grep --color=auto python
- 2. Nginx: servidor web de alto desempenho + responsável pelo proxy reverso;
Usando o próprio assíncio do Python, escrevemos um servidor assíncrono de alto desempenho. No entanto, também precisamos de um servidor Web de alto desempenho, escolha Nginx aqui, ele pode lidar com recursos estáticos e, ao mesmo tempo, como um proxy reverso para enviar solicitações dinâmicas ao processamento de código Python
Combinação dinâmica e estática, nosso servidor python é dinâmico e será modificado; o Nginx é estático, atuando como proxy e mais seguro.Por exemplo, se o servidor python tiver um problema, ele não emitirá informações de depuração diretamente para o cliente devido a negligência. Um servidor Nginx retorna diretamente um erro 502 ao cliente.
[Falha na transferência da imagem da cadeia externa, o site de origem pode ter um mecanismo de cadeia anti-roubo, é recomendável salvar a imagem e enviá-la diretamente (img-I6JFuSpA-1581847379782) (https://cdn.liaoxuefeng.com/cdn/files/attachments/0014328837392452ed92e4e29l38800038) )]
[root@centos ~]# ps -aux | grep nginx
root 737 0.0 0.0 112704 968 pts/0 S+ 10:00 0:00 grep --color=auto nginx
root 30865 0.0 0.2 120792 2100 ? Ss Nov27 0:00 nginx: master process nginx
nginx 30866 0.0 0.3 121180 3584 ? S Nov27 0:00 nginx: worker process
systemctl restart nginx.service / service nginx restart
systemctl stop nginx.service / service nginx stop
systemctl start nginx.service / service nginx start
status systemctl nginx.service / service nginx status
Como não há interface no servidor Alibaba Cloud e não sei se o nginx é iniciado normalmente, posso usar o curl para acessar o conteúdo da página da web e copiá-lo para ganhar para ver se a página html é exibida corretamente.
Como segue:
[root@centos nginx]# curl http://127.0.0.1
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<title>Test Page for the Nginx HTTP Server on Fedora</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<style type="text/css">
/*<![CDATA[*/
body {
background-color: #fff;
color: #000;
font-size: 0.9em;
font-family: sans-serif,helvetica;
margin: 0;
padding: 0;
}
:link {
color: #c00;
}
:visited {
color: #c00;
}
a:hover {
color: #f50;
}
h1 {
text-align: center;
margin: 0;
padding: 0.6em 2em 0.4em;
background-color: #294172;
color: #fff;
font-weight: normal;
font-size: 1.75em;
border-bottom: 2px solid #000;
}
h1 strong {
font-weight: bold;
font-size: 1.5em;
}
h2 {
text-align: center;
background-color: #3C6EB4;
font-size: 1.1em;
font-weight: bold;
color: #fff;
margin: 0;
padding: 0.5em;
border-bottom: 2px solid #294172;
}
hr {
display: none;
}
.content {
padding: 1em 5em;
}
.alert {
border: 2px solid #000;
}
img {
border: 2px solid #fff;
padding: 2px;
margin: 2px;
}
a:hover img {
border: 2px solid #294172;
}
.logos {
margin: 1em;
text-align: center;
}
/*]]>*/
</style>
</head>
<body>
<h1>Welcome to <strong>nginx</strong> on Fedora!</h1>
<div class="content">
<p>This page is used to test the proper operation of the
<strong>nginx</strong> HTTP server after it has been
installed. If you can read this page, it means that the
web server installed at this site is working
properly.</p>
<div class="alert">
<h2>Website Administrator</h2>
<div class="content">
<p>This is the default <tt>index.html</tt> page that
is distributed with <strong>nginx</strong> on
Fedora. It is located in
<tt>/usr/share/nginx/html</tt>.</p>
<p>You should now put your content in a location of
your choice and edit the <tt>root</tt> configuration
directive in the <strong>nginx</strong>
configuration file
<tt>/etc/nginx/nginx.conf</tt>.</p>
</div>
</div>
<div class="logos">
<a href="http://nginx.net/"><img
src="nginx-logo.png"
alt="[ Powered by nginx ]"
width="121" height="32" /></a>
<a href="http://fedoraproject.org/"><img
src="poweredby.png"
alt="[ Powered by Fedora ]"
width="88" height="31" /></a>
</div>
</div>
</body>
</html>
Se o computador local puder ser acessado normalmente e a rede externa não puder ser acessada, você precisará verificar a configuração do grupo de segurança no Alibaba Cloud para ver se as portas 80 e 443 estão abertas.
https://blog.csdn.net/lzl18918615216/article/details/80049471
https://helpcdn.aliyun.com/document_detail/25471.html
Se ainda assim não funcionar, pode ser necessário configurar as regras do firewall.
https://blog.csdn.net/lzl18918615216/article/details/80049471
Instale no Ubuntu
1. Instale o Python
1 、 atualização apt-get
2 、 atualização apt-get
Instale o python3.5 diretamente e verifique se há um problema na instalação do Distributed sob 3.6
3. apt-get install python3.6
4 、 apt-get install python3.6-dev
O Ubuntu tem o python3.4 instalado por padrão
root@ubuntu:/usr/bin# python3 -V
Python 3.4.3
Então, precisamos alterar o padrão para python3.6
Defina a versão padrão do python:
root@ubuntu:/usr/bin# update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
update-alternatives: using /usr/bin/python2.7 to provide /usr/bin/python (python) in auto mode
root@ubuntu:/usr/bin# update-alternatives --list python
/usr/bin/python2.7
root@ubuntu:/usr/bin# python -V
Python 2.7.6
Defina a versão padrão do python3
root@ubuntu:/usr/bin# update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 1
update-alternatives: using /usr/bin/python3.6 to provide /usr/bin/python3 (python3) in auto mode
root@ubuntu:/usr/bin# update-alternatives --list python3
/usr/bin/python3.6
root@ubuntu:/usr/bin# python3 -V
Python 3.6.2
5. Defina pip:
- apt-get install python3-pip # Python3
- apt-get install python-pip # Python2
6. Veja pip3 -V
root@ubuntu:/usr/bin# pip3
Traceback (most recent call last):
File "/usr/bin/pip3", line 5, in <module>
from pkg_resources import load_entry_point
File "/usr/lib/python3/dist-packages/pkg_resources.py", line 1479, in <module>
register_loader_type(importlib_bootstrap.SourceFileLoader, DefaultProvider)
AttributeError: module 'importlib._bootstrap' has no attribute 'SourceFileLoader'
AttributeError: o módulo 'importlib._bootstrap' não tem atributo 'SourceFileLoader'.
Finalmente encontrado: distribut só pode ser instalado na versão python 3.5.x.
7, instale o apt-get install python3, o apt-get install python3.5-dev alterne para 3.5
root@ubuntu:/usr/bin# update-alternatives --config python3
There are 2 choices for the alternative python3 (providing /usr/bin/python3).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/bin/python3.6 1 auto mode
1 /usr/bin/python3.5 1 manual mode
* 2 /usr/bin/python3.6 1 manual mode
Press enter to keep the current choice[*], or type selection number: 1
update-alternatives: using /usr/bin/python3.5 to provide /usr/bin/python3 (python3) in manual mode
root@ubuntu:/usr/bin# pip3 -V
pip 1.5.4 from /usr/lib/python3/dist-packages (python 3.5)
8. Atualize o pip3
pip3 install --upgrade setuptools
2. Instale as bibliotecas e serviços exigidos pelo servidor da web
1. Instale o mysql, veja o tutorial de instalação do mysql
安装完测试正常后,使用以下命令部署web的后台数据库框架
mysql -u root -p < schema.sql
2.pip3 instalar jinja2 aiomysql aiohttp
criptografia de instalação idna_ssl do pip3
3.apt-get install libssl-dev openssh-server supervisor nginx dos2unix
4. Configure o Supervisor: uma ferramenta para monitorar o progresso do serviço
Escreva um arquivo de configuração do Supervisor awesome.conf e armazene-o no diretório /etc/supervisor/conf.d/:
[program:awesome]
command = /srv/awesome/www/app.py
directory = /srv/awesome/www
user = root
startsecs = 3
redirect_stderr = true
stdout_logfile_maxbytes = 50MB
stdout_logfile_backups = 10
stdout_logfile = /srv/awesome/log/app.log
Crie uma pasta incrível em srv.
Use fabfile_win.py para sincronizar o projeto com o ubuntu, lembre-se de modificar o ip e o nome do usuário.
env.user = 'linye'
env.sudo_user = 'root'
# env.hosts = ['123.123.123.123']
env.host_string = '192.168.61.128' # 改成你的服务器ip
Crie / srv / awesome / log / pasta
service supervisor start
Quando aparecer unix:///var/run/supervisor.sock no such file
, crie um você mesmo, com permissões
touch /var/run/supervisor.sock
chmod 777 /var/run/supervisor.sock
5. Nginx: servidor web de alto desempenho + responsável pelo proxy reverso;
O conteúdo em / etc / nginx / sites-available / default é alterado da seguinte maneira:
server {
listen 80; # 监听80端口
root /srv/awesome/www;
access_log /srv/awesome/log/access_log;
error_log /srv/awesome/log/error_log;
# server_name awesome.liaoxuefeng.com; # 配置域名
# 处理静态文件/favicon.ico:
location /favicon.ico {
root /srv/awesome/www;
}
# 处理静态资源:
location ~ ^\/static\/.*$ {
root /srv/awesome/www;
}
# 动态请求转发到9000端口:
location / {
proxy_pass http://127.0.0.1:9000;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
}
}
/etc/init.d/nginx reload