LAMP:
A:apache
M:mariadb,mysql,mongodb
P:php,perl,python
LAMMP:
另一个M:memcached
静态资源:静态内容,客户端从服务器获得的资源的表现形式与原文件相同
动态资源:通常是程序文件,需要在服务器端执行之后,将执行的结果返回给客户端
CGI:
CGI:Common Gateway Interface
httpd+php的三种方式
modules
httpd prefork:libphp5.so
httpd event or worker:libphp5-zts.so
cgi fastcgi(fpm)
用户请求资源的流程
Client --> (http协议)--> httpd --(如果请求的是动态资源)--> (cgi或fastcgi或模块的方式)--> application server(主要运行用户所请求的程序文件) --> (mysql协议) --> mariadb
基于RPM包的方式在CentOS7上构建lamp
# yum install httpd php php-mysql mariadb-server -y //安装httpd,php及mariadb-server,安装驱动php-mysql
注意:php要求httpd使用prefork MPM,如果使用其他MPM,要安装支持线程格式的php模块包
# systemctl start httpd //启动httpd
# httpd -M //可以查看到php是以模块的方式被装载的
# systemctl start mariadb.service //启动mariadb
基于RPM包的方式在CentOS6上构建lamp
安装程序包
# yum install httpd php php-mysql mysql-server -y
启动服务
# service httpd start
# service mysqld start
测试php
# cd /var/www/html
# vim index.php
<?php
phpinfo();
?>
浏览器中访问:http://192.168.2.10/index.php
页面显示php信息页
测试php连接mariadb或mysql
<?php
$link=mysql_connect("127.0.0.1","mysql","");
if($link)
echo "success";
else
echo "failure";
mysql_close();
?>
使用lamp部署简单应用wordpress
下载wordpress:
https://cn.wordpress.org/download/
# tar zxf wordpress.tar.gz
# cp -a wordpress /var/www/html
# cd /var/www/html
# cd wordpress
# cp wp-config-sample.php wp-config.php
# vim wp-config.php
define( 'DB_NAME', 'wpdb' ); //修改数据库名
/** MySQL数据库用户名 */
define( 'DB_USER', 'wpuser' ); //修改用户名
/** MySQL数据库密码 */
define( 'DB_PASSWORD', 'wppasswd' ); //修改密码
/** MySQL主机 */
define( 'DB_HOST', 'localhost' );
/** 创建数据表时默认的文字编码 */
define( 'DB_CHARSET', 'utf8' );
# mysql
GRANT ALL ON wpdb.* TO 'wpuser'@'localhost' IDENTIFIED BY 'wppasswd';
GRANT ALL ON wpdb.* TO 'wpuser'#'127.0.0.1' IDENTIFIED BY 'wppasswd';
CREATE DATABASE wpdb;
FLUSH PRIVILEGES;
测试:
浏览器中访问:192.168.2.10/wordpress
安装php加速器 yum install php-xcache-VERSION ab测试: ab -c 200 -n 10000 http://192.168.1.201/wp/index.php
使用lamp部署简单应用phpmyadmin
下载phpmyadmin:
https://www.phpmyadmin.net/
# unzip phpMyAdmin-5.0.4-all-languages.zip
# cp -a phpMyAdmin-5.0.4-all-languages /var/www/html/phpmyadmin
# cd /var/www/html
# cd phpmyadmin
# ln -sv phpmyadmin pma
# cd pma
# cp config.sample.inc.php config.inc.php
# vim config.inc.php
$cfg['blowfish_secret'] = '231122221111'; //添加随机密码
$cfg['Servers'][$i]['host'] = 'localhost';
$cfg['Servers'][$i]['compress'] = false;
$cfg['Servers'][$i]['AllowNoPassword'] = false;
# mysql
SET PASSWORD FOR 'root'@'127.0.0.1'=PASSWORD('ckh'); //给root用户添加密码
SET PASSWORD FOR 'root'@'127.0.0.1'=PASSWORD('ckh');
FLUSH PRIVILEGES;
提供虚拟主机和https服务
vhost1: pma.stux.com, phpMyAdmin,同时提供https服务
vhost2: wp.stuX.com,wordpress
提供虚拟主机 # vim /etc/httpd/conf.d/vhost.conf 添加:<VirtualHost "192.168.1.201:80"> ServerName "pma.stux.com" DocumentRoot "/var/www/html/pma" </VirtualHost> <VirtualHost "192.168.1.201:80"> ServerName "wp.stux.com" DocumentRoot "/var/www/html/wp" </VirtualHost>
测试:curl wp.stux.com 为pma提供https服务 以192.168.1.105建立私有ca 建立ca的步骤参照之前博客https://www.cnblogs.com/ckh2014/p/10780608.html中https内容 # httpd -M | grep ssl //检查ssl模块已装载 # vim /etc/httpd/conf.d/ssl.conf 修改:DocumentRoot "/var/www/html/pma" ServerName pma.stux.com:443 SSLCertificateFile /etc/httpd/ssl/httpd.crt SSLCertificateKeyFile /etc/httpd/ssl/httpdkey.pem
测试:以192.168.1.105作为客户端
# openssl s_client -connect 192.168.1.201:443 -CAfile=/etc/pki/CA/cacert.pem
php解释器如何与mariadb交互?
解释器无须与mariadb交互,那些用到数据存储系统的程序才需要与数据存储交互。
存储系统:
文件系统:存储的是文件
SQL数据库:mariadb,oracle,mssql,
NoSQL:redis,mongodb,hbase...
NewSQL: