個人網站上線的經歷
網站從0到上線的完整步驟
記錄一下最近搭網站的過程,也為想搭網站的小夥伴們提供一個參考。
First
首先,搭網站就跟畫畫一樣,在正式畫畫之前得先準備幾個工具:顏料,畫板等等。對應於一個網站來說,它們就是域名與伺服器了。個人是在阿里雲在買的一套,一個國內域名以及一個低配的ecs雲伺服器,有了這兩個基本工具之後,就需要進行網站備案了(不得不說:阿里雲的辦事效率是真的高)9月20提交了稽核材料,30號備案就完成了。
Next
網站備案成功之後,再去阿里雲的控制檯頁面將自己的域名解析到ecs的公網IP上就可以正常訪問了。可能有人會說:為什麼我輸入域名訪問顯示一片空白呢?哈哈,這時有內容顯示才有鬼咧。。毛筆與顏料備齊了之後,如果沒有畫在畫板上,怎麼會有內容顯示呢!同樣的道理,這時我們就需要向伺服器中注入網站要顯示的內容了。在注入內容之前首先得搭建一個執行環境。沒錯,該輪到黃金組合LNMP登場了。我使用的是lnmp 一鍵安裝包,具體的網址。Google一下,第一個顯示的就是了。使用這個整合安裝包的好處就是省時又省力,只需要一行命令,再選擇一下各個軟體需要安裝的版本,之後的一切都會幫你做好,完全的傻瓜式安裝。
MORE
lnmp環境搭建完成之後,輸入域名訪問,正常情況會顯示一個lnmp官方的提示頁面,在該頁面可以檢視php版本資訊,以及進入phpmyadmin控制檯。接下來就是我寫這篇部落格的重點內容 了。花了整整將近一天時間在這上面。
工具和骨架都搭完了之後,就需要開始畫主體內容了。由於我使用的是laravel框架開發的文章釋出類的專案。因此入口檔案index.php在專案根目錄下的public目錄中。
而輸入域名之後預設解析到伺服器的:/home/wwwroot/default 目錄下,也就是說即使將專案放在預設的站點目錄/home/wwwroot/default/下,輸入域名時也訪問不到專案的入口檔案。經過大量的Google與百度之後終於找到了解決之道。
FINAL
修改:/usr/local/nginx/conf/nginx.conf 檔案,具體配置項如下:
user www www;
worker_processes auto;
error_log /home/wwwlogs/nginx_error.log crit;
pid /usr/local/nginx/logs/nginx.pid;
#Specifies the value for maximum file descriptors that can be opened by this process.
worker_rlimit_nofile 51200;
events
{
use epoll;
worker_connections 51200;
multi_accept on;
}
http
{
include mime.types;
default_type application/octet-stream;
server_names_hash_bucket_size 128;
client_header_buffer_size 32k;
large_client_header_buffers 4 32k;
client_max_body_size 50m;
sendfile on;
tcp_nopush on;
keepalive_timeout 60;
tcp_nodelay on;
fastcgi_connect_timeout 300;
fastcgi_send_timeout 300;
fastcgi_read_timeout 300;
fastcgi_buffer_size 64k;
fastcgi_buffers 4 64k;
fastcgi_busy_buffers_size 128k;
fastcgi_temp_file_write_size 256k;
gzip on;
gzip_min_length 1k;
gzip_buffers 4 16k;
gzip_http_version 1.1;
gzip_comp_level 2;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/css application/xml application/xml+rss;
gzip_vary on;
gzip_proxied expired no-cache no-store private auth;
gzip_disable "MSIE [1-6]\.";
#limit_conn_zone $binary_remote_addr zone=perip:10m;
##If enable limit_conn_zone,add "limit_conn perip 10;" to server section.
server_tokens off;
access_log off;
#以下才是真正修改的內容,上面的都是預設的配置無需更改
server {
listen 80 default_server;
# listen [::]:80 default_server ipv6only=on;
server_name 公網的IP;
root 專案所在的目錄;
index index.php index.html index.htm;
#注意這裡註釋掉不然 報錯500 ,因為引入了php 配置
#include enable-php.conf;
#laravel特有的配置
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$
{
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
expires 30d;
}
location ~ .*\.(js|css)?$
{
expires 12h;
}
location ~ /.well-known {
allow all;
}
location ~ /\.
{
deny all;
}
access_log /home/wwwlogs/access.log;
}
儲存退出,再去
使用lnmp restart重啟nginx伺服器,這時再輸入域名就能正常訪問專案下的入口檔案了。
以上便是一個完整網站上線的過程。。。
最後附上完成的網站連結:You Write I record,歡迎大家賜教,提出改進意見,本人不勝感激。