LAMP理解搭建,wordpress.xcache,powerdns及poweradmin

一,概念

CGI:

CGI全称是通用网关接口(Common Gateway Interface),是外部应用程序与与服务器之间的接口标准,是在CGI程序和web服务器之间传递信息的规程

CGI是一段程序,运行在服务器上。

CGI可以用任意语言编写,主要这种语言具有标准输入、输出和环境变量

原理:

每当客户请求CGI的时候,WEB服务器就请求操作系统读取配置文件,生成一个新的解释器进程(如php-cgi.exe),当CGI进程完成当前任务结束后,web服务器就会杀死这个进程

FastCGI:

一个可伸缩地、高速地在HTTP server和动态脚本语言间通信的接口,

接口方式采用C/S结构,可以将HTTP服务器和脚本解析服务器分开,同时在脚本解析服务器上启动一个或者多个脚本解析守护进程。当HTTP服务器每次遇到动态程序时,可以将其直接交付给FastCGI进程来执行,然后将得到的结果返回给浏览器。这种方式可以让HTTP服务器专一地处理静态请求或者将动态脚本服务器的结果返回给客户端,这在很大程度上提高了整个应用系统的性能。

原理:

  1. Web Server启动时载入FastCGI进程管理器(IIS ISAPI或Apache Module)
  2. FastCGI进程管理器自身初始化,启动多个CGI解释器进程(可见多个php-cgi)并等待来自Web Server的连接。
  3. 当客户端请求到达Web Server时,FastCGI进程管理器选择并连接到一个CGI解释器。Web server将CGI环境变量和标准输入发送到FastCGI子进程php-cgi。
  4. FastCGI子进程完成处理后将标准输出和错误信息从同一连接返回Web Server。当FastCGI子进程关闭连接时,请求便告处理完成。FastCGI子进程接着等待并处理来自FastCGI进程管理器(运行在Web Server中)的下一个连接。 在CGI模式中,php-cgi在此便退出了。

PHP-CGI(cgi的php实现):

PHP-CGI是php自带的Fast-CGI管理器

不足:

  1. php-cgi变更php.ini配置后需重启php-cgi才能让新的php-ini生效,不可以平滑重启。
  2. 直接杀死php-cgi进程,php就不能运行了。(PHP-FPM和Spawn-FCGI就没有这个问题,守护进程会平滑从新生成新的子进程。)

PHP-FPM(FastCgi的php实现):

特点:

  1. PHP-FPM是一个PHP FastCGI的管理器,他是能够调度php-cgi进程的程序。
  2. 修改php.ini之后,php-cgi进程的确没办法平滑重启,但php-fpm对此的应对方法是新的进程用新的配置,已经存在的进程让按照之前的配置执行到结束。用这种方式进行平滑过渡。
  3. PHP-fpm就是针对于PHP的,Fastcgi的一种实现,他负责管理一个进程池,来处理来自Web服务器的请求。目前,PHP-fpm是内置于PHP的

PHP-FPM 进程管理器有两种进程组成,一个 Master 进程和多个 Worker 进程。Master 进程负责监听端口,接收来自 Web 服务器的请求,然后指派具体的 Worker 进程处理请求;worker 进程则一般有多个 (依据配置决定进程数),每个进程内部都嵌入了一个 PHP 解释器,用来执行 PHP 代码

二,基础知识

1,http与php结合方式

http与php结合的方式:modules 和FastCGI

centos7:

modules: httpd, php, php-mysql, mariadb-server

FastCGI: httpd, php-fpm, php-mysql, mariadb-server

centos6:

modules: :httpd, php, php-mysql, mysql-server

FastCGI:默认不支持

php与数据库连接的三种方式:

rpm -ql php-mysql

/usr/lib64/php/modules/mysql.so

<?php$conn = mysql_connect(‘mysqlserver‘,‘username‘,‘password‘);if ($conn)echo "OK";elseecho "Failure";#echo mysql_error();mysql_close();?>

/usr/lib64/php/modules/mysqli.so

<?php$mysqli=new mysqli("mysqlserver","username","password");if(mysqli_connect_errno()){echo "Failure";$mysqli=null;exit;}echo "OK";$mysqli->close();?>

/usr/lib64/php/modules/pdo_mysql.so

<?php$dsn=‘mysql:host=mysqlhost;dbname=test‘;$username=‘root‘;$passwd=‘magedu‘;$dbh=new PDO($dsn,$username,$passwd);var_dump($dbh);?>
2,phpmyadmin

yum -y install httpd mariadb-server php php-mysql 启动程序

