Проблема конфигурации Nginx для Ghost Blog внутри подкаталога на сервере LEMP
Мои требования
Блог призраков на www.mydomain.com/blog
Index.html, contact.php, несколько изображений и js-файлов в корневом каталоге. (например, что-то вроде www.mydomain.com/index.html, mydomain.com/contact.php и т. д.)
После прочтения этого учебного руководства https://www.digitalocean.com/community/tutorials/how-to-create-a-blog-with-ghost-and-nginx-on-ubuntu-14-04 я могу запустить ghost на www.mydomain.com/blog. Но, к сожалению, я не могу получить доступ к чему-либо из корневого каталога, т.е. www.mydomain.com, поскольку он выдает ошибку 404
До Ghost Установить все внутри /usr/share/nginx/www
был доступен в корневом каталоге. Теперь я использовал ls
команда для проверки наличия файлов внутри папки /usr/share/nginx/www
и я могу просмотреть эти файлы на моем терминале.
Когда я cd
в /etc/nginx/sites-available/
папка, я вижу 2 файла и ghost по умолчанию и внутри /etc/nginx/sites-enabled/
Я могу видеть только файл- призрак.
Когда я копирую файл по умолчанию из /etc/nginx/sites-available/
в /etc/nginx/sites-enabled/
, Ghost Blog выдает ошибку 404.
Вот файл по умолчанию Контент-сервер { listen 80 default_server; listen [::]:80 default_server ipv6only=on;
root /usr/share/nginx/html;
index index.php index.html index.htm;
# Make site accessible from http://localhost/
server_name localhost;
location / {
# First attempt to serve request as file, then
# as directory, then fall back to displaying a 404.
try_files $uri $uri/ =404;
# Uncomment to enable naxsi on this location
# include /etc/nginx/naxsi.rules
}
error_page 404 /404.html;
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
#location ~ /\.ht {
# deny all;
#}
}
Вот содержимое файла- призрака
server {
listen 80;
server_name SERVERIP/spider;
location / {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header Host $http_host;
proxy_pass http://127.0.0.1:2368;
}
}
2 ответа
Я нашел решение после некоторого интенсивного поиска Google
Теперь сначала я скопировал файл конфигурации Ghost Config из папки " Доступные сайты" в папку "Включенные сайты ", используя
cp /etc/nginx/sites-available/default /etc/nginx/sites-enabled/default
После того, как файл скопирован, я перезапустил nginx, используя следующую команду service nginx restart
Теперь, когда я обновил страницу, я не мог видеть свой блог, но все из папки /usr/share/nginx/www
быть доступным в корневом каталоге. т.е. все файлы из этой папки были доступны на mydomain.com
Возвращаясь к Призрачному блогу, я сделал резервную копию того же самого и удалил его из /etc/nginx/sites-enabled/default
папка.
Вместо этого я вставил следующий код в объект сервера.
location ^~ /blog {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:2368;
proxy_redirect off;
}
Перезапустил nginx, все заработало!
Источник https://allaboutghost.com/how-to-install-ghost-in-a-subdirectory/
Я использовал решение в URL ниже, и это сработало.
server {
listen 80;
server_name localhost;
location ^~ /blog {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://127.0.0.1:2368;
proxy_redirect off;
}
}
https://www.ghostforbeginners.com/how-to-install-ghost-in-a-subdirectory/