Я использую:
на моем сервере разработки. Мне удалось его получить, поэтому я могу указать обработчик, и он поместит этот vhost на правильную версию PHP, однако CSS и JS, похоже, работают неправильно.
Я получаю такую ошибку:
scriptname.js был загружен, хотя его тип MIME («text / html») не является допустимым типом MIME JavaScript.
что в конечном итоге приводит к фатальной ошибке. Поиск в Google привел меня к различным сообщениям, и я сначала добавил следующее в свой httpd.conf
файл:
AddType text/css .css
AddType text/javascript .js
Но это не сработало.
Затем я добавил его в свой .htaccess, снова безуспешно.
Затем я нашел то, что предлагало написать это так:
AddType 'text/css; charset=UTF-8' .css
Это по большей части исправило CSS, но не .js
.
Как мне сделать так, чтобы все работало как положено?
(примечание: дайте мне знать, какое содержимое файла добавить, и я соответствующим образом отредактирую вопрос)
У меня есть сообщения об ошибках:
Ошибка загрузки для с источником /path/to/file.js
Добавив это в мой файл vhost:
<Files *.js
Header set Content-type "text/javascript"
</Files>
Кажется, переход к этому файлу показывает:
В доступе отказано
права доступа к файлам:
drwxr-xr-x 2 dev-admin dev-admin 42 Apr 4 11:37 ./
drwxr-xr-x 4 dev-admin dev-admin 27 Mar 12 17:21 ../
-rw-r--r-- 1 dev-admin dev-admin 86927 Mar 1 15:14 jquery.min.js
-rw-r--r-- 1 dev-admin dev-admin 5094 Apr 4 11:37 main.js
Заголовки в файле:
полный vhost:
<VirtualHost *:80>
ServerName site1.development
DocumentRoot /var/www/dev/site1
<Directory /var/www/dev/site1>
# removing this shows the MIME type errors from before
<Files *.css>
Header set Content-type "text/css"
</Files>
# removing this shows the MIME type errors from before
<Files *.js>
Header set Content-type "text/javascript"
</Files>
SetHandler "proxy:fcgi://127.0.0.1:9072"
AllowOverride all
Options Indexes FollowSymLinks
</Directory>
</VirtualHost>
Думаю, я вижу проблему. Ваш SetHandler
применяется ко всем возможным URL-адресам виртуального хоста, независимо от того, является ли он файлом PHP или нет. Таким образом, все передается в PHP, даже если это статический файл. И поскольку PHP интерпретирует статический файл как PHP, вы получаете результаты, которые у вас есть.
Вместо этого вы должны отправлять обработчику только запросы на файлы PHP, выбирая их по имени файла:
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9072"
</FilesMatch>
Затем вы можете удалить ненужные избыточные <Files>
биты, которые вы добавили.
Ошибка 403 обычно возникает из-за ошибки разрешения. Это может быть либо каталог, либо файл.
В вашем случае, из того, что я вижу (только права доступа к файлу и корневому каталогу apache doc), с разрешениями все в порядке.
Не могли бы вы поделиться с нами правами доступа к родительским каталогам? (это может быть / var / www / dev / с слишком ограниченными разрешениями)
Если разрешения не позволяют "другое", 0755 должен это сделать ...
chmod 0755 /var/www/dev
Кроме того, / var / www / dev должен принадлежать "dev-admin". Если это не так, я бы предложил изменить владельца:
chown dev-admin: /var/www/dev
И @Michael Hampton прав. Никаких изменений не потребовалось (в конфигурации CentOS 7 Apache по умолчанию).
Ой! Просто чтобы убедиться, что мы охватываем все основы ... Является ли dev-admin пользователем Apache?
Если нет, вы можете либо изменить его в основной конфигурации Apache, либо изменить каталог dev (рекурсивный) с соответствующим пользователем.