192.168.100.8(CA)
1 | #cd /etc/pki/CA |
浏览器会提示这个证书不可靠
把CA的证书安装到客户端的主机上即可,并且把名字改为cacert.crt….
#加密傳輸:
更多強烈建議閱讀官方文檔
高級別加密
192.168.100.8(CA)
1 | #cd /etc/pki/CA |
浏览器会提示这个证书不可靠
把CA的证书安装到客户端的主机上即可,并且把名字改为cacert.crt….
#加密傳輸:
更多強烈建議閱讀官方文檔
高級別加密
##以FastCGI来编译php
1 | #./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-openssl --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config |
1 | cp php.ini-production /etc/php.ini |
配置php-fpm, 为php-fpm提供sysv.init脚本,并将其添加到服务列表:
1 | cp sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm |
为php-fpm提供配置文件:
1 | cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf |
编辑php-fpm的配置文件:
1 | # vi /usr/local/php/etc/php-fpm.conf |
配置fpm的相关选项为你所需要的值,并启用pid文件:
pm.max_children = 50
pm.start_servers = 5
pm.min_space_servers = 2
pm.max_space_servers = 8
pid = /usr/lcoal/php/var/run/php-fpm.pid
接下来就可以启动php-fpm了:
1 | service php-fpm start |
php-fpm 监听端口为9000;
3、启用httpd的相关模块
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
1 | # vi /etc/httpd/httpd.conf |
AddType application/x-httpd-php .php
Addtype application/x-httpd-php-source .phps
还有DirectoryIndex index.html改为index.php
(或者DirectoryIndex index.html index.php)
(二)、
配置虚拟主机支持使用fcgi
在相应的虚拟主机中添加类似如下两行:
ProxyRequests Off
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/PATH/TO/DOCUMENT.ROOT/$1
如:
ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/www/meiyun.com/$1
ProxyRequests Off:关闭正向代理;
ProxyPassMatch:把以.php结尾的文件请求发送到php-fpm进程,php-fpm至少需要知道
运行的目录和URL,所以这里直接在fcgi://127.0.0.1:9000后指明了
这两个参数,其他的参数的传递已经被mod_proxy_fcgi.so进行了封装,不需要手动指定;
例如:
<VirtualHost *:80>
DocumentRoot “www/unravel.com”
ServerName www.unravel.com
ProxyRequests Off
ProxyPassMatch ^/(.*.php)$ fcgi:127.0.0.1:9000/www/unravel.com/$1
<Directory “www/unravel.com”>
Options none
AllowOverride none
Require all granted
如果以FastCGI方式安装xcache,在安装上后service php-fpm restart即可。
最后说明:
1 | cp phpMyAdmin-version-all-language pma |
修改其中的随机数,可保证安全性。
1 | #!/bin/bash |
重启http,如果在phpinfo中显示有xcache,则显示成功安装。。
pmfind.net是一个比较方便的下载软件的网站
php-mbstring 用来表示中文和多字节的;
1 | #./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-openssl --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config |
说明:
1、为了支持apache的worker或event这两个MPM,编译使用了–enable-maintainer-zts;
2、如果使用了PHP5.3以上的版本,为了链接Mysql数据库,可以指定mysqlid,这样在本机就不需要先安装Mysql或者Mysql开发包了,
mysqlnd从PHP5.3开始使用,可以编译时绑定到它(而不用和具体的Mysql客户端库形成依赖),但从PHP5.4开始它就是默认的了;
1 | #./configure --with-mysql=mysqlnd --with-pdo-mysql=mysqlnd --with-mysqli=mysqlnd |
根据官网要求,安装目录必须是:/usr/local/mysql
说明,在解压后有一个INSTALL-BINARY打开后有安装步骤;
1 | #tar xf mysql**** -C /usr/local |
thread_concurrency=8 进程并发量(CPU*2)
添加:
datadir = /mydata/data(这个必须添加)##############
我在这都弄好后,遇到一个问题,就是以localhost登陆时,发现/tmp/mysql.sock没有找到,
我在my.cnf里填写位置为/tmp/mysql.sock/结果还是不对,不过我重启了下,输入mysql,然后设置
localhost密码,就可以登陆了;
如果敲mysql (commond not found)
1 | vim /etc/profile.d/mysql.sh |
Mysql:配置文件格式,集中式配置文件,可以为多个程序提供配置;
/etc/my.cnf
配置文件会找这些:
/etc/my.cnf –> /etc/mysql/my.cnf –> $BASEDIR/my.cnf –> ~/.my.cnf
SHOW DATABASES:多了一个数据库performance_schema;系统状态收集库;
Mysql服务器维护了两类变量:
服务器变量:
定义Mysql服务器运行属性;
SHOW GLOBAL VARIABLES [LIKE ‘datadir’];
状态变量:
保存了Mysql服务器运行统计数据;
SHOW GLOBAL STATUS [LIKE ‘STRING’];
安装顺序:
httpd —>MYSQL—–>php—–>Xcache
httpd:
apr: Apache Portable Runtime
apr是一个可移植运行库,通俗的说是一个虚拟机,只要安装上对应不同操作系统的apr,就能够使用httpd;
在linux系统中,默认安装了apr,但是有可能会遇到apr版本过低,以至于不能够使用最新版本的httpd;
所以可以下载手动编译安装apr,以支持最新的httpd;
httpd编译几大部分 最详细::http://httpd.apache.org/docs/2.4/programs/configure.html
#optionalfeatures
#
—->DSO
# 通俗的讲就是提供了模块化的方式以便使用什么模块;
#(at this point, you can specify which features you want included in Apache by enabling and disabling modules.
#Apache comes with a wide range of modules included by default.
#They will be compiled as shared objects (DSOs) which can be loaded or unloaded at runtime.
http://httpd.apache.org/docs/2.4/install.html
http://shineforever.blog.51cto.com/1429204/301247
if MPMs are built as DSO modules:
例:
–enable-mpms-shared=all 这个使用所有
–enable-mpms-shared=’prefork worker’
–with-mpm=event
这个会默认使用event模块;编译好后 httpd -l 查看;
static:
就是直接静态编译进系统,不能增减;
–enable-modules 一般这个是–enable-modules=most 表明启动很多常用模块,下如同;
–enable-mods-shared 这个是以DSO编译启用 ; –enable-mods-shared=most
–enable-mods-static这个是以static编译加入;
2. Third-party modules
–with-module=module-type:module-file[, module-type:module-file
Note
If you want to build a DSO module instead of a statically linked use (apxs).configure searches automatically for an installed zlib library ,if your source configuration requires one (e.g., when mod_deflate is enabled).
You can set the directory path to the compression library instead.
3. specific packages
–with-apr=DIR|FILE
–with-apr-util=DIR|FILE
–with-ssl=DIR
–with-z=DIR
为了确保开发环境已经装好
yum grouplist ; 列出当前系统已经安装的软件包组、可安装的软件包组; (说明:yum list是可安装的软件包)
1 | #yum groupinstall "Development tools" 确保开发工具包安装; |
apr–>apr-util–>httpd
(在这说句,如果你是直接拷贝这些源码包,如果时间来自未来,所以用hwclock -s 更新到现在时间)
1 | ./configure --help | less 查看帮助信息 |
添加PidFile = “/var/run/httpd.pid”
(說明,我在实验时可以不添加这一行)
#########################################################################
添加虚拟主机可以在/etc/httpd/extra/下创建;
然后在/etc/httpd/httpd.conf中把VirtualHost给启用;
vim /etc/profile.d/httpd.sh
export PATH=$PATH:/usr/local/apache/bin
重新登录即可。
如果想把event改为prefork.
注释掉:
#LoadModule mpm_event_module modules/mod_mpm_event.so
添加:
LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
重启:
应该用下面命令来查看当前系统使用的模块。。
httpd -M
httpd 2.4新特性:
–prefix=/usr/local/apache 安装路径
–sysconfdir=/etc/httpd24 配置文件路径
–enable-so 允许运行时加载DSO模块
–enable-ssl 如果不加载将无法使用使用https
–enable-cgi 允许使用cgi脚本
–enable-cgid允许线程执行cgi脚本
–enable-rewrite 支持URL重写机制
–with-zlib 支持网络通用压缩库
–with-pcre 支持pcre 用pcre来解决C语言中使用正则表达式的问题
–with-apr=/usr/local/apr 指定apr的安装路径
–with-apr-util=/usr/local/apr-util/ 指定apr-util的安装路径
–enable-modules=most 启用大多数常用的模块
–enable-mpms-shared=all 启用MPM所有支持的模式
–with-mpm=event 默认使用enevt模式
##优化
http://www.jincon.com/archives/243/
yum install php-mysql
php和mysql
php连接mysql并获取数据测试:
编辑主页:
1 |
|
wordpress : 个人博客系统
phpmyadmin php-mcrypt
放在网页目录下:
#mv phpmyadmin-version-language pma
www.unravel.com/pma
discuz:
GBK
upload目录:
mv upload/* /www/b.net
vim /etc/httpd/httpd.conf
把这行注释掉,如果乱码:
#AddDefaultCharset UTF-8
把权限改一下:
结构化查询语言SQL(STRUCTURED QUERY LANGUAGE)是最重要的关系数据库操作语言,
并且它的影响已经超出数据库领域,得到其他领域的重视和采用,
如人工智能领域的数据检索,第四代软件开发工具中嵌入SQL的语言等;
Oracle,PL/SQL
SQL SERVER
软件包管理器特有的格式
通用二进制格式
源程序
mysql用户
mysql组
1
2#yum install mysql-server
#service mysqld start
5. mysql客户端:
交互式模式
批处理模式
1 | server mysqld start 第一次,看上面的就是初始化; |
rpm安装的mysql的文件在:/var/lib/mysql/mysql/
1 | #rpm -ql mysql-server | less |
可以看到mysql。。
mysql:
-u USERNAME不指明的话默认是root
-p passwd不指明的话默认是空密码
-h MYSQL_SERVER不指明的话默认是本地地址
用户:USERNAME@HOST
mysql -uroot -p -h 192.168.0.107这样登不上去,认为这是通过远程主机登陆
mysql -uroot -p -h 127.0.0.1 这样可以登上去,这个实在本地主机登陆
因为mysql的用户名应该是USERNAME@HOST
在linux上同一台主机上使用socket进行连接
/var/lib/mysql/mysql.sock 使用这种方式连接要快的多;
不在同一个主机上,就要使用tcp协议进行连接;
在windows上使用共享memory进行连接;
mysql> SHOW DATABASES;
显示当前的数据库:
information_schema位于内存中;
mysql
test
如果在/var/lib/mysql/中创建一个文件,再用SHOW DATABASES看时,
就会多一个数据库;
设置客户端默认使用的一个数据库;
USE db-name;
例如:
USE mytext;
## 关系数据库对象
2. DDL(数据模式定义语言):
CREATE
ALTER
DROP
3. DML(数据操作语言):
INSERT
UPDATE
DELETE
4. DCL(数据控制语言):
GRANT
REVOKE
CREATE DATABASE db_name;
CREATE DATABASE IF NOT EXISTS db_name;
CREATE DATABASE mytest;
DROP TABLE,是从数据库中删除表。删除后,表结构不在存在,无法再对该表进行任何操作。
DROP DATABASE db-name;
—->DROP DATABASE mytest2;
3. 创建表
CREATE TABLE db_name(col1,col2,…);
USE mytest;设置客户端默认使用的数据库;
(如果不是这样操作,就要CREATE TABLE mytext.students() ) Gender性别
CREATE TABLE students(Name CHAR(20)NOT NULL,Age TINYINT UNSIGNED,Gender CHAR(1) NOT NULL);
如果出现错误,第一检查语法是否有问题,第二:我在创建mytest这个数据库的时候,是用root,默认的用户和用户组不属于mysql,
所以应该把用户和用户组改为mysql; chown mysql:mysql /mytest;
+ 查看库中的表:
SHOW TABLES FROM DB_NAME;
—-> SHOW students;
+ 查看表的结构:
DESC TABLE tb_name;
DESC students;
help ALTER TABLE 可获取关于table的帮助;
+ 修改表:
ALTER TABLE tb_name;ALTER TABLE students;向右增加一列;
ALTER TABLE students ADD course VARCHAR(100);增加一行course的;
MODIFY; 修改内容;
CHANGE; ALTER TABLE students CHANGE course COURSE VARCHAR(100)AFTER Name 改变名称;
ADD;
DROP;
1 | INSERT INTO tb_name(col1,col2,...) VALUES|('STRING,NUM,....'); |
2. 创建用户
1 | CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'; |
1 | DROP USER 'USERNAME'@'HOST'; |
SELECT * FROM tech WHERE Gender=’Female’;
SELECT * FROM tech WHERE Age>20;
UPDATE tech SET Course=’Kuihua Baodian’WHERE Name=’Zhu Ziliu’;
DELETE FROM tech WHERE Age <=19;
GRANT ALL PRIVILEGES ON testdb.* to testuser@’%’;
1 | mysql>USE mysql; |
root localhost *08E080RERFJA030030JFAFJ3IFADFA343424;
为用户设定密码:
1 | 1. mysql>SET PASSWORD FOR 'root'@'localhost'=PASSWORD('new-password'); |
强烈建议看一看:
B树/B-树/B+树/B*树:
http://www.cnblogs.com/oldhorse/archive/2009/11/16/1604009.html
比方说有个bbs,有100万个用户,一亿个帖子,怎样合理管理;
如查找用户,我可以使用索引,一个文件专门存放用户名,然后用户名的各种信息保存在其他的服务器中;
通过用户名索引查找到用户的信息,这个是索引;
用grep在大数据中查找,是最笨的;
通过二分法进行用户数据查找,100W大概14次,可以大大减少查找量,不过这种方式还是慢;
所以B+树索引算法是更好的
查找标准—-搜索码
所以开发一个程序来管理索引与数据是最为合适的;
叫做数据管理软件
如何管理数据是非常重要的
所以如何有效的查找数据是非常重要的
数据库管理系统最为重要
DBMS:dataBase Management System
DBA 数据库管理员
RDBMS:relational database management system “关系”数据库管理系统
SQL:结构化查询语言
RDBMS:
Oracle、Sybase、infomix(IBM)、SQLServer(Sybase变种)
MySQL、PostgreSQL(egreSQL的后来版本)、pgsql、EnterpriseDB
一体化的公司:Oracle IBM两大巨人
去IOE:IBM、Oracle、EMC
为了防止MySQL被Oracle私有化,所以原作者开发了MariaDB;
有个组织叫做Percona根据MySQL进行改进,不收费,赚服务费,叫percona server;
进行数据库管理,调用API来对数据库的开发管理,如php、Java、c++等都可以,但是要想使用API,
就需要相应的驱动来连接,—–>即你想使用其他语言完成数据库的相关应用,可以调用API来开发自己
想要的东西,但是调用API得有相应的驱动使数据库支持对这种编程语言的支持,这种驱动叫做
数据库连接器;(这个很重要,为程序员提供支持的)
官网有下载
MongoDB
Redis
HBase
静态语言;编译型语言
C , C++ ,JAVA
优点:性能好
缺点:每次都需要编译;出现错误处理比较麻烦;开发周期长;维护成本大;
动态语言:解释性语言
shell , perl , python
优点:便于维护;有众多模块可共享;开发周期短,成本低;
缺点:性能差;
但是折中就是最好;如Facebook有工具可以把动态语言转换成静态语言;
两个以色列程序员在1997年重新php的分析器,
于1999年发布zend engine 1.0 ,并发布php4.0####这句很重要
zend engine的出现将php的代码处理过程分成了两个阶段,首先是分析php代码并且将其转换为zend opcode的二进制格式,并将其储存在内存中;第二阶段是使用zend engine去执行这些转换后的opcode;(opcode:操作码)
php source code –>编译成二进制–>执行二进制格式
但是这种二进制只能在zend engine中运行;
用户在访问同一个php源程序时,通过zend engine编译,但是这个编译只在同一个进程内访问快,
例如两个用户在访问同一个php页面时,并不会整体上提高运行速度,所以这个时候把编译后的opcode
放在一个缓存中,不同的进程在访问这个时,就不会重新编译,大大提高性能;
XCache 是一个开源的 opcode 缓存器/优化器, 这意味着他能够提高您服务器上的 PHP 性能. 他通过把编译 PHP 后的数据缓冲到共享内存从而避免重复的编译过程, 能够直接使用缓冲区已编译的代码从而提高速度. 通常能够提高您的页面生成速率 2 到5 倍, 降低服务器负载. –>摘自百度百科
APC
eAccelerator
Xcache 快速而且稳定的PHP opcode缓存,经过严格测试而且被大量用于生产环境。
Nusphere PhpExpress
Zend Optimizer 并非opcode加速器,而是为php5.2及以前的免费、闭源的php扩展;当然目前还在发展;使用的也不少;
- build
- ext
- main
- Zend
- pear
- sapi
- TSRM
- tests
- win32 这个windows平台的
1 | <html> |
例:如何在源代码中加入bash脚本:
在httpd.cnf中有ScriptAlias /cgi-bin/ “/usr/local/apache2/cgi-bin/“
然后到上面这个目录下,编写mytest.sh
1 | #!bin/bash |
保存加可执行权限
然后在浏览器上访问ip/cgi-bin/mytest.sh ,即可看到时间
PHP可以成为嵌入式web开发语言
(控制器Controller)- 负责转发请求,对请求进行处理。
(视图View) - 界面设计人员进行图形界面设计。
(模型Model) - 程序员编写程序应有的功能(实现算法等等)、数据库专家进行数据管理和数据库设计(可以实现具体的功能)。
三种方式:
1
#yum install php (php-mbstring对于多字节支持的,这个会在编译时支持)php-mysql(自行选择)
这种是以模块的方式存在
1 | <?php |
缺失模块。
1、请确保node版本大于6.2
2、在博客根目录(注意不是yilia根目录)执行以下命令:
npm i hexo-generator-json-content --save
3、在根目录_config.yml里添加配置:
jsonContent: meta: false pages: false posts: title: true date: true path: true text: false raw: false content: false slug: false updated: false comments: false link: false permalink: false excerpt: false categories: false tags: true