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
下一篇 2018-06-23

相关推荐

  • memcached

    数据结构模型: 结构化数据:关系型数据库;mysql、mariadb、oracledb 半结构化数据:xml、json、nosql 非结构化数据:文件系统; 缓存系统的种类: 代理式缓存; 旁路式缓存; memcached的特性: k/v缓存:可序列化数据;存储项:key/value,标志,过期时间; 功能的实现一半依赖于服务端,一半依赖客户端; 分布式缓存…

    2018-07-14
  • 学习笔记(16)

    学习笔记

    Linux笔记 2018-05-06
  • Linux文件管理及bash基础特性

      1、Linux系统文件管理类命令及其常用方法、相关示例演示。 Linux系统文件管理类命令主要有cp、mv、rm ①     cp命令:copy cp命令用于复制文件或目录,分单源、多源复制两种情况。 单源复制: 命令格式:cp [OPTION]… [-T] SOURCE DEST 如果DEST不存在,则先创建此文件,并复制源文件的…

    2018-07-01
  • Ansible使用介绍(一)基本概念及常用模块

    随着运维自动化经历了从本地部署到基础设施即服务(IaaS)、平台即服务(PaaS)在到软件即服务(SaaS)的发展阶段,掌握多种自动化运维工具就成了运维人员必备技能之一,ansible就是目前国内使用比较广泛的自动化运维工具之一。

    2018-05-29
  • 日常——find练习

    1、查找/var目录下属主为root,且属组为mail的所有文件# find /var -user root -group mail -ls2、查找/var目录下不属于root、lp、gdm的所有文件# find /var -not \( -user root -o -user lp -o -user gdm \) -ls3、查找/var目录下最近一周内其内…

    2018-04-13