LAMP的实现

php的两种工作模式一种以模块方式;一种以fcgi方式

LAMP :

L:linux

A:apachectl (http)

M:mysql

P:php

httpd:接收用户的web请求;静态资源则直接响应;动态资源为php脚本, 对此类资源的请求将交由php来运行

php:运行php程序

MariaDB:数据管理系统

 

静态资源:客户端和服务器端的程序代码是相同的

动态资源:客户端和服务器端的程序代码是不同的,需要在服务器端执行之后, 将执行结果返回给客户端

 

捕获

PHP连接数据库的三种方式:(在安装php-mysql包时会自动将以下三种模式都装上)

Php使用mysql扩展连接数据库

Php使用mysqli扩展连接数据库

Php使用pdo扩展连接数据库

捕获2345

 

实验:快速基本安装LAMP

CentOS 6:

yum install httpd, php, mysql-server, php-mysql      (安装包)

service httpd start service mysqld start (启动服务)

 

 

 

 

CentOS 7:

yum install httpd, php, php-mysql, mariadb-server   (安装包)

systemctl start httpd.service systemctl start mariadb.service (启动服务)

注意:要使用prefork模型

1 . 进入数据库新建一个授权测试用户:

grant all on *.* to test@’192.168.60.%’ identified by ‘centos’;

2. cd  /var/www/html/  (进入http的主页面文件夹下新建测试文件)

vim testmysql1.php

<?php
$mysqli=new mysqli(“192.168.60.4”,”test”,”centos”);    (里面填写的就是刚刚在数据库创建的测试用户)
if(mysqli_connect_errno()){
echo “Failure”;
$mysqli=null;
exit;
}
echo “OK”;
$mysqli->close();
?>

(此为Php使用mysqli扩展连接数据库 的测试脚本)

3 . 重启http服务。在浏览器上打开:http://192.168.60.4/testmysql1.php  (就可以了)

 

使用pdo扩展连接数据库的测试代码1

<?php $dsn=’mysql:host=localhost;dbname=mysql’; $username=’root’; $passwd=’centos’; $dbh=new PDO($dsn,$username,$passwd); var_dump($dbh); ?>

使用pdo扩展连接数据库的测试代码2

try { $user=’root’; $pass=‘centos’; $dbh = new PDO(‘mysql:host=localhost;dbname=mysql’, $user, $pass); foreach($dbh->query(‘SELECT user,host from user’) as $row) { print_r($row); } $dbh = null; } catch (PDOException $e) { print “Error!: ” . $e->getMessage() . “<br/>”; die(); } ?>

 

实验布署phpMyadmin   (一个可以管理数据库的php模块的图形界面)

phpMyadmin下载:https://www.phpmyadmin.net/downloads/

下载phpMyadmin软件包时要下载和自己本机所装的php;mysql软件版本间是否支持

捕获

1 . yum -y install httpd mariadb-server php php-mysql (安装包)

systemctl start httpd 

systemctl start mariadb   (启动服务)

2 . 将下载好的源码包上传到本机上,然后解压缩到限定的目录上去。

unzip phpMyAdmin-4.0.10.20-all-languages.zip   (解压在当前目录下)

mv phpMyAdmin-4.0.10.20-all-languages /var/www/html/pma(剪切到http自己网页的主页面下去并且重命名)

3. /var/www/html/pma (进入到此文件夹下,修改配置文件)

cp config.sample.inc.php config.inc.php   (将此文件夹下的一个范例的配置文件复制一份来修改,带sample的文件只是范例文件,不能作为配置文件生效所以要复制过来并去掉sample)

vim config.inc.php

23

只要将光标出的任意字符,更改一下就可以,可以随便更改

4 . 打开浏览器时发现缺包报错,再次安装一个包就可以了。yum install php-mbstring

systemctl restart httpd  (重启服务)

5 .http://192.168.60.4/pma/   (浏览器打开如下)

134

6 . 需要输入用户名和密码需要我们在数据库里创建(因为是连接数据库的)

mysql_secure_installation  (跑一下安全脚本)

安全脚本;第一项时输入以前的口令如果是新安装的,则不需要输入回车就可以了

mysql -uroot -pcentos  (设完口令后用密码和用户尝试能否登陆到数据库里)

7 . http://192.168.60.4/pma/ 再次登陆输入口令和root用户就可以了。

 

实验搭建个人博客wordpress

官网:https://cn.wordpress.org/  (源码地址)

1   . yum -y install httpd mariadb-server php php-mysql (安装包)
systemctl start httpd 
systemctl start mariadb (启动服务)

2 .  下载源码文件;解压缩WordPress博客程序到网页站点目录下 /var/www/html/下

