Я использую CentOs 7 и уже установлен Apache2. Я пытаюсь запустить скрипт cgi с Python 3. У меня есть файл index.py со следующим кодом:
#!/usr/bin/env python3.7
import platform
import pymysql
import cgitb
cgitb.enable()
print ("Content-type: text/html\r\n\r\n")
print ("<html>\n<body>")
print ("<div style=\"width: 100%; font-size: 40px; font-weight: bold; text-align: center;\$
connection = pymysql.connect(host='127.0.0.1', user='user', password='password', db='database', charset='utf8mb4', cursorclass=pymysql.cursors.DictCursor)
try:
with connection.cursor() as cursor:
sql = "SELECT * FROM Marken"
cursor.execute(sql)
rows = cursor.fetchall()
for row in rows:
print(row['ID'], row['markenName'], '</br>')
finally:
connection.close()
print ("Python Script Test Page", platform.python_version())
print ("</div>\n</body>\n</html>")
, который выдает внутреннюю ошибку сервера 500.
I добавили следующие строки в apache httpd.conf:
<Directory "/var/www/html/cgi">
Options +ExecCGI
AddHandler cgi-script .py
</Directory>
и сделали файл доступным через sudo chmod 755 var/www/html/cgi/index.py
Так что, если я закомментирую весь код py mysql и протестирую его в браузере выводится ожидаемый текст Python Test Page и версия платформы python 3.7.4. Я даже не могу импортировать py mysql, так как это выдает ошибку сервера. С mysql .connector у меня была такая же проблема. Если я запускаю скрипт как автономный скрипт с кодом py mysql, он нормально работает в оболочке.
Я настраиваю свою систему как пользователь не root с доступом sudo. Это проблема? и могут ли быть установлены какие-либо переменные окружения?
Что я делаю не так?