网站怎么做qq的授权登陆,html业务网站源码,试分析网站推广和优化的原因,企业建设网站应该一般多少钱目录
一、动态资源与语言
二、LAMP 架构的组成
三、CGI和astcgi
3.1CGI
3.2fastcgi
3.3CGI和fastcgi比较
3.4 PHP 配置
3.5 Opcode语言
四、编译安装Apache http 服务 五、安装论坛 一、动态资源与语言
WEB 资源类型#xff1a; 静态资源#xff1a;原…
目录
一、动态资源与语言
二、LAMP 架构的组成
三、CGI和astcgi
3.1CGI
3.2fastcgi
3.3CGI和fastcgi比较
3.4 PHP 配置
3.5 Opcode语言
四、编译安装Apache http 服务 五、安装论坛 一、动态资源与语言
WEB 资源类型 静态资源原始形式与响应内容一致在客户端浏览器执行 动态资源原始形式通常为程序文件需要在服务器端执行之后将执行结果返回给客户端
注意静态和动态的区别不在于网页是否能动态变化而在于服务端的页面文件和客户端得到页面文件是否一致 二、LAMP 架构的组成
LAM(M)P Llinux Aapache (httpd) Mmysql, mariadb Pphp, perl, python
LAMP架构是目前成熟的企业网站应用模式之一指的是协同工作的一整套系统和相关软件能够提供动态web站点服务及其应用开发环境。
前台 Apache作为LAMP架构的前端是一款功能强大稳定性好的web服务器程序该服务器直接面向用户提供网站访问发送网页图片等内容。
后台Mysql作为LAMP架构的后端是一款流行的开源关系型数据库。在企业网站、业务系统应用中各种账户信息、产品信息客户资料、业务数据等都可以存储到mysql数据库其他程序可以通过sql语句来查询更改这些信息。
中间连接PHP/Perl/Python:作为三种开发动态的网页编程语言负责解释动态网页文件负责沟通web服务器和数据库系统已协同工作并提供web应用程序的开发运行环境。其中PHP是一种广泛应用的开放源代码的多用途脚本语言它可以嵌入到HTML中尤其适合于web应用开发。
在搭建LAMP时安装顺序一般是linux Apache mysql php 。一般PHP放在最后负责沟通web服务器和数据库系统以协同工作。
apache主要实现如下功能 第一处理http的请求、构建响应报文等自身服务 第二配置让Apache支持PHP程序的响应通过PHP模块或FPM 第三配置Apache具体处理php程序的方法如通过反向代理将php程序交给fcgi处理。
mysql 主要实现如下功能 第一提供PHP程序对数据的存储 第二提供PHP程序对数据的读取(通常情况下从性能的角度考虑尽量实现数据库的读写分离)。
php主要实现如下功能 第一提供apache的访问接口即CGI或Fast CGI(FPM); 第二提供PHP程序的解释器 第三提供mysql数据库的连接函数的基本环境。
三、CGI和astcgi
3.1CGI
CGICommon Gateway Interface 公共网关接口
CGI 可以让一个客户端从网页浏览器通过http服务器向执行在网络服务器上的程序传输数据CGI描述了客户端和服务器程序之间传输的一种标准
请求流程
Client -- (http协议) -- httpd -- (cgi协议) -- application server (program file) -- (mysql协议) -- mysql
3.2fastcgi
通用网关接口FastCGI是一段程序运行在服务器上。
fastcgi的方式是web服务器收到一个请求时不会重新fork一个进程因为这个进程在web服务器启动时就开启了而且不会退出web服务器直接把内容传递给这个进程进程间通信但fastcgi使用了别的方式tcp方式通信这个进程收到请求后进行处理把结果返回给web服务器最后自己接着等待下一个请求的到来而不是退出
请求流程
Client -- (http协议) -- httpd -- (fastcgi协议) -- fastcgi服务器 -- (mysql协议) -- mysql
3.3CGI和fastcgi比较
CGI: 兼职, 一次性的过河拆桥式的服务
FASTCGI: 专职,全周期的持续式的服务 3.4 PHP 配置
php 的配置文件/etc/php.ini, /etc/php.d/*.ini
配置文件在php解释器启动时被读取
对配置文件的修改生效方法
Modules重启httpd服务FastCGI重启php-fpm服务
3.5 Opcode语言
pcode是一种PHP脚本编译后的中间语言类似于Java的ByteCode,或者.NET的MSL
PHP的语言引擎Zend执行PHP脚本代码一般会经过如下4个步骤
1、Scanning 词法分析,将PHP代码转换为语言片段(Tokens)
2、Parsing 语义分析,将Tokens转换成简单而有意义的表达式
3、Compilation 将表达式编译成Opcode
4、Execution 顺次执行Opcode每次一条从而实现PHP脚本的功能
即扫描--分析--编译--执行
四、编译安装Apache http 服务
关闭防火墙 安装依赖环境 cd /data yum install -y\ gcc \ #c语言编译器 gcc-c \ #c编译器 make \ #源代码编译器 pcre\ #pcre函数库 pcre-devel \ #pcre接口开发包 expat-devel \ #用于支持网站解析HTML、XML文件 perl #perl 语言编译器 yum -y install gcc gcc-c make pcre-devel expat-devel perl pcre 下载并解压 移动apr包 apr-util包到安装目录中并切换到 httpd-2.4.29目录中 编译安装 ./configure \ --prefix/usr/local/httpd \ #指定httpd的安装目录 --enable-so \ #启用动态加载模块支持使httpd具备进一步扩展功能的能力 --enable-rewrite \ #启用网页地址的重写功能用于网站优化、防盗链及目录迁移维护 --enable-charset-lite \ #启用字符集支持以便支持使用各种字符集编码的页面 --enable-cgi #启用CGI通用网关接口脚本程序支持便于网站外部扩展应用访问的能力make -j2 make install 操作建立软连接 [rootlocalhost httpd-2.4.29]#cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd 将文件拷入/etc/init.d/httpd [rootlocalhost httpd-2.4.29]# ln -s /usr/local/httpd/conf/httpd.conf /etc/ 建立配置文件软连接放入etc目录下 [rootlocalhost httpd-2.4.29]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ 将启动文件放入/usr/local/bin/目录下可以直接使用 添加httpd系统服务 [rootlocalhost httpd-2.4.29]# vi /etc/init.d/httpd # chkconfig: 35 85 21 开头加入 //35级别自动运行 第85个启动 第21个关闭 # description: Apache is a World Wide Web server [rootlocalhost httpd-2.4.29]# vi /usr/local/httpd/conf/httpd.conf 修改主机地址 51 Listen 192.168.91.203:80 将你的地址加入 52 Listen 192.168.30.203 199 ServerName www.example.com:80 将前面注释取消 [rootlocalhost httpd-2.4.29]# chkconfig --add httpd 将httpd加入service管理器 [rootlocalhost httpd-2.4.29]# service httpd start 启动服务注意使用了service启动不要使用systemctl关闭两种无法混用 真机网页打开 四、编译安装mysql
安装依赖包 [rootlocalhost ~]# yum install -y ncurses-devel autoconf cmake yum -y install \ ncurses \ #字符终端下图形互动功能的动态库 ncurses-devel \ #ncurses开发包 bison \ #语法分析器 cmake #mysql需要用到的cmake编译安装包 useradd -s /sbin/nologin mysql 解压软件包并切换到编译目录并编译安装 cd /data tar xf mysql-boost-5.7.20.tar.gz cd /opt/mysql-5.7.20/ cmake \ -DCMAKE_INSTALL_PREFIX/usr/local/mysql \ 指定将 mysql 数据库程序安装到某目录下如目录/usr/local/ mysql。 -DMYSQL_UNIX_ADDR/usr/local/mysql/mysql.sock \ 指定套接字文件的存储路径数据库连接的文件 -DSYSCONFDIR/etc \ 指定初始化参数文件目录 -DSYSTEMD_PID_DIR/usr/local/mysql \ -DDEFAULT_CHARSETutf8 \ 指定默认使用的字符集编码如 utf8。 -DDEFAULT_COLLATIONutf8_general_ci \ 指定默认使用的字符集校对规则utf8_general_ci 是适用于 UTF-8 字符集的通用规则。 -DWITH_INNOBASE_STORAGE_ENGINE1 \ 安装INNOBASE存储引擎 -DWITH_ARCHIVE_STORAGE_ENGINE1 \ 安装ARCHIVE存储引擎 -DWITH_BLACKHOLE_STORAGE_ENGINE1 \ 安装BLACKHOLE存储引擎 -DWITH_PERFSCHEMA_STORAGE_ENGINE1 \ 安装FEDERATED存储引擎 -DMYSQL_DATADIR/usr/local/mysql/data \ -DWITH_BOOSTboost \ -DWITH_SYSTEMD1 make -j2 make install #####数据库目录进行权限调整### 建立调整配置文件 设置环境变量 编译安装php 配置软件模块 ./configure \ --prefix/usr/local/php7 \ 指定将 PHP 程序的安装路径 --with-apxs2/usr/local/httpd/bin/apxs \ 指定Apache httpd服务提供的apxs 模块支持程序的文件位置 --with-mysql-sock/usr/local/mysql/mysql.sock \ 指定mysql 数据库连接文件的存储路径 --with-config-file-path/usr/local/php7 \ 设置 PHP 的配置文件 php.ini 将要存放的位置 --with-mysqli \ 添加 MySQL 扩展支持 #mysqli扩展技术不仅可以调用MySQL的存储过程、处理MySQL事务而且还可以使访问数据库工作变得更加稳定 --with-zlib \ 支持zlib功能提供数据压缩 --with-curl \ 开启curl扩展功能实现HTTP的Get下载和Post请求的方法 --with-gd \ 激活gd 库的支持 --with-jpeg-dir \ 激活jpeg 的支持 --with-png-dir \ 激活png 的支持 --with-freetype-dir \ --with-openssl \ --enable-mbstring \ 启用多字节字符串功能以便支持中文等代码 --enable-xml \ 开启扩展性标记语言模块 --enable-session \ 会话 --enable-ftp \ 文本传输协议 --enable-pdo \ 函数库 --enable-tokenizer \ 令牌解释器 --enable-zip ZIP压缩格式 4、编译及安装 make -j2 make install 复制模版文件作为PHP 的主配置文件并进行修改 cp /opt/php-7.1.10/php.ini-development /usr/local/php7/php.ini在测试环境时使用php.ini-development文件而在生产环境时使用php.ini-production文件 vim /usr/local/php7/php.inimysqli.default_socket /usr/local/mysql/mysql.sock --1170行--修改 1170 G,大写的G,直接跳转 date.timezone Asia/Shanghai 939行 优化把PHP 的可执行程序文件放入路径环境变量的目录中便于系统识别 ln -s /usr/local/php7/bin/* /usr/local/bin/ php -m 查看PHP 加载了哪些模块 修改httpd 服务的配置文件让apache支持PHP vim /etc/httpd.conf AddType application/x-httpd-php .php --393行--插入以下内容(插在下面原行不删) AddType application/x-httpd-php-source .phps ##这里的点前面空格一定要加否则报错 DirectoryIndex index.html index.php --255行--修改首页文件名设置 LoadModule php7_module modules/libphp7.so ---156行 ---检查支持php7的模块是否存在可以用/在文件中查找 验证PHP 测试页 rm -rf /usr/local/httpd/htdocs/index.html vim /usr/local/httpd/htdocs/index.php ?php phpinfo(); ? systemctl restart httpd.service 用真机打开 五、安装论坛 mysql -uroot -pabc123 mysql CREATE DATABASE bbs; //创建一个数据库// mysql GRANT all ON bbs.* TO bbsuser% IDENTIFIED BY admin123; //把bbs数据库里面所有表的权限授予给bbsuser,并设置密码// select user,host from mysql.user; mysqlflush privileges; //刷新数据库// unzip Discuz_X3.4_SC_UTF8.zip cd dir cp -r upload/ /usr/local/httpd/htdocs/bbs cd /usr/local/httpd/htdocs cd bbs chown -R daemon ./config chown -R daemon ./data chown -R daemon ./uc_client chown -R daemon ./uc_server/data