创建登陆数据库的用户

grant all on . to ‘test‘@‘127.0.0.1‘ identified by "redhat";

yum -y install php-mbstring

tar xvf phpMyAdmin-4.0.10.20-all-languages.tar.xz cd /var/www/html

cd phpadmin/

cp config.sample.inc.php config.inc.php并修改:

$cfg[‘blowfish_secret‘] = ‘wwwww‘; /* YOU MUST FILL IN THIS FOR COOKIE AUTH! */

systemctl reload httpd

访问首页 ip/phpadmin/index.php

2,安装wordpress

创建数据库用户

解压软件至网站根目录的文件夹,访问ip/wordpress/

填写数据库连接信息,根据提示修改配置文件 vim wp-config.php ,填写站点信息并登陆使用。

3,DIscuz!

解压软件 unzip Discuz_X3.3_SC_UTF8.zip 转移upload下的文件到指定根目录

为目录加写权限 setfacl -R -m u:apache:rwx upload/ 安装成功后去除权限

访问ip/upload/install/

4,加速器 XCache

机制:

基于PHP的特殊扩展机制如opcode缓存扩展也可以将opcode 缓存于php的共享内存中,从而可以让同一段代码的后续重复执行时跳过编译 阶段以提高性能。这些加速器并非真正提高了opcode的运行速度,而仅是通过 分析opcode后并将它们重新排列以达到快速执行的目的

yum -y install php-xcache 或

源码 解压

yum -y install php-devel

$ phpize --clean && phpize ? ./configure --enable-xcache --enable... ? $ make ? # make install

拷贝模块至php模块目录中

cp /data/xcache-3.2.0/modules/xcache.so /usr/lib64/php/modules/

引用模块

cp /data/xcache-3.2.0/xcache.ini   /etc/php.d/

将动态页面缓存为静态

三,安装

1,yum 安装

yum -y install php-fpm php-mysql mariadb-server httpd

在主配置文件后添加(/etc/httpd/conf/httpd.conf)

proxyrequests off proxypassmatch ^/(.*.php)$ fcgi://127.0.0.1:9000/var/www/html/$1

修改:DirectoryIndex index.php

在根目录下创建测试文件:

<?php $conn = mysql_connect(‘192.168.36.72‘,‘yon‘,‘redhat‘); if ( $conn ) echo "OK"; else echo "faiiooal"; mysql_close();

?>

<?php

phpinfo();

?>

注意:需关闭firewalld 及selinux

2,源码编译

1)源码准备 带有apr apr-util,否则报错

configure: error: Bundled APR requested but not found at ./srclib/. Download and unpack the corresponding apr and apr-util packages to ./srclib/

apr-1.7.0.tar.gz

apr-util-1.6.1.tar.gz

httpd-2.4.39.tar.bz2

mariadb-10.2.23-linux-x86_64.tar.gz

php-7.3.2.tar.xz

wordpress-5.0.3-zh_CN.tar.gz

2)安装相关包组

yum install gcc glibc pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel libmcrypt-devel

编译httpd 过程:

编译httpd

tar xf apr-1.7.0.tar.gz

tar xf apr-util-1.6.1.tar.gz

tar xf httpd-2.4.39.tar.bz2

mv apr-1.7.0    httpd-2.4.39/srclib/apr

mv apr-util-1.6.1   httpd-2.4.39/srclib/apr-util

cd httpd-2.4.39/

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

make && make install

useradd -r -s /sbin/nologin apache

echo ‘PATH=/app/httpd24/bin:$PATH‘ > /etc/profile.d/lamp.sh

vim /app/httpd24/conf/httpd.conf

user apache

group apache

编译php7.x

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

cd /app/php

cp php-fpm.conf.default php-fpm.conf

cp php-fpm.d/www.conf.default php-fpm.d/www.conf

service php-fpm start

修改httpd配置文件支持fpm

vim /app/httpd24/conf/httpd.conf 取消下面两行的注释 LoadModule proxy_module modules/mod_proxy.so LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so 修改下面行

<IfModuledir_module>

DirectoryIndex index.php index.html

</ifModule>

加下面四行

AddType application/x-httpd-php.php

AddType application/x-httpd-php-source .phps

ProxyRequestsOff ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1

安装二进制数据库:

tar -xf mariadb-10.2.23-linux-x86_64.tar.gz -C /usr/local/

cd /usr/local

ln -s mariadb-10.2.23-linux-x86_64/ mysql

chown -R root.root /usr/local/mysql/

