LAMP之基本介绍及应用

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:

 

原文地址:https://www.cnblogs.com/ckh2014/p/14243155.html