tar xvf wordpress-4.9.4-zh_CN.tar.gz -C /var/www/html/

3 . /var/www/html/wordpress/  (进到此目录下找到配置文件并复制一份改名原理同上)

cp wp-config-sample.php wp-config.php

vim wp-config.php

捕获

再此之前要进入数据库创建一个为wordpress的数据库wpdb

然后再创建一个用户并授权:grant all on *.* to wpuser@’192.168.60.%’ identified by ‘centos’;

(此用户为wordpress的用户)

4 . http://192.168.60.4/wordpress(在浏览器上打开界面)

总结:如果打不开需要注意wordpress的权限

 

CentOS7编译Php-xcache加速访问 php程序

官网:http://xcache.lighttpd.net/wiki/ReleaseArchive

1 . yum -y install httpd mariadb-server php php-mysql (安装包)
systemctl start httpd 
systemctl start mariadb (启动服务)

2 . yum install php-xcache   (安装加速器)

3 .systemctl restart httpd   (重启服务)

###############################################

也可以下载最新的源码编译安装:

yum groupinstall development tools  (安装编译包组)

yum install php-devel   (编译所缺少的包)

下载并解压缩xcache-3.2.0.tar.bz2

tar -xvf xcache-3.2.0.tar.gz

cd xcache-3.2.0/

phpize  ( 执行此命令生成编译环境;就是生成configre文件夹,如果出错会提示你安装缺少的包)

捕获绕太阳

 

./configure –enable-xcache –with-php-config=/usr/bin/php-config

make && make install

ls /usr/lib64/php/modules    (查看刚生成的模块xcache.so)

cp xcache.ini /etc/php.d/    (将此目录下的配置文件复制到/etc/php.d/ )

systemctl restart httpd    (重启服务就可以了)

 

 

上述中的php是附属在http的模块的方式连接的,依赖于http服务的模块不是一个独立的软件服务。相对加重了http服务的运行。(区别安装的包不同一个安装php包一种安装php-fpm包)

fastcgi是独立运行的进程,不依赖于http服务。有自己的默认端口号9000:

fastcgi : php-fpm (既需要php又需要fpm两个软件)

php-fpm: 

CentOS 6:

PHP-5.3.2之前:默认不支持fpm机制;需要自行打补丁并编译安装 新版本的php

httpd-2.2:默认不支持fcgi协议,需要自行编译此模块 解决方案:编译安装httpd-2.4, php-5.3.3+ 

CentOS 7:

httpd-2.4:rpm包默认编译支持fcgi模块 php-fpm包:专用于将php运行于fpm模式

