Мои требования
Блог Ghost на www.mydomain.com/blog
index.html, свяжитесь с .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, я могу запустить призрак на www.mydomain.com/blog. Но, к сожалению, я не могу получить доступ к чему-либо из корневого каталога, то есть www.mydomain.com, так как он выдает ошибку 404
до установки призрака Все внутри / usr / share / nginx / www
было доступно в корневом каталоге . Теперь я использовал команду ls
, чтобы проверить, присутствуют ли файлы в папке / usr / share / nginx / www
, и я могу просмотреть эти файлы на своем терминале.
Когда я cd
в папку / etc / nginx / sites-available /
, я вижу 2 файла ghost и по умолчанию и внутри / etc / nginx / sites-enabled /
Я вижу только файл ghost .
Когда я копирую файл default из / etc / nginx / sites -available /
в / etc / nginx / sites-enabled /
, Блог-призрак выдает ошибку 404.
Вот содержимое файла по умолчанию . server { слушаем 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;
#}
}
Вот ghost Содержимое файла
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;
}
}
Решение я нашел после интенсивного поиска в Google
Теперь сначала я скопировал файл конфигурации призрака по умолчанию из папки доступных сайтов на сайтов, включенных ], используя
cp / etc / nginx / sites-available / default / etc / nginx / sites-enabled / default
После того, как файл был скопирован, я перезапустил nginx, используя следующую команду
service nginx restart
Теперь, когда я обновил страницу, я не увидел свой блог, но все из папки / usr / share / nginx / www
было доступно в корневом каталоге. т.е. все файлы из этой папки были доступны на mydomain.com
. Возвращаясь к Ghost Blog, я сделал резервную копию того же самого и удалил ее из / 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/
Я использовал решение, указанное ниже, и оно сработало.
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/