企业网站开发一般多少钱柯基
Apache
起源
- 源于A Patchy Server,著名的开源Web服务软件
 - 1995年时,发布Apache服务程序的1.0版本
 - 由Apache软件基金会(ASF)负责维护
 - 最新的名称为“Apache HTTP Server”
 - 官方站点:http://httpd.apache.org/
 
主要特点
- 开发源代码/跨平台应用
 - 支持多种网页编程语言
 - 模块化涉及、运行稳定、良好的安全性
 
软件版本
- 1.X 
- 目前最高版本是1.3
 - 向下兼容较好,但缺乏一些较新功能
 
 - 2.X 
- 目前最高版本是2.4
 - 具有更多的功能特性
 - 与1.X相比,配置管理风格存在较大差异
 
 
编译安装httpd服务器
优点
- 具有较大自由度,功能可以定制
 - 可以及时获得最新的软件版本
 - 普遍吧适用于大多数Linux版本,便于移植使用
 
获得Apache服务器的源码包
- 参考地址:http://httpd.apache.orrg/download.cgi
 
安装httpd服务器步骤
准备工作
rpm -qa httpd                                         #检查是否已安装httpd
yum -y install apr-util-devel pcre-devel gcc*         #使用yum安装运行环境#gcc 基于gnu的c语言编译器
 
源码编译和安装
解包
下载并解压httpd源码包
配置
进入解压后的http包中,使用
./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi 
//指定安装路径、启用字符集支持等 
prefix:指定安装路径
命令中的so指的是DSO,功能是动态共享目标
rewrite重写 charset字符集 cgi通用网关接口
编译及安装
make && make install 
确认安装结果
使用ls命令查看安装目录下的文件
[root@localhost ~]# ls /usr/local/httpd/
bin    cgi-bin  error   icons    logs  manual
build  conf     htdocs  include  man   modules
 
