【发布时间】:2012-12-31 08:36:17
【问题描述】:
我有一个 PHP 项目,我使用 Python 将它部署在生产服务器上。
这是部署计划:
找到新的
php.ini文件(路径已定义)用这个文件替换当前文件
通过
os.system('service php-fastcgi restart')重启PHP-FPM进程,其中php-fastcgi是进程的真实名称。
Python 在执行脚本期间没有显示任何错误,但 PHP 会以默认配置重新启动。当我尝试手动重新启动它时(在 Linux 终端中),它运行良好,并且新的 php.ini 配置成功加载。你能解释一下我的 Python 脚本的这种奇怪行为吗?
更新
这是 Python 脚本的一部分。
php_ini_path_replace = '/etc/php5/cgi/php.ini'
php_ini_path_source = os.path.join(destination, 'production', 'config', 'main-php.ini')
try: # Read source file
source_conf_file = open(php_ini_path_source, 'r')
php_ini_lines = source_conf_file.readlines()
except IOError:
print('Something is wrong with source file')
try:
actual_conf_file = open(php_ini_path_replace, 'w')
actual_conf_file.writelines( php_ini_lines )
print('PHP CGI configuration was succesfully changed.\nDon\'t forget to restart the PHP')
except IOError:
print('Something is wrong with actual file. May be it\'s in use')
os.system('service php-fastcgi restart')
【问题讨论】:
-
发布你正在谈论的实际脚本怎么样?
-
谢谢! Python 不是我的菜。重写文件之前不需要清理文件句柄吗?也许尝试获得独占文件锁?至少这些是我在其他语言中会担心的事情。