前言
随着云计算普及,服务器价格可以说不断降低,因此写出这篇文章让对IT感兴趣或者想让自己变得与众不同的小伙伴们更便捷地搭建一个属于自己的个人网站。在自己的网站中秀出自己的不一样精彩!
一、简介
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. 准备工作
(1) 使用工具:
推荐使用xshell进行远程操作,如果您使用的是云主机,则遇到开关机或者重启机器的命令(如:reboot),需要登录控制台进行操作。
(2) linux内迅速定位到行数
冒号后输入行数,点击enter键
图1:行数定位
(3)linux迅速定位到字符
冒号后输入 /字符,点击enter键(查找下一个,点击N)
图2:字符定位
(4) 开通iptables(开启80,3306端口)
注:80端口开启,针对http协议(即网页);3306端口开启,针对MySQL数据库
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后面)
2)重启iptables
- # /etc/init.d/iptables restart
图4:重启防火墙
(5) 关闭SELinux
1)修改两条SELinux规则
- # vim /etc/selinux/config
- SELINUX=disabled
- #SELINUXTYPE=targeted
图5:修改SELinux规则
2)重启服务器
- #reboot
(6) 安装第三方yum源
1)下载wget工具
- #yum install wget
图6:下载wget工具
2)下载atmoic包
注:Atomic源支持Fedora,RHEL和CentOS的YUM包管理
- # wget
http://www.atomicorp.com/installers/atomic
图7:下载atomic包
3)安装atomic包
- # sh ./atomic
图8:安装atomic包
4)更新yum源
- #yum check-update
图9:更新atomic包
2.安装后端服务
(1) 安装Nginx
1)删除系统自带的软件包
- # yum remove httpd* php*
2)yum安装Nginx
- #yum install nginx -y
图10:安装Nginx
3)设置Nginx开机启动
- # chkconfig nginx on
4)启动Nginx
- # service nginx start
图11:启动Nginx
(2) 安装MySQL
1)yum 安装MySQL
- #yum install mysql mysql-server -y
注:yum install 包名 –y :自动安装包内所有,y即yes
图12:安装MySQL
2)启动MySQL
- # /etc/init.d/mysqld start
图13:启动MySQL
3)设置MySQL开机启动
- #chkconfig mysqld on
4)拷贝my-medium.cnf配置文件
- #cp /usr/share/mysql/my-medium.cnf
- /etc/my.cnf
注:如果/etc目录下面默认有一个my.cnf 直接覆盖即可
图14:拷贝my-medium.cnf配置文件
5)设置MySQL的root密码
- #mysql_secure_installation
图15:点击enter
图16:输入Y,创建root密码
图17:输入两次密码
图18:移除匿名用户,输入Y
图19:不允许root最高权限远程登录,输入Y
图20:移除测试库并进行访问,输入Y
图21:重新加载特权表,输入Y
6)重启MySQL服务
- # /etc/init.d/mysqld restart
图22:重启MySQL服务
(3) 安装PHP5
1)yum安装php
- #yum install php php-fpm -y
图23:重启MySQL服务
2)安装PHP组件(PHP5支持MySQL)
- # yum install php-mysql php-gd libjpeg* php-imap php-ldap php-pear php-xml php-xmlrpc php-mbstring php-mcrypt
- php-bcmath php-mhash libmcrypt
图24:安装PHP组件,选择yes
图25:安装PHP组件最后结果
3)设置php-fpm 开机启动
- #chkconfig php-fpm on
4)启动php-fpm
- #/etc/init.d/php-fpm start
图26:启动php-fpm
3. 配置后端服务
(1) Nginx支持PHP
1)备份nginx.conf配置文件
- #cp /etc/nginx/nginx.conf /etc/nginx/nginxbak
图27:备份nginx.conf配置文件
2)编辑nginx.conf配置文件
- #vim /etc/nginx/nginx.conf
user nginx nginx; 添加Nginx组的用户的用户名为nginx
图28:编辑nginx.conf配置文件
3)备份default.conf配置文件
- #cp /etc/nginx/conf.d/default.conf /etc/nginx/conf.dbak
图29:备份default.conf配置文件
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规则
5)重启Nginx
- #service nginx restart
图32:重启Nginx
(2) 配置PHP
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
1)备份php-fpm配置文件
- #cp /etc/php-fpm.d/www.conf/etc/php-fpm.d/www.confbak
2)进行配置编辑
- #vim /etc/php-fpm.d/www.conf
将apache改为nginx
- user=nginx
- group=nginx
图36:原www.conf图
图37:现www.conf图
(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内容
3)设置权限
- # chown nginx.nginx /usr/share/nginx/html
- -R
4)重启nginx
- #service nginx restart
图39:重启Nginx
5)重启php-fpm
- #service php-fpm restart
图40:重启php-fpm
使用个人电脑登录网页:
图41:mysql连接成功
证明MySQL连接成功了!
6)修改index.php文件
- #vim index.php
修改内容:
- <?php
- phpinfo();
- ?>
图42:index.php内容
7)重启nginx
- #service nginx restart
图43:重启Nginx
8)重启php-fpm
- #service php-fpm restart
图44:重启php-fpm
9)输入服务器的IP地址进入网页
UCloud云主机:
- #curl myip.ipip.net
图45:云主机查找eip地址
使用个人电脑登录网页:
图46:个人电脑浏览器登录网页情况
证明LNMP的后端试验成功了!
【本文是51CTO专栏机构作者“大U的技术课堂”的原创文章,转载请通过微信公众号(ucloud2012)联系作者】