useradd -r -s /sbin/nologin mysql

mkdir -pv /data/mysql chown mysql.mysql /data/mysql

scripts/mysql_install_db --datadir=/data/mysql --user=mysql

mkdir /etc/mysql/

cp support-files/my-huge.cnf /etc/mysql/my.cnf

vim /etc/mysql/my.cnf

datadir=/data/mysql

cp support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld

service mysqld start

echo ‘PATH=/usr/local/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh

. /etc/profile.d/mysql.sh

# 创建wordpress 数据库

CREATE DATABASE wpdb

创建用户

mysql>create database wpdb;

mysql>grant all on wpdb.* to [email protected]‘192.168.36.%‘ identified by ‘centos‘;

mysql>grant all on wpdb.* to [email protected]‘localhost‘ identified by ‘centos‘;

安装wordpress

tar -xvf wordpress-5.0.3-zh_CN.tar.gz -C /app/httpd24/htdocs/

chown -R root.root wordpress/

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

修改wp-config .php, 填写数据库连接信息

在浏览器访问 http://ip/wordpress/wp-admin/install.php 进行安装

参考:codex.wordpress.org

四,安装 Powerdns+mysql

1,安装powerdns,需要EPEL源

yum install -y pdns pdns-backend-mysql

准备数据库表及用户:

准备mariadb中的数据库,表和用户 CREATE DATABASE powerdns; GRANT ALL ON powerdns.* TO ‘powerdns‘@‘localhost‘ IDENTIFIED BY ‘centos‘;

创建表:参考官网资料

或导入SQL语句:

cat pdns.sql

CREATE DATABASE powerdns; GRANT ALL ON powerdns.* TO ‘powerdns‘@‘localhost‘ IDENTIFIED BY ‘centos‘;

use powerdns CREATE TABLE domains ( id INT AUTO_INCREMENT, name VARCHAR(255) NOT NULL, master VARCHAR(128) DEFAULT NULL, last_check INT DEFAULT NULL, type VARCHAR(6) NOT NULL, notified_serial INT DEFAULT NULL, account VARCHAR(40) DEFAULT NULL, PRIMARY KEY (id) ) Engine=InnoDB;

CREATE UNIQUE INDEX name_index ON domains(name);

CREATE TABLE records ( id BIGINT AUTO_INCREMENT, domain_id INT DEFAULT NULL, name VARCHAR(255) DEFAULT NULL, type VARCHAR(10) DEFAULT NULL, content VARCHAR(64000) DEFAULT NULL, ttl INT DEFAULT NULL, prio INT DEFAULT NULL, change_date INT DEFAULT NULL, disabled TINYINT(1) DEFAULT 0, ordername VARCHAR(255) BINARY DEFAULT NULL, auth TINYINT(1) DEFAULT 1, PRIMARY KEY (id) ) Engine=InnoDB;

CREATE INDEX nametype_index ON records(name,type); CREATE INDEX domain_id ON records(domain_id); CREATE INDEX recordorder ON records (domain_id, ordername);

CREATE TABLE supermasters ( ip VARCHAR(64) NOT NULL, nameserver VARCHAR(255) NOT NULL, account VARCHAR(40) NOT NULL, PRIMARY KEY (ip, nameserver) ) Engine=InnoDB;

CREATE TABLE comments ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, name VARCHAR(255) NOT NULL, type VARCHAR(10) NOT NULL, modified_at INT NOT NULL, account VARCHAR(40) NOT NULL, comment VARCHAR(64000) NOT NULL, PRIMARY KEY (id) ) Engine=InnoDB;

CREATE INDEX comments_domain_id_idx ON comments (domain_id); CREATE INDEX comments_name_type_idx ON comments (name, type); CREATE INDEX comments_order_idx ON comments (domain_id, modified_at);

CREATE TABLE domainmetadata ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, kind VARCHAR(32), content TEXT, PRIMARY KEY (id) ) Engine=InnoDB;

CREATE INDEX domainmetadata_idx ON domainmetadata (domain_id, kind);

CREATE TABLE cryptokeys ( id INT AUTO_INCREMENT, domain_id INT NOT NULL, flags INT NOT NULL, active BOOL, content TEXT, PRIMARY KEY(id) ) Engine=InnoDB;

CREATE INDEX domainidindex ON cryptokeys(domain_id);

CREATE TABLE tsigkeys ( id INT AUTO_INCREMENT, name VARCHAR(255), algorithm VARCHAR(50), secret VARCHAR(255), PRIMARY KEY (id) ) Engine=InnoDB;

