手把手带你搭建第一个个人网站(上)

阅读 1310
收藏 34
2017-08-04
原文链接:zhuanlan.zhihu.com

前言

随着云计算普及,服务器价格可以说不断降低,因此写出这篇文章让对IT感兴趣或者想让自己变得与众不同的小伙伴们更便捷地搭建一个属于自己的个人网站。在自己的网站中秀出自己的不一样精彩!—— JK

一、简介

1. 服务器

这次使用的是UCloud的服务器(云主机UHost),IP使用UCloud的弹性IP(如果您使用的是其他服务器或其他友商的云主机,该文的试验步骤依然相同)。

2. 后端

后端配置统称为LNMP,LNMP=Linux+Nginx+MySQL+PHP(即Linux系统内搭建Nginx,MySQL,PHP5服务)。

Nginx:Nginx(发音同 engine x )是一个网页服务器,它能反向代理HTTP,
HTTPS, SMTP, POP3, IMAP的协议链接,以及一个负载均衡器和一个HTTP缓存。

MySQL:一个关系型数据库管理系统

PHP:一种在服务器端执行的嵌入HTML文档的 脚本语言

Linux系统是centos 6.5,其他服务用atomic包进行yum安装。

3. 前端

前端配置为WordPress,WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站。也可以把 WordPress当作一个内容管理系统CMS)来使用。

WordPress配置为最新配置。(包为latest.tar.gz)

4. 服务对比

一般搭建网站服务基本都是LAMP或者LNMP(A即Apache,N即Nginx)。

Apache的优势:开源,稳定,模块丰富

Nginx的优势:消耗资源少,支持高并发连接,效率高

使用环境:

LNMP:节省内存、静态内容多、高并发、规模小

LAMP:力求稳定、动态内容多、功能多、规模大

二、后端配置

1. 准备工作

0)使用工具:

推荐使用xshell进行远程操作,如果您使用的是云主机,则遇到开关机或者重启机器的命令(如:reboot),需要登录控制台进行操作。

1)linux内迅速定位到行数

冒号后输入行数,点击enter键

图1:行数定位

2)linux迅速定位到字符

冒号后输入 /字符,点击enter键(查找下一个,点击N)

图2:字符定位

3)开通iptables(开启80,3306端口)

注:80端口开启,针对http协议(即网页);3306端口开启,针对MySQL数据库

3.1)添加两条iptables规则,进行开通。

#vim/etc/sysconfig/iptables

-A INPUT -m state --state NEW -m tcp -p tcp--dport 80 -j ACCEPT

-A INPUT -m state --state NEW -m tcp -p tcp--dport 3306 -j ACCEPT

图3:修改iptables规则(放在22后面)

3.2)重启iptables

# /etc/init.d/iptables restart

图4:重启防火墙

4)关闭SELinux

4.1)修改两条SELinux规则

# vim /etc/selinux/config

SELINUX=disabled

#SELINUXTYPE=targeted

图5:修改SELinux规则

4.2)重启服务器

#reboot

5)安装第三方yum源

5.1)下载wget工具

#yum install wget

图6:下载wget工具

5.2)下载atmoic包

注:Atomic源支持Fedora,RHEL和CentOS的YUM包管理

# wget
atomicorp.com/installer

图7:下载atomic包

5.3)安装atomic包

# sh ./atomic

图8:安装atomic包

5.4)更新yum源

#yum check-update

图9:更新atomic包

2.安装后端服务

1)安装Nginx

1.1)删除系统自带的软件包

# yum remove httpd* php*

1.2)yum安装Nginx

#yum install nginx -y

图10:安装Nginx

1.3)设置Nginx开机启动

# chkconfig nginx on

1.4)启动Nginx

# service nginx start

图11:启动Nginx

2)安装MySQL

2.1)yum 安装MySQL

#yum install mysql mysql-server -y

注:yum install 包名 –y :自动安装包内所有,y即yes

图12:安装MySQL

2.2)启动MySQL

# /etc/init.d/mysqld start

图13:启动MySQL

2.3)设置MySQL开机启动

#chkconfig mysqld on

2.4)拷贝my-medium.cnf配置文件

#cp /usr/share/mysql/my-medium.cnf/etc/my.cnf

注:如果/etc目录下面默认有一个my.cnf 直接覆盖即可

图14:拷贝my-medium.cnf配置文件

2.5)设置MySQL的root密码

#mysql_secure_installation

图15:点击enter

图16:输入Y,创建root密码

图17:输入两次密码

图18:移除匿名用户,输入Y

图19:不允许root最高权限远程登录,输入Y

图20:移除测试库并进行访问,输入Y

图21:重新加载特权表,输入Y

2.6)重启MySQL服务

# /etc/init.d/mysqld restart

图22:重启MySQL服务

