0

0

网站开发系列1服务器环境搭建

php中文网

php中文网

发布时间:2016-07-06 13:30:55

|

1028人浏览过

|

来源于php中文网

原创

首先,这系列的文章的受众是刚毕业想做网站开发,或者其他开发岗位想了解网站开发的入门教程,默认读者有计算机相关专业基础,会跳过很多基础,细节的原理自己百度或者之后我再补充,编程语言自身特征不会涉及很多。 额,还是简单自我介绍一下,我,华南农业

  首先,这系列的文章的受众是刚毕业想做网站开发,或者其他开发岗位想了解网站开发的入门教程,默认读者有计算机相关专业基础,会跳过很多基础,细节的原理自己百度或者之后我再补充,编程语言自身特征不会涉及很多。

  额,还是简单自我介绍一下,我,华南农业大学软件工程专业毕业的理工男,2012年-2014年在广州一家叫凯兰高的创业公司工作两年多,主要是负责Nodejs服务器开发和技术团队管理,2014年8月自己尝试创业3个月以失败告终,2014年12月在南方周末新媒体担当了大半年的前端开发,开始接触php开发,2015年8月份离职至今,在一家传统行业b2b创业公司担任技术总监,资历尚浅,也不可能对所有编程语言和软件都了如指掌,理解透彻,讲得不对的地方还请大家指出。

学习目标:

  1. 了解B/S架构中的服务器概念。
  2. 了解有哪些web服务器。
  3. 通过搭建一个hello world网站运行环境,熟悉linux下安装软件的流程,理解web服务器一般需要配置什么信息,web服务器是怎样跟我们写的代码联系起来的。

学习过程

  • 首先从目标讲起,我们的目标是创建一个网站,一个别人可以通过网址(URL)访问的网站,所以网站必须运行在一台服务器上,为访问的用户提供服务,那么提供这个服务的机器也叫做web服务器。怎么理解服务器呢?相对于另一个名词PC(个人电脑),通俗一点理解,服务器就是一台强大的电脑用来提供一些服务而已,而运行在这台物理机器上的软件,根据提供的服务不一样,我们也分为web服务器,数据库服务器,邮件服务器,缓存服务器,代理服务器等等,而这时候web服务器的叫法也指nginx,apache这类型的软件。

  • web服务器,也就是网站服务器,顾名思义是提供网站访问服务的,那么有哪些可以担当web服务器功能的软件呢?学习java的时候,我们要安装tomcat,学习.NET的时候,我们要安装iis,学习PHP的时候,我们要安装apache或者nginx,对了,tomcatiisapache或者nginx就是我们所说的web服务器之一。那么,他们作为web服务器,到底提供什么功能呢?

tomcat

 

iis

 

 

apache

 

 

 

nginx

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

SmartB2B行业电子商务
SmartB2B行业电子商务

SmartB2B 是一款基于PHP、MySQL、Smarty的B2B行业电子商务网站管理系统,系统提供了供求模型、企业模型、产品模型、人才招聘模型、资讯模型等模块,适用于想在行业里取得领先地位的企业快速假设B2B网站,可以运行于Linux与Windows等多重服务器环境,安装方便,使用灵活。 系统使用当前流行的PHP语言开发,以MySQL为数据库,采用B/S架构,MVC模式开发。融入了模型化、模板

下载

vim /var/www/test/index.php(目录不存在需要先创建)