CREATE UNIQUE INDEX namealgoindex ON tsigkeys(name, algorithm);

配置PowerDNS使用mariadb作为后台数据库

vim /etc/pdns/pdns.conf,查找到包含launch= 的行,修改并添加下面的内容

launch=gmysql

gmysql-host=localhost

gmysql-port=3306

gmysql-dbname=powerdns

gmysql-user=powerdns

gmysql-password=centos

systemctl start pdns

systemctl enable pdns

2,安装httpd和php相关包

搭建poweradmin环境

以之前编译安装的环境进行安装,无法识别安装首页,查看日志报 “ Primary script unknown”

原因未知:网上解决资料

I changed this old .htaccess:

RewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule ^(.*)$ index.php/$1 [L]RewriteBase /fc2/?To this new variation:RewriteBase /fc2/RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /fc2/index.php [L]

重新安装(模块化php安装)

yum -y install httpd php php-devel php-gd php-mcrypt php-imap phpldap php-mysql php-odbc php-pear php-xml php-xmlrpc php-mbstring phpmcrypt php-mhash gettext

systemctl start httpd

3,下载安装poweradmin

http://downloads.sourceforge.net/project/poweradmin/poweradmin-2.1.7.tgz

解压 tar xf poweradmin-2.1.7.tgz -C /var/www/html

访问 http://192.168.36.73/poweradmin/install/

复制执行授权命令到数据库执行

按图所示修改配置文件

结束。

ps:

报错:

1,Distributor caught fatal exception: Unable to launch gmysql connection: Unable to connect to database: Access denied for user ‘powerdns‘@‘localhost‘ (using password: YES)

解决:密码错误 修改 vim /etc/pdns/pdns.conf

2,不能连接至 /tmp/mysql.sock

解决:

1,修改数据库的sock文件位置

2,修改/etc/pdns/pdns.conf ,使用端口及IP地址连接

重点:看日志进行排错

操作记录要存档查看。

4,小实验

1,实现基于UDS的fastcgi的LAMP

