我有一个在 Centos 服务器上运行的 Web 应用程序。它是用 php 和 python 编写的。突然,未经修改,某些东西开始以交替和随机的方式工作(一次调用 fileB.php,一次不调用)。我会尝试更好地解释这个问题……这是应用程序流程:
fileA.php
(通过 exec 命令fileA.php
调用)-> (它发送 5 封邮件,然后调用)->声明此过程关闭filePy.py
filePY.py
fileB.php
fileB.php
这是filePY.py
:
# -*- coding: utf-8 -*-
from email.mime.text import MIMEText
from email.mime.application import MIMEApplication
from email.mime.multipart import MIMEMultipart
import smtplib
import subprocess
#cmdargs comes from fileA.php
val1 = cmdargs[1]
subject = cmdargs[2]
toAddress = cmdargs[3]
mailText = cmdargs[4]
attachment = cmdargs[5]
fromAddress = cmdargs[6]
i = 0
while (i < 5):
i+=1
msg = MIMEMultipart()
msg['Subject'] = subject
msg['From'] = fromAddress
msg['To'] = toAddress
# That is what u see if dont have an email reader:
msg.preamble = 'Multipart massage.\n'
# This is the textual part:
part = MIMEText(mailText)
msg.attach(part)
# This is the binary part(The Attachment):
if attachment:
part = MIMEApplication(open(attachment,"rb").read())
part.add_header('Content-Disposition', 'attachment', filename=attachment)
msg.attach(part)
server = smtplib.SMTP_SSL('stmp-server',port)
server.login(fromAddress, 'password')
server.set_debuglevel(1)
server.sendmail(fromAddress, [toAddress], msg.as_string())
server.quit()
#call a php file and send val1 as parameter
cmd = 'php -f fileB.php '+val1
subprocess.call(cmd, shell=True)
那么错误是什么?突然,python 文件的最后一部分似乎没有执行,这是文件的部分:
#call a php file and send val1 as parameter
cmd = 'php -f fileB.php '+val1
subprocess.call(cmd, shell=True)
我们的服务器提供商告诉我们,我们的机器上没有部署任何更新。我可以排除任何与代码相关的问题,因为没有更新或修改。我们找不到导致这种行为的原因……所以我的问题是,有人可以建议我在服务器中做点什么来导致这种替代行为吗?我知道这是一个太笼统的问题,但我需要的只是一个能帮助我更好地调查问题的一般建议。
我们还设置并读取了 python.log,但我无法打印/看到任何有趣的内容。如果我必须提供更多服务器详细信息,请告诉我。