网站开发系列1服务器环境搭建,网站开发搭建
网站开发系列1——服务器环境搭建,网站开发搭建
首先,这系列的文章的受众是刚毕业想做网站开发,或者其他开发岗位想了解网站开发的入门教程,默认读者有计算机相关专业基础,会跳过很多基础,细节的原理自己百度或者之后我再补充,编程语言自身特征不会涉及很多。
额,还是简单自我介绍一下,我,华南农业大学软件工程专业毕业的理工男,2012年-2014年在广州一家叫凯兰高的创业公司工作两年多,主要是负责Nodejs服务器开发和技术团队管理,2014年8月自己尝试创业3个月以失败告终,2014年12月在南方周末新媒体担当了大半年的前端开发,开始接触php开发,2015年8月份离职至今,在一家传统行业b2b创业公司担任技术总监,资历尚浅,也不可能对所有编程语言和软件都了如指掌,理解透彻,讲得不对的地方还请大家指出。
学习目标:
学习过程
- 首先从目标讲起,我们的目标是创建一个网站,一个别人可以通过网址(URL)访问的网站,所以网站必须运行在一台服务器上,为访问的用户提供服务,那么提供这个服务的机器也叫做web服务器。怎么理解服务器呢?相对于另一个名词PC(个人电脑),通俗一点理解,服务器就是一台强大的电脑用来提供一些服务而已,而运行在这台物理机器上的软件,根据提供的服务不一样,我们也分为web服务器,数据库服务器,邮件服务器,缓存服务器,代理服务器等等,而这时候web服务器的叫法也指nginx,apache这类型的软件。
- web服务器,也就是网站服务器,顾名思义是提供网站访问服务的,那么有哪些可以担当web服务器功能的软件呢?学习JAVA的时候,我们要安装tomcat,学习.NET的时候,我们要安装iis,学习PHP的时候,我们要安装apache或者nginx,对了,tomcat、iis、apache或者nginx就是我们所说的web服务器之一。那么,他们作为web服务器,到底提供什么功能呢?
tomcat
iis
apache
nginx
为了说明web服务器的作用,我们还是先选择其中一种编程语言,配置好运行环境,能够访问并返回数据,再来谈web服务器起到的作用。在这里,我选择典型的lamp网站技术组合来说明,同时举一反三说明其他类型的web服务器。
首先,最简单的hello world网站其实并不需要mysql数据库,所以从最简单的开始配置,windows下的可以直接使用wamp(http://www.wampserver.com/)集成,为了这个教程,花了666个大洋买了阿里云的linux服务器,cenos7.0 64位。
1. 下载apache,http://httpd.apache.org/,可以下载2.4.18版本的,安装流程详细可参考附件:
apache安装完毕之后,默认是安装在/usr/local/apache2,所以为了能够全局启动,创建了httpd的硬链接,ln /usr/local/apache2/bin/httpd /usr/local/bin/。
2. 编程语言是php,先从http://php.net/下载php,最新版本是7.0.0,不过这里以5.6.16为例,windows有线程安全和非线程安全版本的,暂时下载线程安全版本的,具体的区别暂不做说明。
安装php完毕之后,启动php-fpm,暂时使用默认配置,使用TCP连接9000端口,详细可参考附件。
3. 然后我希望访问本机地址localhost或者127.0.0.1时,网页返回hello world字符串显示到浏览器,所以编写一个文件命名为index.php
vim /var/www/test/index.php(目录不存在需要先创建)
1 php 2 echo "hello world";
- 好,到了这一步,怎样把这三者联系起来,实现网页的访问呢?
xxx.xxx.xxx.xxx - - [16/Dec/2015:15:57:51 +0800] "GET / HTTP/1.1" 200 26 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.90 Safari/537.36"
4. 输出的内容是我们写的php文件代码,而不是执行结果,为什么呢?因为php是脚本语言,是需要之前安装的php解释执行输出结果的,所以,下一步就是在apache的配置中,加入php,apache运行php的模式不止一种,这里使用fastcgi模式,以后再说明其他模式的做法和原理。去掉以下两个模块的注释,添加上模块的配置,重启apache服务器。
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
ProxyPass "/" "fcgi://127.0.0.1:9000/var/www/test/index.php" enablereuse=on
总结:
当然,整个配置流程还是很多小问题要解决的,在解决这些问题的同时,也算是逼着我自己学习提高吧,有问题留下评论,我尽量解答。不过下一期,我将会做一个大逆转,1. 我将使用Nginx作为反向代理服务器,取代apache的位置,采用LNMP架构;2. 我将配置Laravel这个PHP框架,并可以访问Laravel的hello world首页,Larevel也是网站开发使用的框架,而不会从零开始搭建一个网站。
附件:LAMP环境搭建
推荐阅读
-
php源码怎么搭建网站教程(详解php服务器环境搭建及配置)
-
php源码怎么搭建网站教程(详解php服务器环境搭建及配置)
-
mac下Apache + MySql + PHP搭建网站开发环境
-
搭建一个大型网站架构的实验环境(Squid缓存服务器篇)第1/2页
-
01(Windows系统) Flutter 开发环境搭建 -flutter系列项目教程
-
PHP程序员玩转Linux系列 搭建FTP代码开发环境
-
音视频开发学习点点滴滴记录(1)-- ffmpeg下载及环境搭建
-
开发环境搭建 (一) OK6410A 开发环境 1官方环境
-
微信小程序开发系列一:微信小程序的申请和开发环境的搭建 微信微信小程序开发环境
-
Go开发笔记系列:1 - Go 开发环境搭建和代码调试