高版本编译httpd + php-fpm (Apache/2.4.39

yum install gcc glibc pcre-devel openssl-devel expat-devel libxml2-devel bzip2-devel libmcrypt-devel

tar  xf  apr-1.7.0.tar.gz tar  xf  apr-util-1.6.1.tar.gz cp -r apr-1.7.0 httpd-2.4.39/srclib/aprcp -r apr-util-1.6.1 httpd-2.4.39/srclib/apr-utilcd  httpd-2.4.39/   ./configure --prefix=/app/httpd24 --enable-so --enable-ssl --enable-cgi --enable-rewrite --with-zlib --with-pcre --with-included-apr --enable-modules=most --enable-mpms-shared=all --with-mpm=preforkmake -j 4 && make install ?vim /etc/profile.d/httpd24.sh PATH=/app/httpd24/bin:$PATH?useradd -r -s /sbin/nologin apachevim /app/httpd24/conf/httpd.confUser apacheGroup apache vim /etc/rc.d/rc.local/app/httpd24/bin/apachectl startchmod +x /etc/rc.d/rc.local

配置php-fpm

yum  -y install   php-fpm  vim /app/httpd24/conf/httpd.conf取消下面两行的注释LoadModule proxy_module modules/mod_proxy.so           LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so修改此行DirectoryIndex index.php index.html ?添加下面四行AddType application/x-httpd-php.phpAddType application/x-httpd-php-source .phpsProxyRequestsOffProxyPassMatch  ^/(.*\.php)$ fcgi://127.0.0.1:9000/app/httpd24/htdocs/$1参看:http://httpd.apache.org/docs/2.4/mod/mod_proxy_fcgi.html?

走UNIX 套接字:

 addType application/x-httpd-php .php AddType application/x-httpd-php-source .phps ProxyRequests Off #ProxyPassMatch ^/(.*\.php)$ unix:/var/run/php.sock|fcgi://localhost/app/httpd24/htdocs/$1 <FilesMatch "\.php$">    # Note: The only part that varies is /path/to/app.sock  SetHandler  "proxy:unix:/var/run/php.sock|fcgi://localhost/"                                         </FilesMatch>??## 使用如下没有成功,参考官网文档修改为上面所示成功了

ProxyPassMatch    ^/(.*.php)$     unix:/var/run/php.sock|fcgi://localhost/app/httpd24/htdocs/$1

 

原文地址:https://www.cnblogs.com/g2thend/p/10884579.html

时间: 2024-08-01 16:48:57

LAMP理解搭建,wordpress.xcache,powerdns及poweradmin的相关文章

使用LAMP环境搭建wordpress论坛

1.      搭建LAMP架构 (1)      rpm搭建LAMP环境 [[email protected] ~]# yum install httpd mysql-server mysql php php-mysql  -y (2)      启动apache,mysql相关服务,并设置开机自启动 (3)      设置mysql密码 (4)      检验测试网站是否支持php [[email protected] ~]# cd /var/www/html/ [[email protec

centos7.3编译安装LAMP环境并搭建WordPress博客

centos7.3编译安装LAMP环境并搭建WordPress博客 日期:2017年8月6日 软件版本: apr-1.5.2.tar.bz2 apr-util-1.5.4.tar.bz2 httpd-2.4.27.tar.bz2 mariadb-10.2.7-linux-x86_64.tar.gz php-7.1.7.tar.bz2 wordpress-4.8-zh_CN.tar.gz xcache-3.2.0.tar.gz 1.编译安装apache2.4 yum groupinstall de

Centos7+Apache2.4+php5.6+mysql5.5搭建Lamp环境——为了wordPress

最近想搭建个人博客玩玩,挑来挑去发现口碑不错的博客程序是wordpress,简称wp.虽然是学java路线的程序员,但因入行时间太短,至今没有发现较为称手开源的博客程序,如果各位大神有好的推荐,也希望能在评论中告知. 先上一张效果图: WordPress WordPress是一种使用PHP语言开发的博客平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的网站.也可以把 WordPress当作一个内容管理系统(CMS)来使用. 它的原版是英文的,不过也支持中文版的,据用过的哥们说,

LAMP搭建Wordpress博客

准备工作 首先,先搭建完成基础的LAMP(可参照文章:华为云主机CentOS 7.3安装LAMP)环境,然后着手搭建wordpress个人博客. cd /usr/local/apache2.4/htdocs rm -rf * wget https://cn.wordpress.org/wordpress-4.8.1-zh_CN.zip unzip wordpress-4.8.1-zh_CN.zip  cp -r wordpress/* . rm -rf wordpress wordpress-4

LAMP 环境搭建 C7

#LAMP环境搭建Centos 7        (1)安装开发包组 "Development Tools" "Server Platform Development"    yum groupinstall            注:关闭selinux iptables(2)安装amp    (a)yum install httpd php  php-mysql mariadb mod_ssl        (b)https://xcache.lighttpd.n

LAMP环境搭建详解

一.LAMP简介 LAM(M)P: L: linux A: apache (httpd) M: mysql, mariadb M:memcached P: php, perl, python WEB资源类型: 静态资源:原始形式与响应内容一致,在客户端浏览器执行 动态资源:原始形式通常为程序文件,需要在服务器端执行之后,将执行结果返回给客户端 Web相关语言: 客户端技术: html,javascript 服务器端技术:php, jsp,python,asp CGI:Common Gateway

新版LAMP环境搭建

新版LAMP环境搭建 注意:先安装MySQL和Apache,后安装PHP,因为PHP配置编译的时候需要指定mysql路径和apache路径. 编译安装: httpd-2.4.12.tar.gz +  mysql-5.6.22-linux-glibc2.5-x86_64.tar.gz  +  php-5.4.39.tar.gz + xcache-2.0.0.tar.gz 实验环境:               CentOS 6.5 x86_64 编译安装Apache (1)构建MPM为静态模块 在

在httpd-2.2和http-2.4中分别搭建wordpress博客系统和Discuz!论坛系统

一. 在这里我使用的是centos6.7和centos7.2进行操作.在搭建之前,需要事先搭建LAMP环境. 所谓LAMP环境,指的是linux.apache(httpd).mysql.php 完成之后,开启httpd和mysql服务. 之后在/var/www/html目录下创建index.php文件.测试php 二.搭建wordpress博客系统 1.下载.解压,将wp-config-sample.php复制到wp-config.php,并修改该文中的数据库名称,用户名,用户密码以及当前虚拟主

CentOS 7中的httpd-2.4和CentOS 6中的httpd-2.2搭建wordpress博客系统和Discuz!论坛系统

在搭建wordpress博客系统和Discuz!论坛系统之前,我们需要在Centos中准备好LAMP环境. 现在以Centos 6为例演示其过程. LAMP环境=linux+apche+mysql+php 在安装好的Centos 6.7中使用yun安装apche+mysql+php,在命令行中输入以下命令: ~]# yum -y install httpd mysql mysql-server php php-mysql postgresql postgresql-server php-post