3)安装PHP5

3.1)yum安装php

#yum install php php-fpm -y

图23:重启MySQL服务

3.2)安装PHP组件(PHP5支持MySQL)

# yum install php-mysql php-gd libjpeg* php-imap php-ldap php-pear php-xml php-xmlrpc php-mbstring php-mcryptphp-bcmath php-mhash libmcrypt

图24:安装PHP组件,选择yes

图25:安装PHP组件最后结果

3.3)设置php-fpm 开机启动

#chkconfig php-fpm on

3.4)启动php-fpm

#/etc/init.d/php-fpm start

图26:启动php-fpm

3.配置后端服务

1)Nginx支持PHP

1.1)备份nginx.conf配置文件

#cp /etc/nginx/nginx.conf /etc/nginx/nginxbak

图27:备份nginx.conf配置文件

1.2)编辑nginx.conf配置文件

#vim /etc/nginx/nginx.conf

user nginx nginx; 添加Nginx组的用户的用户名为nginx

图28:编辑nginx.conf配置文件

1.3)备份default.conf配置文件

#cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.dbak

图29:备份default.conf配置文件

1.4)编辑default.conf配置文件

#vim /etc/nginx/conf.d/default.conf

在location内添加

index index.php index.html index.htm;

图30:location内添加index格式

添加一条

location ~ \.php$ {

root html;

fastcgi_pass 127.0.0.1:9000;

fastcgi_index index.php;

fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

include fastcgi_params;

}

图31:添加一条php规则

1.5)重启Nginx

#service nginx restart

图32:重启Nginx

2)配置PHP

2.1)编辑配置

#vim /etc/php.ini

211行:修改为short_open_tag=ON

图33:修改211行

375行:修改为 expose_php =off

图34:修改375行

878行:修改为 date.timezone= PRC

图35:修改878行

3)配置php-fpm

3.1)备份php-fpm配置文件

#cp /etc/php-fpm.d/www.conf/etc/php-fpm.d/www.confbak

3.2)进行配置编辑

#vim /etc/php-fpm.d/www.conf

将apache改为nginx

user=nginx

group=nginx

图36:原www.conf

图37:现www.conf

4)测试

4.1)进入html

#cd /usr/share/nginx/html

4.2)编辑index.php文件

#vim index.php

编辑内容:

<?php

$link=mysql_connect("localhost","root","111111");

if(!$link) echo "FAILD!Please check your password!";

else echo "OK!Your connection is successful";

?>

注:mysql_connect( )函数的参数依次为:mysql服务器名或IP、mysql用户名,mysql用户密码。

图38:编辑index.php内容

4.3)设置权限

# chown nginx.nginx /usr/share/nginx/html-R

4.4)重启nginx

#service nginx restart

图39:重启Nginx

4.5)重启php-fpm

#service php-fpm restart

图40:重启php-fpm

使用个人电脑登录网页:

图41:mysql连接成功

证明MySQL连接成功了!

4.6)修改index.php文件

#vim index.php

修改内容:

<?php

phpinfo();

?>

图42:index.php内容

4.7)重启nginx

#service nginx restart

图43:重启Nginx

4.8)重启php-fpm

#service php-fpm restart

图44:重启php-fpm

4.9)输入服务器的IP地址进入网页

UCloud云主机:

#curl myip.ipip.net

图45:云主机查找eip地址

使用个人电脑登录网页:

图46:个人电脑浏览器登录网页情况

证明LNMP的后端试验成功了!

本文由UCloud专家服务团队季凯原创,转载合作请私聊大U

——————

相关阅读推荐:

“零基础”实现人脸表情识别

QPS超200万的CC攻击要如何防御?

使用Docker网络解决方案weave遇到的那些坑

记一次虚拟化环境下Windows IO性能的解析

阿里云、腾讯云、UCloud和AWS的云主机测评

企业要如何防御恶意 bot 流量?

五大常见的MySQL高可用方案

福利时间

如果你想亲自上手,在云上部署体验以上技术实践过程,大U为大家争取到了100元 UCloud云服务代金券,够大家免费使用1个月的1核/2G/20G数据盘云主机。

立即 注册UCloud,在活动/邀请码一栏填入:zhihu-ucloud,即可获得代金券。

此外,我们还在V2EX上做了一个爆款云主机的活动,99包月990包年,还等什么~~[UCloud 爆款云主机] 2 核/2G/2M 带宽 低至 99 元/月, V2EX 用户再送 100 元代金券! - V2EX

有问题请添加UCloud运营小妹个人微信号:Surdur 进行咨询。

「UCloud机构号」将独家分享云计算领域的技术洞见、行业资讯以及一切你想知道的相关讯息。欢迎提问&求关注 o(*////▽////*)q~

以上。

评论