1 php
2 echo "hello world";

 

  • 好,到了这一步,怎样把这三者联系起来,实现网页的访问呢?
  1. 安装好apache之后,需要启动httpd服务,直接启动httpd即可,这时候访问即出现apache的默认页面。
  2. 但是怎样让默认的访问页面,变成刚才编写的index.php呢?修改配置,我们可以看看apache现有的配置,理解部分。原配置文件在/usr/local/apache2/conf/httpd.conf(如果遇到403权限问题,可参看http://www.th7.cn/system/lin/201507/122784.shtml)。
    Listen 80(监听端口,可在这里修改)
    
    User daemon(启动使用的用户)
    Group daemon(启动使用的组)
    
    DocumentRoot "/usr/local/apache2/htdocs"(文档根目录,也就是我们访问url为/时指向的文件系统目录,修改为DocumentRoot "/var/www/test""/var/www/test">(设置对应目录的访问权限)
    Options Indexes FollowSymLinks
    
    AllowOverride None
    
    Require all granted
    
    
    (设置默认首页)
    DirectoryIndex index.html index.php
    
    
    ErrorLog "logs/error_log"(错误日志,修改为ErrorLog "/var/log/apache/error_log.log")
    
    LogLevel warn(日志等级)
    
    CustomLog "logs/access_log"(正常访问日志,CustomLog "/var/log/apache/access_log.log")

     

  3. 给配置文件建立软链接ln -s /usr/local/apache2/conf/httpd.conf /etc/httpd.conf,重新启动httpd -f /etc/httpd.conf -k restart,这时候 tail -fn100 /var/log/apache/access_log.log可以看到访问200记录了。

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. 服务器是一台性能强大的计算机,专门提供着一种或多种服务。
  2. apache、nginx、tomcat、iis等都是web服务器,都有着相似的功能,但又有着实现原理和对编程语言支持上的不同。
  3. web服务器监听某个端口(一般是80端口),建立HTTP连接,接收并分析数据流,有些服务器还会通过集成模块来处理用户具体逻辑的请求(例如查询数据库并返回数据),解释(脚本语言php,nodejs都属于此类,像java本身就已经编译成class文件了)并执行我们编写的代码,最后把我们的输出作为结果返回到用户浏览器端。
  4. 服务器的配置,一般包含监听端口,访问日志和错误日志的设置,连接数的设置,请求的分配或者处理。

      当然,整个配置流程还是很多小问题要解决的,在解决这些问题的同时,也算是逼着我自己学习提高吧,有问题留下评论,我尽量解答。不过下一期,我将会做一个大逆转,1. 我将使用Nginx作为反向代理服务器,取代apache的位置,采用LNMP架构;2. 我将配置Laravel这个PHP框架,并可以访问Laravel的hello world首页,Larevel也是网站开发使用的框架,而不会从零开始搭建一个网站。

附件:LAMP环境搭建

 

 


相关标签:

本站声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
2026赚钱平台入口大全
2026赚钱平台入口大全

2026年最新赚钱平台入口汇总,涵盖任务众包、内容创作、电商运营、技能变现等多类正规渠道,助你轻松开启副业增收之路。阅读专题下面的文章了解更多详细内容。

33

2026.01.31

高干文在线阅读网站大全
高干文在线阅读网站大全

汇集热门1v1高干文免费阅读资源,涵盖都市言情、京味大院、军旅高干等经典题材,情节紧凑、人物鲜明。阅读专题下面的文章了解更多详细内容。

32

2026.01.31

无需付费的漫画app大全
无需付费的漫画app大全

想找真正免费又无套路的漫画App?本合集精选多款永久免费、资源丰富、无广告干扰的优质漫画应用,涵盖国漫、日漫、韩漫及经典老番,满足各类阅读需求。阅读专题下面的文章了解更多详细内容。

36

2026.01.31

漫画免费在线观看地址大全
漫画免费在线观看地址大全

想找免费又资源丰富的漫画网站?本合集精选2025-2026年热门平台,涵盖国漫、日漫、韩漫等多类型作品,支持高清流畅阅读与离线缓存。阅读专题下面的文章了解更多详细内容。

7

2026.01.31

漫画防走失登陆入口大全
漫画防走失登陆入口大全

2026最新漫画防走失登录入口合集,汇总多个稳定可用网址,助你畅享高清无广告漫画阅读体验。阅读专题下面的文章了解更多详细内容。

11

2026.01.31

php多线程怎么实现
php多线程怎么实现

PHP本身不支持原生多线程,但可通过扩展如pthreads、Swoole或结合多进程、协程等方式实现并发处理。阅读专题下面的文章了解更多详细内容。

1

2026.01.31

php如何运行环境
php如何运行环境

本合集详细介绍PHP运行环境的搭建与配置方法,涵盖Windows、Linux及Mac系统下的安装步骤、常见问题及解决方案。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php环境变量如何设置
php环境变量如何设置

本合集详细讲解PHP环境变量的设置方法,涵盖Windows、Linux及常见服务器环境配置技巧,助你快速掌握环境变量的正确配置。阅读专题下面的文章了解更多详细内容。

0

2026.01.31

php图片如何上传
php图片如何上传

本合集涵盖PHP图片上传的核心方法、安全处理及常见问题解决方案,适合初学者与进阶开发者。阅读专题下面的文章了解更多详细内容。

2

2026.01.31

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Node.js 教程
Node.js 教程

共57课时 | 9.9万人学习

Rust 教程
Rust 教程

共28课时 | 5.1万人学习

Vue 教程
Vue 教程

共42课时 | 7.5万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号