优化执行路径
ln -s /usr/local/httpd/bin/* /usr/local/bin/ 
这样在执行相关命令时就可以之间使用“httpd -v”,而不再需要输入冗长的路径
添加httpd系统服务
进入该路径vim /usr/local/httpd/conf/httpd.conf,设置ServerName(为了解决运行时的提示
在/lib/systemd/system下创建一个httpd.service,并在其中添加以下代码
[Unit]Description=my httpdAfter=network.target[Service]Type=forkingPIDFile=/usr/local/httpd/logs/httpd.pidExecStart=/usr/local/httpd/bin/apachectl $OPTIONSExecReload=/bin/kill -HUP $MAINPID[Install]WantedBy=multi-user.target 
添加完成后使用systemctl daemon-reload,使systemd读取可运行命令
httpd服务器的基本配置
1.确认网站名称、IP地址
在客户机的/etc/hosts中为主机的IP添加内容
192.168.10.101 www.kgc.com  
2.配置并启动httpd服务
(1)配置httpd服务
[root@localhost conf]# vim httpd.conf
ServerName www.kgc.com[root@localhost conf]# apachectl -t        //对配置内容进行语法检查,若是没有错误,则会显示“Syntax OK” 
(2)启动httpd服务
由于前面已经将httpd服务添加到系统服务,所以可以使用systemd启动
[root@localhost conf]# systemctl start httpd
 
(3)部署网页文档
在httpd安装路径下的htdocs目录,http提供了一个名为index.html的测试网页,作为网站的默认首页
[root@localhost conf]# cat /usr/local/httpd/htdocs/index.html 
<html>
<head>    
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />    //设定字符集编码。没有这一行若文本中有文字则会显示乱码
<title>无标题文档</title>
</head>
<body>
<h1>你好</h1>
</body>
</html> 
(4)在客户机中访问Web站点
在客户机的网页浏览器中,可以通过域名或IP访问httpd浏览器
构建虚拟主机
(单个主机运行多个站点
编辑httpd主配置文件,加载独立的配置文件
[root@localhost ]# vim /usr/local/httpd/conf/httpd.conf
…………
Include conf/extra/httpd-vhosts.conf 
基于主机名的虚拟主机
mkdir -p /var/www/htmll/accpcom
mkdir -p /var/www/htmll/benetcom
echo "www.accp.com">/var/www/html/accpcom/index.html
echo "www.benet.com">/var/www/html/benetcom/index.html 
为虚拟机准备网页文档
[root@localhost conf]# vim /usr/local/httpd/conf/extra/httpd.vhosts.conf
<VirtualHost *:80>ServerAdmin webmaster@dummy-host.example.comDocumentRoot "/var/www/html/benetcom"ServerName www.benet.comErrorLog "logs/www.benet.com-error_log"CustomLog "logs/www.benet.com-access_log" common
</VirtualHost><VirtualHost *:80>ServerAdmin webmaster@dummy-host2.example.comDocumentRoot "/var/www/html/accpcom/"ServerName www.accp.comErrorLog "logs/www.accp.com-error_log"CustomLog "logs/www.accp.com-access_log" common
</VirtualHost><Directory "/var/www/html">Require all granted
</Directory>
 
配置完成后,在虚拟机中使用不同的域名来访问
基于IP的虚拟主机
在基于域名的虚拟主机的基础上进行修改
[root@localhost conf]# vim /usr/local/httpd/conf/extra/httpd.vhosts.conf
<VirtualHost 192.168.10.210:80>        //将*改为固定的IPServerAdmin webmaster@dummy-host.example.comDocumentRoot "/var/www/html/benetcom"ServerName www.benet.comErrorLog "logs/www.benet.com-error_log"CustomLog "logs/www.benet.com-access_log" common
</VirtualHost><VirtualHost 192.168.10.101:80>    //将*改为固定的IPServerAdmin webmaster@dummy-host2.example.comDocumentRoot "/var/www/html/accpcom/"ServerName www.accp.comErrorLog "logs/www.accp.com-error_log"CustomLog "logs/www.accp.com-access_log" common
</VirtualHost><Directory "/var/www/html">Require all granted
</Directory>
 
为服务器添加一个虚拟网卡
[root@localhost extra]# cp /etc/sysconfig/network-scripts/ifcfg-ens33 /etc/sysconfig/network-scripts/ifcfg-ens33:0
[root@localhost extra]# cat /etc/sysconfig/network-scripts/ifcfg-ens33:0
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
IPADDR=192.168.10.210
NETMASK=255.255.255.0
GATEWAY=192.168.10.254
DNS1=114.114.114.114
DN2=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=stable-privacy
NAME=ens33:0
#UUID=126dd06e-b440-4252-8cbd-41912905145e
DEVICE=ens33:0
ONBOOT=yes 
 
基于端口的虚拟主机
继续基于IP的虚拟主机的配置进行修改
 监听80和8080端口
[root@localhost conf]# vim /usr/local/httpd/conf/extra/httpd.vhosts.conf
<VirtualHost 192.168.10.101:80>        //将*改为固定的IPServerAdmin webmaster@dummy-host.example.comDocumentRoot "/var/www/html/benetcom"ServerName www.benet.comErrorLog "logs/www.benet.com-error_log"CustomLog "logs/www.benet.com-access_log" common
</VirtualHost><VirtualHost 192.168.10.101:8080>    //将*改为固定的IPServerAdmin webmaster@dummy-host2.example.comDocumentRoot "/var/www/html/accpcom/"ServerName www.accp.comErrorLog "logs/www.accp.com-error_log"CustomLog "logs/www.accp.com-access_log" common
</VirtualHost><Directory "/var/www/html">Require all granted
</Directory>Listen 80
listen 8080 
然后在主机中分别访问192.168.10.101:80 和 192.168.10.101:8080
MySql的编译安装
准备工作
下载并解压源码包
使用yum下载ncurses-devel  autoconf 和cmake
 yum -y install ncurses-devel autoconf  cmake
添加一个不可登录没有家目录的用户
useradd -M -s /sbin/nologin mysql
源码包的编译和安装
使用cmake进行编译
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all
DCMAKE_INSTALL_PREFIX    指定安装路径
 DSYSCONFDIR    指定配置文件路径
 DDEFAULT_CHARSET         默认字符集
 DDEFAULT_COLLATION    默认字符集校对规则
 DWITH_EXTRA_CHARSETS    其他字符集
make && make install编译并安装
安装后的其他调整
对数据库安装目录设置权限
chown -R mysql:mysql mysql/
删除系统生成的mariadb配置文件
rm -rf /etc/my.cnf
复制MySQL源码包下的support-files目录下的my-default.cnf文件到/etc下
cp my-default.cnf /etc/my.cnf
初始化
运行/usr/local/mysql/scripts/下的mysql_install_db以初始化
./mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/
设置环境变量
编辑/etc/profile在最后添加export PATH=$PATH:/usr/local/mysql/bin
启动并访问mysql服务
复制mysql源码包/support-files/mysql.server 到/etc/init.d/下的mysqld
 然后为其添加执行权限,使用chkconfig --add mysqld把服务添加为系统服务
 mysql -uroot进入mysql,此时mysql没有密码
 >set password=password("pwd123")
 >exit
 再次进入就需要输入密码
 mysql -uroot -ppwd123 [已存在的数据库]
构建PHP运行环境
准备工作
使用ali的yum仓库下载软件包
 依赖包
 yum -y install zlib-devel libxml2 libxml2-devel 
 扩展工具库
 yum -y install libmcrypt libmcrypt-devel mcrypt mhash
编译并安装PHP
下载并解压php源码包
cd进入源码包
 使用./configure --prefix=/usr/local/php5 --with-mcrypt --with-apxs2=/usr/local/httpd/bin/apxs --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-config-file-path=/usr/local/php5 --enable-mbstring
prefix:安装路径
 --with-mcrypt:加载数据加密等扩展工具支持
 --with-apxs2:设置apache HTTP Server提供的apxs模块支持程序的安装位置
 --with-mysql:设置MySQL数据库服务程序的安装位置
 --with-mysqli: 扩展mysql集
 --with-config-file-path:设置PHP配置为保护php.ini存放为孩子
 --enable-mbstring: 启用多字节字符串功能
编译及安装make && make install
设置LAMP组件环境
安装好PHP软件包后,php.ini不会自动创建,需要去软件包中复制模板
cp php.ini-development /usr/local/php5/php.ini
使用vim编辑器修改其中的内容
default_charset="UTF-8" #取消注释
short_open_tag=On #修改值
extension=php_mysqli.ddl #取消注释
添加ZendGuardLoader优化模块
 解压并进入zend-loader-php包
 cp ZendGuardLoader.so /usr/local/php5/lib/php
 vim /usr/local/php/php.ini
 在[PHP]下面添加
 zend_extension=/usr/local/php5/lib/php/ZendGuardLoader.so 
 zend_loader.enable=1
修改httpd的主配置文件
 添加LoadModule php_module modules/libphp5.so
 AddType application/x-httpd-php 
 在 DirectoryIndex index.html 后面追加 index.php
 重启服务更新配置
测试LAMP
测试网页是否能正常显示
在 /usr/local/httpd/htdocs/目录下添加test1.php
<?php
phpinfo( ); #PHP程序的版本好、配置命令、运行变量相关信息
?>
测试PHP网页是否能够访问MySql数据库
 在 /usr/local/httpd/htdocs/目录下添加test2.php
<?php 
 $link=mysqli_connect('localhost','root','pwd123'); 
 if($link) echo "恭喜你,数据库连接成功啦!!"; 
 mysqli_close($link); 
 ?> 
测试LAMP架构应用实例
 解压并复制到网站目录
 建立配置文件,进入到网站目录下的包目录
 最后使用主机测试即可