php配置  配置文件:/etc/php.ini,/etc/php.d/*.ini

 

 

实验在centos7上实现LAMP(PHP-FPM模式) 在一台机器上实现

1 .yum install httpd, php-fpm, php-mysql, mariadb-serv(安装包)
systemctl start httpd.service systemctl start mariadb.server ice (启动服务)

(由于7上yum装的http和php包都支持fscgi所以不需要源码编译安装了)

2 . 查看php-fpm的配置文件vim /etc/php-fpm.d/www.conf

3 .systemctl start php-fpm   (启动服务)并查看端口号900是否开启

4 . 在http服务中添加相关的配置:新建文件 /etc/httpd/conf.d/fcgi.conf;添加的内容如下

DirectoryIndex index.php 

ProxyRequests Off 

ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

5 . systemctl restart httpd和mariadb  (启动服务)

注意:在HTTPD服务器上必须启用proxy_fcgi_module模块,充当PHP客户端 httpd –M |grep fcgi cat /etc/httpd/conf.modules.d/00-proxy.conf

6 .在/var/www/html/新建一个测试文件index.php

<?php
$dsn=’mysql:host=localhost;dbname=mysql’;
$username=’root’;
$passwd=”;
$dbh=new PDO($dsn,$username,$passwd);
var_dump($dbh);
?>

7 (开始测试)http://192.168.60.4/     出现object(PDO)#1 (0) { }则表示成功。

测试的php文件要放到第四步所指定的目录下才可以

 

实验在centos7上实现LAMP(PHP-FPM模式) 在多台台机器上实现

实验拓扑图:192.168.60.20  (此机器作为http)

192.168.60.21(此机器作为php-fpm)

192.168.60.22 (此机器作为mysql)

1 .在192.168.60.20安装yum install httpd

在192.168.60.21安装yum install php-fpm 和 yum install php-mysql

在192.168.60.22安装yum install mariadb-server

2 . 进入数据库 grant all on *.* to test@’192.168.60.21′ identified by ‘centos’; (建立账号让php-fam连接)

3 . vim /etc/php-fpm.d/www.conf  (修改php-fpm的配置文件)

捕获

第一条代表的是绑定本机的IP地址;第二条是只允许本机访问可以删掉或者注释掉因为默认是允许所有主机访问。

systemctl start php-fpm  (启动服务;之后查看端口来确认服务是否起来)

4 .在http服务器这边新建配置文件:vim /etc/httpd/conf.d/fcgi.conf

DirectoryIndex index.php 
ProxyRequests Off 
ProxyPassMatch ^/(.*\.php)$ fcgi://192.168.60.21:9000/app/www/$1   (此IP地址为php-fpm机器的地址.文件访问路径也是在php-fpm服务器下,文件夹没有的话要手工创建)

5 . 在php-fpm机器这边新建/app/www/文件来来存放测试文件,.php文件必须要放在php-fpm的机器这边

vim index.php

<?php
$dsn=’mysql:host=192.168.60.22;dbname=mysql’;    (IP地址为数据库的地址)
$username=’tset’;         (在数据库创建的用户)
$passwd=’centos’;          (用户的密码)
$dbh=new PDO($dsn,$username,$passwd);
var_dump($dbh);
?>
6 . 现在访问http服务器.他发现是php语句就自动转到php-fpm服务器上去了,然后再连接查找数据库。

 

 

实验在centos7上实现LAMP(PHP-FPM模式) 在多台台机器上实现编译安装wordpress

实验拓扑图:在192,168,60,4上实现http和php-fpm的编译安装。

在192.168.60.20 上来实现数据库的编译安装。

实验环境:selinux ;iptables  (都应关闭)

需要编译三个软件:apache ;php-fpm;mysql;

编译的顺序:先编译apache在编译php-fpm;数据库先后都无所谓;因为php-fpm对apache以一定的依赖

1 . 编译安装apache:和php-fpm(开发环境包组: Development Tools,Server 相关包:pcre-devel,openssl-devel expat-devel)

安装httpd-2.4 依赖于apr-1.4+, apr-util-1.4+

下载源代码并解压缩: httpd-2.4.27.tar.bz2 apr-1.6.2.tar.bz2 apr-util-1.6.0.tar.bz2

php的源码下载:http://php.net/downloads.php      php-7.1.18.tar.bz2

2 . mkdir srcs   (在家目录下新建文件夹,并将四个源码包上传到此文件夹里解压缩)

3 .  cd srcs/

tar -xvf httpd-2.4.33.tar.bz2

tar -xvf php-7.1.18.tar.bz2

tar -xvf apr-1.6.3.tar.gz

tar -xvf apr-util-1.6.1.tar.gz    (先将四个源码包解开)

4. 首先编译安装http服务。

mv apr-1.6.3 httpd-2.4.33/srclib/apr

mv apr-util-1.6.1 httpd-2.4.33/srclib/apr-util   (将两个apr包剪切到http的目录下)

5 . cd httpd-2.4.33/   (进入到此目录下开始进行编译)

mkdir /app (新建一个目录供编译安装时指定路径)

./configure –prefix=/app/http24 –enable-so –enable-ssl –enable-cgi –enable-rewrite –with-zlib –with-pcre –with-included-apr –enable-modules=most –enable-mpms-shared=all –with-mpm=prefork

6 .make && make install

7 . .vim /etc/profile.d/httpd24.sh (新建文件存放PATH变量)
PATH=/app/http24/bin:$PATH
. /etc/profile.d/httpd24.sh (让其生效)

apachectl start (开启服务)并测试是否可以访问

8 .编译二进制数据库:上传二进制数据库包并解开:

tar -xvf mariadb-10.2.15-linux-x86_64.tar.gz -C /usr/local(此解压路径是根据它源码编译时指定的路径,可以到官网上查到)

进入到cd /usr/local目录下指定软连接:ln -s mariadb-10.2.15-linux-x86_64/ mysql 指定好了之后。后面的操作就可以使用mysql,而不是要写mariadb-10.2.15-linux-x86_64/一长串了。

 

9 .创建数据库的用户账号: useradd -r -s /sbin/nologin mysql

cd  /usr/local/

chown -R  root.root  mysql/    (更改数据目录的所有者)

10 mkdir /data/mysql -pv   (创建数据库目录存放数据库的数据)

chown mysql.mysql /data/mysql/  (并将所有者和所有组更改为mysql所有)

11 .vim /etc/profile.d/lamp.sh
PATH=/appl/httpd24/bin:/usr/local/mysql/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
. /etc/profile.d/lamp.sh       (修改PATH变量路径并让其生效)

12 .cd  /usr/local/mysql

/scripts/mysql_install_db –datadir=/data/mysql –user=mysql   (生成数据库仓库的必要配置文件)

13 .cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf (将二进制程序里的模板文件复制到mysql的配置文件下修改)

vim /etc/my.cnf

添加:datadir=/data/mysql   (指定仓库路径)
14 . 启动服务:(将二进制程序里的启动脚本复制出来,到init.d里使其变成服务脚本)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
chkconfig –add mysqld(将服务脚本加到启动程序里)
可以通过chkconfig –list 来查看是否添加到启动程序里了。
手动开启服务即可:service mysqld start (如果起不来直接启程序;./mysqld start )

15 .进入数据库中创建库给wordpress用,并创建授权用户:

mysql >create database wpdb;
mysql >grant all on wpdb.* to wpuser@’192.168.30.%’ identified by ‘centos’;

16  .编译php ;(安装编译所需要的包yum install libxml2-devel bzip2-devel libmcrypt-devel)

cd  /root/srcs/php-7.1.18

./configure –prefix=/app/php \
–enable-mysqlnd \
–with-mysqli=mysqlnd \
–with-openssl \
–with-pdo-mysql=mysqlnd \
–enable-mbstring \
–with-freetype-dir \
–with-jpeg-dir \
–with-png-dir \
–with-zlib \
–with-libxml-dir=/usr \
–enable-xml \
–enable-sockets \
–enable-fpm \
–with-config-file-path=/etc \
–with-config-file-scan-dir=/etc/php.d \
–enable-maintainer-zts \
–disable-fileinfo

捕获

结束标志。

make && make install

vim /etc/profile.d/httpd24.sh (添加PATH变量)

PATH=/app/php/bin:/app/php/sbin:/app/http24/bin:$PATH

.  /etc/profile.d/httpd24.sh (使环境变量生效)

17 . cd /root/srcs/php-7.1.18/

cp php.ini-production /etc/php.ini   (复制模板配置文件)

cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm (将二进制程序里的启动脚本复制出来,到init.d里使其变成服务脚本)
chmod +x /etc/init.d/php-fpm  (给php脚本添加执行权限)
chkconfig –add php-fpm     (将服务脚本加到启动程序里)
chkconfig php-fpm on
cd /app/php/etc
cp php-fpm.conf.default php-fpm.conf   (把文件改名让其生效)
cp php-fpm.d/www.conf.default php-fpm.d/www.conf   (将文件改名让其生效)
service php-fpm start

ss -nult (查看端口)

18 .配置apache的配置文件:

vim /app/http24/conf/httpd.conf

取消下面两行的注释
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so

修改下面行
<IfModule dir_module>
DirectoryIndex index.php index.html

在文件最后添加
</IfModule>
addType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
ProxyRequests Off
ProxyPassMatch ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/http24/htdocs/$1

apachectl stop

apachectl start   (服务停了重启让其配置文件生效)

 

wordpress的配置实现:

tar -xvf wordpress-4.9.4-zh_CN.tar.gz -C /app/http24/htdocs/(将wordpress解压到http指定的主页目录下)

/app/http24/htdocs/wordpress/  (进入到此目录下)

cp wp-config-sample.php wp-config.php  (复制模板文件)
vim wp-config.php   (修改配置文件)

 

捕获

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/101377

(0)
上一篇 2018-06-23 00:46
下一篇 2018-06-23 11:03

相关推荐

  • shell脚本进阶—课堂总结

    循环、函数、会持续更新

    2018-05-10
  • linux的基础命令

    基础命令

    2018-03-28
  • 脚本练习——判断语句

    1、编写脚本/root/bin/createuser.sh,实现如下功能:使用一个用户名做为参数,如果指定参数的用户存在,就显示其存在,否则添加之;显示添加的用户的id号等信息 #!/bin/bash #判断参数是否是一个,否则退出 [ “$#” -ne 1 ] && echo “Please Input …

    Linux笔记 2018-05-04
  • 脚本练习

    1、每周的工作日1:30,将/etc备份至/backup目录中,保存的文件名称格式为“etcbak-yyyy-mm-dd-HH.tar.xz”,其中日期是前一天的时间tar Jcf /etc/ /data/ectbak-`date -d “-1 day” +%F-%H`.tar.xz30 1 * * 1-5 /root/Myscrip…

    Linux笔记 2018-05-08
  • N31第六周作业

    本周(7.23–7.29)第六周 1、简述osi七层模型和TCP/IP五层模型 OSI 七层模型 1、应用层:OSI 参考模型中最靠近用户的一层,为计算机用户提供应用接口,也为用户直接提供各种网络服务。我们常见应用层的网络服务协议有:HTTP,HTTPS,FTP,POP3、SMTP等。 2、表示层:提供各种用于应用层数据的编码和转换功能,确保一个…

    Linux笔记 2018-08-01