网站从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,欢迎大家赐教,提出改进意见,本人不胜感激。