Shlop
@Shlop
Full Stack Developer (PHP/Laravel/JavaScript)

Почему отображается php текстом?

Здравствуйте, подскажите пожалуйста, переношу сайт на MODX с одного VDS, на другой. Создаю файл виртуального хоста:
/etc/apache2/sites-available/plitka.conf, со следующим содержимым:
<VirtualHost 77.222.55.203:80 [2a02:408:7722:54:77:222:55:203]:80>
	ServerName plitka-ykt.ru
	ServerAlias www.plitka-ykt.ru
	DocumentRoot /var/www/www-root/data/plitka-ykt.ru
	ServerAdmin admin@plitka-ykt.ru
	DirectoryIndex index.php index.html
	AddDefaultCharset off
	#AssignUserID www-root www-root
	CustomLog /var/www/httpd-logs/plitka-ykt.ru.access.log combined
	ErrorLog /var/www/httpd-logs/plitka-ykt.ru.error.log
	<FilesMatch "\.ph(p[3-5]?|tml)$">
		SetHandler application/x-httpd-php
	</FilesMatch>
	<FilesMatch "\.phps$">
		SetHandler application/x-httpd-php-source
	</FilesMatch>
	<IfModule php5_module>
		php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f admin@plitka-ykt.ru"
		php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
		php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
		php_admin_value open_basedir "/var/www/www-root/data:."
	</IfModule>
	<IfModule php7_module>
		php_admin_value sendmail_path "/usr/sbin/sendmail -t -i -f admin@plitka-ykt.ru"
		php_admin_value upload_tmp_dir "/var/www/www-root/data/mod-tmp"
		php_admin_value session.save_path "/var/www/www-root/data/mod-tmp"
		php_admin_value open_basedir "/var/www/www-root/data:."
	</IfModule>
</VirtualHost>
<Directory /var/www/www-root/data/shina-belgorod.ru>
	Options +Includes -ExecCGI
	<IfModule php5_module>
		php_admin_flag engine on
	</IfModule>
	<IfModule php7_module>
		php_admin_flag engine on
	</IfModule>
</Directory>

Затем выполняю команды под root:
sudo a2ensite modx.conf
sudo a2enmod rewrite
sudo systemctl reload apache2
Привязываю ssl сертификат sudo certbot-auto --apache -d plitka-ykt.ru

Перехожу на сайт, и в итоге отображается содержимое index.php текстом, интерпретатор php есть, потому что на этом VDS есть другие сайты и они нормально работают.

Подскажите пожалуйста, может я что-то пропустил, как сделать что бы php работал. Заранее благодарю за ответ.
  • Вопрос задан
  • 134 просмотра
Пригласить эксперта
Ответы на вопрос 3
New_Horizons
@New_Horizons
Бред:
Попробуем угадать:
short_open_tag не включен. Нужно писать в начале php-файла "<?php" вместо "<?".

Ну, из очевидного: нужно проверить модуль php у апача:
apache2ctl -M
Ответ написан
Вот так можно сделать то что у тебя сейчас.
Ну или не объявить их вообще.
<IfModule mod_mime.c>
        <Files ~ \.(php|php3|php4|php5|php6|phtml|pl|asp|aspx|cgi|dll|exe|shtm|shtml|fcg|fcgi|fpl|asmx|pht|py|psp|rb|var)>
                SetHandler text/plain
                ForceType text/plain
        </Files>
</IfModule>
<IfModule mod_php5.c>
        php_flag engine off
</IfModule>

На вашем месте я бы рекомендовал следующее.
1. если это новая вм то поставьте на нее Битрикс ВМ и измените mbsting ... 2 на 0 ( все остальные настройки отлично подойдут)
Получите в 1 клик отлично оптимизированную систему с удобной консольной мордой.
0b6b3ad33a696ba4ddf418eeed659730.png
у вас не будет больше необходимости копировать конфиги и запускать самостоятельно letsencrypt
Системы кеширования и оптиизировать конфиги под ваше железо.
Ответ написан
@AlexSer
Может дело в apache не настроены короткие теги PHP.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы